Commit ce5ce54c authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

* create, export and document disable-output-translations

* document enable-asdf-binary-locations-compatibility
* Be nicer when upgrading using Allegro: disable autoloading of old ASDF.
parent ed62af17
......@@ -61,6 +61,7 @@
(let* ((asdf-version
;; the 1+ hair is to ensure that we don't do an inadvertent find and replace
(subseq "VERSION:1.664" (1+ (length "VERSION"))))
#+allegro (excl::*autoload-package-name-alist* nil)
(existing-asdf (find-package :asdf))
(versym '#:*asdf-version*)
(existing-version (and existing-asdf (find-symbol (string versym) existing-asdf)))
......@@ -251,6 +252,7 @@
......@@ -2529,6 +2531,12 @@ with a different configuration, so the configuration would be re-read then."
return the configuration"
(setf (output-translations) (compute-output-translations parameter)))
(defun disable-output-translations ()
"Initialize output translations in a way that maps every file to itself,
effectively disabling the output translation facility."
'(:output-translations :disable-cache :ignore-inherited-configuration)))
;; checks an initial variable to see whether the state is initialized
;; or cleared. In the former case, return current configuration; in
;; the latter, initialize. ASDF will call this function at the start
......@@ -277,6 +277,16 @@ for multiple mutually incompatible implementations.
At worst, you may have to have multiple copies of the new ASDF,
e.g. one per implementation installation, to avoid clashes.
Finally, note that there are some limitations to upgrading ASDF:
Any ASDF extension is invalidated, and will need to be reloaded.
It is safer if you upgrade ASDF and its extensions as a special step
at the very beginning of whatever script you are running,
before you start using ASDF to load anything else.
@end itemize
@section Loading an otherwise installed ASDF
......@@ -2054,16 +2064,33 @@ might have been doing the right thing for some users),
and yet will experience software that ``just works'',
as configured by the system distributor, or by default.
Nevertheless, if you want to use the old @code{ASDF-Binary-Locations}
Nevertheless, if you are a fan of @code{ASDF-Binary-Locations},
we provide a limited emulation mode:
@defun asdf:enable-asdf-binary-locations-compatibility &key centralize-lisp-binaries default-toplevel-directory include-per-user-information map-all-source-files source-to-target-mappings
This function will initialize the new @code{asdf-output-translations} facility in a way
that emulates the behavior of the old @code{ASDF-Binary-Locations} facility.
Where you would previously set global variables
@var{*map-all-source-files*} or @var{*source-to-target-mappings*}
you will now have to pass the same values as keyword arguments to this function.
Note however that as an extension the @code{:source-to-target-mappings} keyword argument
will accept any valid pathname designator for @code{asdf-output-translations}
instead of just strings and pathnames.
@end defun
If you insist, you can also keep using the old @code{ASDF-Binary-Locations}
(the one available as an extension to load of top of ASDF,
not the one built into a few old versions of ASDF),
it may still work if you just make sure you disable the new
builtin @code{asdf-output-translations}.
But if you configure both ASDF's new builtin and @code{ASDF-Binary-Locations}
(or an old @code{common-lisp-controller} or @code{cl-launch}),
you may experience ``interesting'' issues, so don't do it.
but first you must disable @code{asdf-output-translations}
with @code{(asdf:disable-output-translations)},
or you might experience ``interesting'' issues.
Also, note that output translation is enabled by default.
To disable it, use @code{(asdf:disable-output-translations)}.
Also, note that this feature is enabled by default.
@section Configuration DSL
......@@ -2250,8 +2277,14 @@ The specified functions are exported from package ASDF.
or a symbol (fbound to function that when called returns one of the above).
@end defun
@defun disable-output-translations
will initialize output translations in a way
that maps every pathname to itself,
effectively disabling the output translation facility.
@end defun
@defun clear-output-translations
undoes any output location configuration
undoes any output translation configuration
and clears any cache for the mapping algorithm.
You might want to call that before you
dump an image that would be resumed with a different configuration,
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment