[asdf-devel] What do I win?

dherring at tentpost.com dherring at tentpost.com
Fri Oct 15 21:05:00 UTC 2010


Robert Goldman wrote:
> On 10/15/10 Oct 15 -2:00 PM, Pascal J. Bourguignon wrote:
>> Robert Goldman <rpgoldman at sift.info>
>>> I get it, but the value of such introspection seems, at the moment,
>>> primarily conjectural, but the bewilderment of :if-component-dep-fails
>>> is certain.
>>
>> Not really.
>>
>> For example, documentation generators use ASD files to as documentation
>> root.  It would be better if they could gather and document the various
>> implementation specific parts without playing game with the lisp reader.
>
> Agreed.  But the number of systems that have such documentation
> generators are EXTREMELY limited.

There are a few documentation generators that grovel any asdf system by name.
Example: declt http://www.lrde.epita.fr/~didier/software/lisp/misc.php


Regardless, tools like LibCL and Quicklisp could use this information for
other reasons.  For example, to load systems in the proper order, to
download systems before compiling, to generate documentation including all
possible dependencies, etc.

The uses are very real.  I would like an interface that could cull things
during the normal ops, but would "satisfy everything" during introspection
ops.  Maybe something like asdf:*all-conditions-pass*?

This would be much nicer than tricks like temporarily binding *features*.

There is also an obscure error potentially waiting for users of #+ and #-.
 As asdf reads system definitions, the reader won't expand features that
will be set as systems load.  If asdf then caches the definitions it has
found...

Example:
  Start with two systems, X and Y, and a fresh lisp image.
  X depends on Y
  X.asd contains "#+Y-feature X-stuff"
  Y pushes :Y-feature to *features* while loading

  > (asdf:oos 'asdf:load-op :X)

  Question: Was "X-stuff" read and executed?  Does the result change if we
load Y then X in two separate operations?


Special care would still be needed for the (:when x y) API, but it
wouldn't require reinvoking the reader.

Later,
Daniel






More information about the asdf-devel mailing list