On 9/1/11 Sep 1 -6:58 AM, Zach Beane wrote: > Say I download version 1 of the FOO library and put it in /tmp/foo-1/, > so it looks like this: > > /tmp/foo-1/foo.asd > /tmp/foo-1/a.lisp > > foo.asd has this: > > (asdf:defsystem #:foo > :serial t > :components ((:file "a"))) > > Then I add the path to the central registry and load it: > > (push #p"/tmp/foo-1/" asdf:*central-registry*) > (asdf:load-system "foo") > > Everything loads fine. > > Oops, I need to upgrade, I better get version 2 and put it in > /tmp/foo-2/, which looks like this: > > /tmp/foo-2/foo.asd > /tmp/foo-2/a.lisp > /tmp/foo-2/b.lisp > > foo.asd looks like this: > > (asdf:defsystem #:foo > :serial t > :components ((:file "a") > (:file "b"))) > > Then I add the path to central registry: > > (push #p"/tmp/foo-2/" asdf:*central-registry*) > > It seems to find the new system: > > (asdf:system-source-directory "foo") => #p"/tmp/foo-2/" > > However, when I try this: > > (asdf:load-system "foo") > > I end up with this error, which I don't really understand: > > failed to find the TRUENAME of /tmp/foo-1/b.lisp: > No such file or directory > > Why does that happen? What's the best way to work around it? > > I'm using ASDF 2.017 and a very recent SBCL from git. You can reproduce > my scenario by unpacking http://xach.com/tmp/foofail.tgz and loading > "foofail.lisp".
FWIW, I get the same error on ACL, so I believe this is an ASDF issue, and not SBCL-specific.... I haven't solved the problem, but when I look into the "foo" system object I see an interesting mismatch between the relative and absolute pathname slots: A NEW ASDF-UTILITIES:SYSTEM @ #x100436e292 = #<ASDF-UTILITIES:SYSTEM "foo"> 0 Class --------> #<STANDARD-CLASS ASDF-UTILITIES:SYSTEM> 1 NAME ---------> A simple-string (3) "foo" 2 VERSION ------> symbol :--UNBOUND-- 3 LOAD-DEPENDENCIES -> symbol NIL 4 IN-ORDER-TO --> symbol NIL 5 DO-FIRST -----> ((ASDF-UTILITIES:COMPILE-OP (ASDF-UTILITIES:LOAD-OP))), a proper list with 1 element 6 INLINE-METHODS -> symbol NIL 7 PARENT -------> symbol NIL 8 RELATIVE-PATHNAME -> PATHNAME struct = #P"/Users/rpg/Downloads/foofail/foo-2/" 9 ABSOLUTE-PATHNAME -> PATHNAME struct = #P"/Users/rpg/Downloads/foofail/foo-1/" .... This is probably the right place to look for the bug. I'm afraid that I will be in meetings all day, and am unlikely to get around to this in the near future... Zach, would you mind blowing this into the launchpad? thanks, r _______________________________________________ asdf-devel mailing list [email protected] http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
