On 1/8/13 Jan 8 -5:34 PM, Faré wrote:
On Tue, Jan 8, 2013 at 2:36 PM, Robert Goldman rpgoldman@sift.info wrote:
CCL 1.8 on Mac OS X fails to compile asdf as pulled just now.
Not-very-helpful transcript snippet:
COMPONENT-DEPENDS-ON [Defmethod] COMPONENT-DEPENDS-ON [Defmethod] COMPONENT-DEPENDS-ON [Defmethod] COMPONENT-DEPENDS-ON [Defmethod] COMPONENT-DEPENDS-ON [Defmethod] COMPONENT-DEPENDS-ON [Defmethod] COMPONENT-DEPENDS-ON [Defmethod] COMPONENT-DEPENDS-ON [Defmethod] Toplevel Forms... Toplevel Forms... Toplevel Forms... Toplevel Forms... ions of (:METHOD PERFORM (LOAD-OP CL-SOURCE-FILE)), in this file Testsuite failed: ASDF compiled with ERRORS
Interactively, interestingly, when I try to build from an asdf:*central-registry* with home:lisp;asdf; in it, I get this error:
Error while trying to load definition for system asdf from pathname home:lisp;asdf;asdf.asd.newest: Illegal logical namestring "/Users/rpg/lisp/asdf/asdf.asd" [Condition of type ASDF:LOAD-SYSTEM-DEFINITION-ERROR]
No idea what that's about. When I use /Users/rpg/lisp/asdf/ instead, it works fine.
Whoa. Something funky is happening. Mind the "logical". Something quite illogical is happening as the result of an attempted merge of pathnames with a logical pathname, presumably the home: thing.
Can you explain me how logical pathnames are used on your machine and in your ASDF configuration?
I was using this: (setf (logical-pathname-translations "home") (list (list "**;*.*.*" "/Users/rpg/**/*.*")))
Gives me portability across Mac (/Users) and Linux (/home).
and doing (push "home:lisp;asdf;" asdf:*central-registry*) (asdf:load-system "asdf")
viz:
CL-USER> (logical-pathname-translations "home") ((#P"home:**;*.*.*" #P"/Users/rpg/**/*.*")) CL-USER> (push "home:lisp;asdf;" asdf:*central-registry*) ("home:lisp;asdf;" #P"/Users/rpg/lisp/xophe-clx/" "~/lisp/asdf-systems/" "~/lisp/asdf-install-systems/systems/" "~/lisp/asdf-systems/" "~/lisp/asdf-install-systems/systems/") CL-USER> (asdf:load-system "asdf")
Unfortunately, on my copy of SLIME, attempts to inspect this "illegal logical pathname" object crashes the inspector.
Something weird seems to be going on inside CCL:
0: ((:INTERNAL ASDF::LOAD-SYSDEF) #<SIMPLE-ERROR #x302000D7344D>) 1: (SIGNAL #<SIMPLE-ERROR #x302000D7344D>) 2: (CCL::%ERROR #<SIMPLE-ERROR #x302000D7344D> ("/Users/rpg/lisp/asdf/asdf.asd") 7841373) Locals: CONDITION = #<SIMPLE-ERROR #x302000D7344D> CCL::ARGS = ("/Users/rpg/lisp/asdf/asdf.asd") CCL::ERROR-POINTER = 7841373 3: (CCL::STRING-TO-PATHNAME "/Users/rpg/lisp/asdf/asdf.asd" 0 29 "home" #P"home:lisp;asdf;") 4: (CCL::FIND-LOAD-FILE #P"home:lisp;asdf;asdf.asd.newest") Locals: CCL::FILE-NAME = #P"home:lisp;asdf;asdf.asd.newest" CCL::FULL-NAME = #P"/Users/rpg/lisp/asdf/asdf.asd" CCL::KIND = NIL CCL::FILE-TYPE = "asd" CCL::MERGED = #P"home:lisp;asdf;asdf.asd.newest" 5: (CCL::%LOAD #P"home:lisp;asdf;asdf.asd.newest" NIL NIL :ERROR :DEFAULT) 6: (LOAD #P"home:lisp;asdf;asdf.asd.newest" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST :ERROR :EXTERNAL-FORMAT :DEFAULT) 7: ((:INTERNAL ASDF::LOAD-SYSDEF))
CL-USER> (describe *fn*) #P"home:lisp;asdf;asdf.asd.newest" Type: LOGICAL-PATHNAME Class: #<BUILT-IN-CLASS LOGICAL-PATHNAME> TYPE: (LOGICAL-PATHNAME . #<CCL::CLASS-WRAPPER LOGICAL-PATHNAME #x300040039A2D>) 1: (:ABSOLUTE "lisp" "asdf") 2: "asdf" 3: "asd" %LOGICAL-PATHNAME-HOST: "home" %LOGICAL-PATHNAME-VERSION: :NEWEST ; No value CL-USER> #P"/Users/rpg/lisp/asdf/asdf.asd" #P"/Users/rpg/lisp/asdf/asdf.asd" CL-USER> (describe *) #P"/Users/rpg/lisp/asdf/asdf.asd" Type: PATHNAME Class: #<BUILT-IN-CLASS PATHNAME> TYPE: (PATHNAME . #<CCL::CLASS-WRAPPER PATHNAME #x3000400399AD>) %PATHNAME-DIRECTORY: (:ABSOLUTE "Users" "rpg" "lisp" "asdf") %PATHNAME-NAME: "asdf" %PATHNAME-TYPE: "asd" %PHYSICAL-PATHNAME-VERSION: :NEWEST %PHYSICAL-PATHNAME-DEVICE: NIL
It does look like FIND-SYSTEM is implicated, as witness the comparison between me checking the logical pathname object created by ASDF, and checking one I make myself:
CL-USER> (asdf:load-system "asdf") #P"home:lisp;asdf;asdf.asd.newest" #P"home:lisp;asdf;asdf.asd.newest" CL-USER> (setf *sys* *) #P"home:lisp;asdf;asdf.asd.newest" CL-USER> (probe-file *sys*) ; Evaluation aborted on #<SIMPLE-ERROR #x302000DFD97D>. ; Evaluation aborted on #<SIMPLE-ERROR #x302000DFD97D>. CL-USER> CL-USER> (probe-file "home:lisp;asdf;asdf.asd") #P"/Users/rpg/lisp/asdf/asdf.asd"
I must go off, sorry -- I'll see if I can dig up any more information. If you can suggest where to look, that would be great.
cheers, r