[armedbear-cvs] r13692 - trunk/abcl/src/org/armedbear/lisp

mevenson at common-lisp.net mevenson at common-lisp.net
Thu Nov 3 16:10:08 UTC 2011


Author: mevenson
Date: Thu Nov  3 09:10:07 2011
New Revision: 13692

Log:
Enable ASDF to load from jar files again for #181.

Unsure if we need to somehow change the semantics of how
MERGE-PATHNAMES works in the presence of JAR-PATHNAMES.  Currently, we
have the following behavior:

CL-USER> (merge-pathnames "/home/evenson/work/abcl/dist/abcl-contrib.jar" #p"jar:file:/foo/bar.jar!/fee/")
#P"jar:file:/foo/bar.jar!/home/evenson/work/abcl/dist/abcl-contrib.jar"

Should we "break" ANSI here, so that if we have a defaulted DEVICE, we
also keep the defaulted DIRECTORY?  Unfortunately, I think this will
break some common cases of dealing with relative directories inside a
JAR-PATHNAME.  Need to consider this with email to both
@armedbear-develop and @asdf-develop.

Modified:
   trunk/abcl/src/org/armedbear/lisp/asdf.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/asdf.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/asdf.lisp	Thu Nov  3 09:04:19 2011	(r13691)
+++ trunk/abcl/src/org/armedbear/lisp/asdf.lisp	Thu Nov  3 09:10:07 2011	(r13692)
@@ -1706,6 +1706,12 @@
              (let ((*package* package)
                    (*default-pathname-defaults*
                     (pathname-directory-pathname pathname)))
+               ;;; XXX Under ABCL, if the PATHNAME is a JAR-PATHNAME the
+               ;;; MERGE-PATHNAMES are perhaps a bit wonky.
+               #+abcl
+               (when (ext:pathname-jar-p pathname) 
+                 (setf *default-pathname-defaults* 
+                       (make-pathname :device nil :defaults *default-pathname-defaults*)))
                (asdf-message (compatfmt "~&~@<; ~@;Loading system definition from ~A into ~A~@:>~%")
                              pathname package)
                (load pathname)))




More information about the armedbear-cvs mailing list