![](https://secure.gravatar.com/avatar/9973252e4ac359adafa254d440a7ce60.jpg?s=120&d=mm&r=g)
On Sun, Oct 28, 2012 at 1:51 AM, Faré <fahree@gmail.com> wrote:
This particular example looks like it works for me on ecl-12.7.1-52ca46e0-linux-x64. So does replacing the (require :asdf) by loading 2.25.4. On the other hand, (asdf:upgrade-asdf) from the builtin 2.017.5 miserably segfaults :-(
The version released with that ECL is too old. Recent git sources ship with the latest ASDF and asdf-bundle (well, perhaps a few days off if I missed some announcement) If you load 2.25.4 on that release, it will not use the prebuilt asdf but rather just load the *.fas files, which misses totally the point: prebuilt components do not work. If you want to reproduce the error and see how component-relative-pathname fails to produce the right output, use this (ext::install-bytecodes-compiler) (setf *load-verbose* t) (progn (load "~/devel/ecl/contrib/asdf/asdf.lisp" :verbose t) (load "~/devel/ecl/contrib/asdf/specials.lisp" :verbose t) (load "~/devel/ecl/contrib/asdf/bundle.lisp" :verbose t) (load "~/devel/ecl/contrib/asdf/ecl.lisp" :verbose t)) (trace asdf::component-relative-pathname) (load "~/quicklisp/setup") The definition of component-relative-pathname wraps around the slot value, totally ignoring the value of the pathname type (defmethod component-relative-pathname ((component component)) (coerce-pathname (or (slot-value component 'relative-pathname) (component-name component)) :type (source-file-type component (component-system component)) :defaults (component-parent-pathname component))) Thus the screwed output: 1> (COMPONENT-RELATIVE-PATHNAME #<compiled-file "sockets" "sockets">) <1 (COMPONENT-RELATIVE-PATHNAME #P"SYS:SOCKETS.FASC") 1> (COMPONENT-RELATIVE-PATHNAME #<compiled-file "sockets" "sockets">) <1 (COMPONENT-RELATIVE-PATHNAME #P"SYS:SOCKETS.FASC") Juanjo -- Instituto de Física Fundamental, CSIC c/ Serrano, 113b, Madrid 28006 (Spain) http://juanjose.garciaripoll.googlepages.com