Faré wrote:
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.
Do you think that could be why the rogue duplicate reference is there? Because it defined something (a macro, perhaps?) such that any changes to Goatee's presentation-history.lisp *should* cause other components of CLIM to recompile, but did not because of the bug in ASDFs 1&2?
Killing this should be safe now, if so.
cheers, r