<div class="gmail_quote">On Mon, Mar 29, 2010 at 4:43 PM, Tobias C. Rittweiler <span dir="ltr"><<a href="mailto:tcr@freebits.de">tcr@freebits.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Juan Jose Garcia-Ripoll<br>
<div class="im"><<a href="mailto:juanjose.garciaripoll@googlemail.com">juanjose.garciaripoll@googlemail.com</a>> writes:<br>

> What is needed for any kind of standalone system building that relies on<br>
> ASDF system definitions and is capable of incorporating all dependencies?<br>
><br>
> - A way to gather the list of files that form part of that system<br>
> (gather-components in asdf-ext.lisp)<br>
> - A way to compile the components (provided by asdf.lisp and extended by<br>
> asdf-{ecl,sbcl,...}.lisp if needed)<br>
> - A way to pack all the compiled files into a single output file<br>
> (implementation-dependent and thus in asdf-{ecl,sbcl...}).<br>
><br>
> The first part is very critical and it needs the expertise of ALL of ASDF<br>
> maintainers to get it right. As a bonus the result will be applicable to ALL<br>
> functions that kind of grovel through ASDF system definitions.<br>
<br>
</div>Another real life usage case: Slime's asdf contrib does that, too, to<br>
provide functionality such as running the Emacs command rgrep, or<br>
query-replace over all files defined in a system.<br clear="all"></blockquote></div><br>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.<br>
<br>Juanjo<br><br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://tream.dreamhosters.com">http://tream.dreamhosters.com</a><br>