[asdf-devel] Disabling "built-in" output translation
Mark Evenson
evenson at panix.com
Tue May 17 11:41:20 UTC 2011
ASDF contains some specialized code for ABCL that enable the translation
of ASDF systems whose source is packaged into jar files to locate the
corresponding object files in ASDF's user cache. In trying to figure
out the correct mechanism to allow for "binary" ASDF distribution under
ABCL that would include both the source and the fasls in the same jar
file, I need to disable the jar file translation mechanism.
I expected that invoking DISABLE-OUTPUT-TRANSLATIONS would clear this
built-in translation mechanism, but it doesn't seem to do this. Only
invoking CLEAR-OUTPUT-TRANSLATIONS seems to actually change the output
translation map. To wit:
ASDF> (disable-output-translations)
((T T)
(#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*"
T) (#P"/___jar___file___root___/**/*.*"
#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*")
(#P"jar:file:/**/*.jar!/**/*.*" #<FUNCTION TRANSLATE-JAR-PATHNAME
{771931F8}>) (T
#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*"))
ASDF> (output-translations)
((#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*"
T) (#P"/___jar___file___root___/**/*.*"
#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*")
(#P"jar:file:/**/*.jar!/**/*.*" #<FUNCTION TRANSLATE-JAR-PATHNAME
{771931F8}>) (T T) (T
#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*"))
ASDF> (disable-output-translations)
((T T)
(#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*"
T) (#P"/___jar___file___root___/**/*.*"
#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*")
(#P"jar:file:/**/*.jar!/**/*.*" #<FUNCTION TRANSLATE-JAR-PATHNAME
{771931F8}>) (T
#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*"))
ASDF> (output-translations)
((#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*"
T) (#P"/___jar___file___root___/**/*.*"
#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*")
(#P"jar:file:/**/*.jar!/**/*.*" #<FUNCTION TRANSLATE-JAR-PATHNAME
{771931F8}>) (T T) (T
#P"/Users/evenson/.cache/common-lisp/abcl-0.26.0-dev-fasl37-macosx-java/**/*.*"))
ASDF> (clear-output-translations)
; No value
ASDF> (output-translations)
NIL
ASDF>
Should DISABLE-OUTPUT-TRANSLATIONS actually push that (T T) list into
the beginning of that (OUTPUT-TRANSLATION) list or does the API expect
that the user use it something like
ASDF> (setf (output-translations) (disable-output-translations))
Should ASDF under ABCL strip out the jar translation mechanism as well,
or should the ASDF API expect that the user would actual issue a
(CLEAR-OUTPUT-TRANSLATIONS)? I confess that I am a bit confused when
one would ever use DISABLE-OUTPUT-TRANSLATIONS as opposed to
CLEAR-OUTPUT-TRANSLATIONS.
Once I understand the ASDF API here a bit better, I will work on the
necessary ABCL specific ASDF patches if necessary.
--
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."
More information about the asdf-devel
mailing list