[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