[asdf-devel] ASDF traverse changed behavior?

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Wed Mar 17 23:03:33 UTC 2010


On Wed, Mar 17, 2010 at 11:54 PM, Juan Jose Garcia-Ripoll <
juanjose.garciaripoll at googlemail.com> wrote:

> Oh, there is nothing with TRAVERSE's output _right now_.
>

Let me clarify this again:

- The fact that TRAVERSE now adds the same operation for all components was
new. That was my source of confusion. Before this did not happen with LIB-OP
and the like. Maybe a straightforrwad solution is just writing

   (defun perform ((o bundle-op) (c component)) nil)

so that all components which are not modules get a default PERFORM that does
nothing. Is this safe?

- The order and format of TRAVERSE's output is important. Details like
ensuring that the list includes the operated systems and that a system's
components appear before the system that owns them, is also important, for
this allows us to use TRAVERSE for identifying what files make up a module,
using a variant of

   (let ((*forcing* t)) (traverse (make-instance 'load-op) some-system))

which lists all components and all systems that should be loaded, sorted in
some appropriate order. We rely critically on this, because otherwise I do
not know a way to traverse a set of systems "portably" without redoing all
of ASDF's logic.

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/20100318/6cf0bec4/attachment.html>


More information about the asdf-devel mailing list