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

John Morrison john.nmi.morrison at gmail.com
Wed Sep 11 19:40:17 UTC 2013


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...

-jm

(defsystem :clim
  :depends-on (:clim-core :goatee-core :clim-postscript :drei-mcclim)
  :components
  (#+NIL(:file "Goatee/presentation-history" ; XXX: this is loaded as part
of the Goatee system. huh?
          :pathname #.(make-pathname :directory '(:relative "Goatee") :name
"presentation-history" :type "lisp"))
   (:file "input-editing-goatee")
   (:file "input-editing-drei")
   (:file "text-editor-gadget")
   (:file "Extensions/tab-layout"
      :pathname #.(make-pathname :directory '(:relative "Extensions")
                     :name "tab-layout"
                                     :type "lisp"))))


On Wed, Sep 4, 2013 at 1:17 PM, Faré <fahree at gmail.com> wrote:

> John, which version of McCLIM  are you using on which platform? Give
> us the URL, etc.
>
> I remember battling with mcclim.asd before I could release ASDF 3. It
> included a lot of cruft from the ASDF 1 days, and various bugs that I
> fixed together with rpgolman.
>
> It is also possible that McCLIM or one of its dependencies has
> dependency bugs that used to be hidden by ASDF bugs: unlike ASDF3,
> ASDF1 and after it ASDF2 don't properly propagate timestamps
> transitively through dependencies. If somehow McCLIM has some kind of
> circularity or bootstrapping whereby a file that is depended upon
> earlier in the build is touched or re-created later in the build, or
> even more simply, a declared input that doesn't exist or a declared
> output that is never created, that will cause ASDF3 to reload a lot of
> things where earlier versions wouldn't.
>
> Can you
> (1) check that you use the latest versions of McCLIM and its dependencies
> (2) find a minimal case where things go wrong, and give us a trace of
> perform-plan?
>
> —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics•
> http://fare.tunes.org
> Ever wonder why the SAME PEOPLE make up ALL the conspiracy theories?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20130911/b172abbf/attachment.html>


More information about the asdf-devel mailing list