On Wed, Sep 11, 2013 at 3:40 PM, John MorrisonASDF 1 (and 2) failed to propagate timestamps from dependencies to
<john.nmi.morrison@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...
>
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.
Dost thou love life? Then do not squander time, for that's the stuff
life is made of. — Benjamin Franklin