[asdf-devel] :depends-on to load-system or require-system?

Faré fahree at gmail.com
Wed Sep 11 19:55:49 UTC 2013


On Wed, Sep 11, 2013 at 3:40 PM, John Morrison
<john.nmi.morrison at gmail.com> wrote:
> Well, I think I found the thing that triggers the problem - even if I didn't
> really find the problem itself.  The :clim defsystem defines a dependency
> that reaches into one of its components - the Goatee/presentation-history
> file.  (Maybe the "huh?" comment in the asd file should've clued me in a
> little before now, eh?)  My guess (based on a later filesystem date on the
> file presentation-history as compared to the other file components of
> goatee-core) is that recompiling the file as a part of clim later than and
> as opposed to goatee-core made goatee appear to have changed, forcing
> recompiiling of parents...  Then things got weird.
>
> When I put the #+NIL in the obvious place (see below), things work as
> expected.  (This with ASDF 3.0.2.4 - haven't check the older versions
> yet...)
>
> Does anybody have any clue why this might have been this way?  It seems to
> be wrong in spirit (recompiling files of another component from outside any
> operations on that specific component), and clearly raised the eyebrows of
> at least one McCLIM maintainer...  In any event, thanks for the
> troubleshooting clues, guys, and sorry for any unintentional casting of
> aspersions...
>
ASDF 1 (and 2) failed to propagate timestamps from dependencies to
dependents, and a file could appear twice, in two different systems,
and not cause a dependency loop.

ASDF 3 correctly propagates timestamps from dependencies to
dependents. If a file appears twice, the uncompiled or out-of-date
first occurrence causes everything that follows to be recompiled,
including, later, the second occurrence, which will have a later
timestamp, that next time around, will mean the first occurrence has
been compiled after everything in the dependency loop.

Conclusion: don't introduce dependency loops. They were always a bug,
just one that was previously hidden by a deep bug in ASDF itself.

Don't #+NIL the bastard, just plain kill it.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Dost thou love life? Then do not squander time, for that's the stuff
life is made of. — Benjamin Franklin



More information about the asdf-devel mailing list