[asdf-devel] CCL build failure
Robert Goldman
rpgoldman at sift.info
Wed Jan 9 00:01:44 UTC 2013
On 1/8/13 Jan 8 -5:34 PM, Faré wrote:
> On Tue, Jan 8, 2013 at 2:36 PM, Robert Goldman <rpgoldman at 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
More information about the asdf-devel
mailing list