[asdf-devel] clx-0-7-4 fails to compile if the system pathname is logical

james anderson james.anderson at setf.de
Fri Mar 5 23:47:56 UTC 2010


if the system pathname is logical, the component for the file  
"shape.lisp" fails to locate the intended file.


* (asdf:operate 'asdf:load-op :de.setf.graphics.clx)
...
; loading system definition from
; /Development/Source/dev/Library/de/setf/graphics/clx/clx.asd into
...
;; loading #P"/Users/janson/.cache/common-lisp/sbcl-1.0.35-darwin- 
ppc32/Development/Source/dev/Library/bin/sbcl-osx/edu/mit/clx/ 
clx-0-7-4/resource.fasl"

debugger invoked on a SB-INT:SIMPLE-FILE-ERROR:
   failed to find the TRUENAME of /edu/mit/clx/clx-0-7-4/shape.lisp:
     No such file or directory


the problem occurs because the respective module, "extensions",  
specifies a relative pathname with the directory component  
(:relative) but no host.
the consequence is that the source file's relative pathname is an  
absolute pathname relative to "/" rather than relative to the logical  
base.

the system:
8] (describe *s*)
#<ASDF:SYSTEM "clx" {11D57A31}>
   [standard-object]

Slots with :INSTANCE allocation:
   NAME                     = "clx"
   VERSION                  = "0.7.2"
   IN-ORDER-TO              = ((ASDF:LOAD-OP (ASDF:LOAD-OP CLX- 
SYSTEM::SB-BSD-SOCKETS))..
   DO-FIRST                 = ((ASDF:COMPILE-OP (ASDF:LOAD-OP CLX- 
SYSTEM::SB-BSD-SOCKETS)))
   INLINE-METHODS           = NIL
   PARENT                   = NIL
   RELATIVE-PATHNAME        = #P"LIBRARY:EDU;MIT;CLX;CLX-0-7-4;"
   OPERATION-TIMES          = #<HASH-TABLE :TEST EQL :COUNT 0  
{11E8C2F1}>
   PROPERTIES               = ((ASDF:SYSTEM-NICKNAMES  
"edu.mit.clx.clx"))
   COMPONENTS               = (#<CLX-SYSTEM::CLX-SOURCE-FILE  
"package" {120E8811}>..
   IF-COMPONENT-DEP-FAILS   = :FAIL
   DEFAULT-COMPONENT-CLASS  = CLX-SYSTEM::CLX-SOURCE-FILE
   DESCRIPTION              = #<unbound slot>
   LONG-DESCRIPTION         = #<unbound slot>
   AUTHOR                   = #<unbound slot>
   MAINTAINER               = #<unbound slot>
   LICENCE                  = #<unbound slot>
   SOURCE-FILE              = #P"/Development/Source/dev/Library/edu/ 
mit/clx/clx-0-7-4/clx.asd"

the module:
8] (describe *p*)
#<ASDF:MODULE "extensions" {11E29EA9}>
   [standard-object]

Slots with :INSTANCE allocation:
   NAME                     = "extensions"
   VERSION                  = #<unbound slot>
   IN-ORDER-TO              = ((ASDF:LOAD-OP..
   DO-FIRST                 = ((ASDF:COMPILE-OP..
   INLINE-METHODS           = NIL
   PARENT                   = #<ASDF:SYSTEM "clx" {11D57A31}>
   RELATIVE-PATHNAME        = #P""
   OPERATION-TIMES          = #<HASH-TABLE :TEST EQL :COUNT 0  
{120E8AE1}>
   PROPERTIES               = NIL
   COMPONENTS               = (#<CLX-SYSTEM::CLX-SOURCE-FILE  
"shape" {123FA861}>..
   IF-COMPONENT-DEP-FAILS   = :FAIL
   DEFAULT-COMPONENT-CLASS  = CLX-SYSTEM::CLX-SOURCE-FILE

8]  (describe (asdf:component-relative-pathname *p*))
#P""
   [structure-object]

Slots with :INSTANCE allocation:
   HOST       = #<SB-IMPL::UNIX-HOST {102CE661}>
   DEVICE     = NIL
   DIRECTORY  = (:RELATIVE)
   NAME       = NIL
   TYPE       = NIL
   VERSION    = NIL

the file component

8] (describe *c*)
#<CLX-SYSTEM::CLX-SOURCE-FILE "shape" {123FA861}>
   [standard-object]

Slots with :INSTANCE allocation:
   NAME               = "shape"
   VERSION            = #<unbound slot>
   IN-ORDER-TO        = NIL
   DO-FIRST           = ((ASDF:COMPILE-OP (ASDF:LOAD-OP)))
   INLINE-METHODS     = NIL
   PARENT             = #<ASDF:MODULE "extensions" {11E29EA9}>
   RELATIVE-PATHNAME  = NIL
   OPERATION-TIMES    = #<HASH-TABLE :TEST EQL :COUNT 0 {126394B9}>
   PROPERTIES         = NIL

8] (describe (asdf:component-pathname *c*))
#P"/edu/mit/clx/clx-0-7-4/shape.lisp"
   [structure-object]

Slots with :INSTANCE allocation:
   HOST       = #<SB-IMPL::UNIX-HOST {102CE661}>
   DEVICE     = :UNSPECIFIC
   DIRECTORY  = (:ABSOLUTE "edu" "mit" "clx" "clx-0-7-4")
   NAME       = "shape"
   TYPE       = "lisp"
   VERSION    = :NEWEST

the excerpt from the system definition:

(:module extensions
	      :pathname #.(make-pathname :directory '(:relative))
	      :components
	      ((:file "shape")
	       (:file "big-requests")
	       (:file "xvidmode")
	       (:xrender-source-file "xrender")
                (:file "glx")
                (:file "gl" :depends-on ("glx"))
	       (:file "dpms")
                (:file "xtest")
                (:file "screensaver")
                (:file "xinerama")))





More information about the asdf-devel mailing list