[asdf-devel] SBCL port of ECL's extensions

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Mon Mar 29 14:49:37 UTC 2010


On Mon, Mar 29, 2010 at 4:43 PM, Tobias C. Rittweiler <tcr at freebits.de>wrote:

> Juan Jose Garcia-Ripoll
> <juanjose.garciaripoll at googlemail.com> writes:
> > What is needed for any kind of standalone system building that relies on
> > ASDF system definitions and is capable of incorporating all dependencies?
> >
> > - A way to gather the list of files that form part of that system
> > (gather-components in asdf-ext.lisp)
> > - A way to compile the components (provided by asdf.lisp and extended by
> > asdf-{ecl,sbcl,...}.lisp if needed)
> > - A way to pack all the compiled files into a single output file
> > (implementation-dependent and thus in asdf-{ecl,sbcl...}).
> >
> > The first part is very critical and it needs the expertise of ALL of ASDF
> > maintainers to get it right. As a bonus the result will be applicable to
> ALL
> > functions that kind of grovel through ASDF system definitions.
>
> Another real life usage case: Slime's asdf contrib does that, too, to
> provide functionality such as running the Emacs command rgrep, or
> query-replace over all files defined in a system.
>

This is why I insist so often that the ASDF grovelling facility has to be
part of the core. Right now ECL and the extensions above use a nasty trick:
TRAVERSE is invoked using an operation COMPILE-OP and we wrap around LOAD-OP
to inform ASDF that the operation was not done before. What this does is
create a list of operations that ASDF would do assuming that absolutely no
system was loaded. This has the advantage that one does not have to code
special cases or traverse the tree manually looking for implicit or explicit
dependencies, but I am afraid it is just as fragile.

Juanjo

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://tream.dreamhosters.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20100329/16c19d95/attachment.html>


More information about the asdf-devel mailing list