[asdf-devel] ASDF breaks ECL's use of :PATHNAME

Juan Jose Garcia-Ripoll juanjose.garciaripoll at gmail.com
Sun Oct 28 00:04:58 UTC 2012


On Sun, Oct 28, 2012 at 1:51 AM, Faré <fahree at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20121028/c75f66a3/attachment.html>


More information about the asdf-devel mailing list