On Wed, Sep 11, 2013 at 3:40 PM, John Morrison <[email protected]> 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
