[armedbear-devel] Patches for ASDF2 for translation function

Carlos Ungil carlos.ungil at gmail.com
Thu Apr 29 23:59:10 UTC 2010


On Mon, Apr 5, 2010 at 2:52 PM, Mark Evenson <evenson at panix.com> wrote:
> Attached is a patch against ASDF that allows a user specified function to
> take the place of TRANSLATE-PATHNAME as the ASDF2 output translation
> function.
> Additionally it adds an ABCL specific extension to ASDF2 that uses this
> ability by providing the following translations by default
>  (#p"jar:file:/**/*.jar!/**/*.*" (:function translate-jar-pathname))
>  (#p"/:jar:file/**/*.*" (:user-cache #p"**/*.*")))
> that will map all ASDF loads from jar pathnames to an output location under
> the per user cache location.  This will allow the loading of ASDF systems
> packaged in jar files which first compiles and then loads FASLs to the local
> filesystem.

On MacOSX, and I guess on all non-Windows systems, #p"/:jar:file/**/*.*" equals
(make-pathname :type :wild :name :wild :directory '(:absolute
":jar:file" :wild-inferiors))

On Windows, this pathname is parsed differently: the result is a
relative directory
in a device called "/" (as mentioned in a trac ticket, this causes an error).

Is there a reason why the pathname has to start with "/:"? I changed it to
#P"/jar:file/**.*" (and made a similar change inside translate-jar-pathname,
from "/:jar:file/" to "/jar:file/"). This seems to work on both macosx
and windows
(at least I can load asdf systems).

I wonder if something else might be broken with the change.



More information about the armedbear-devel mailing list