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