diff --git a/asdf.lisp b/asdf.lisp index e9d60656f03c0e388e7b4464937492095f9f6155..71a145ee1229aac84b569177d38f1c5b06fb9681 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -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 @@ #:remove-entry-from-registry #:initialize-output-translations + #:disable-output-translations #:clear-output-translations #:ensure-output-translations #:apply-output-translations @@ -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." + (initialize-output-translations + '(: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 diff --git a/doc/asdf.texinfo b/doc/asdf.texinfo index 5055a3b8fc12e0f12a1c36e42d24ab22bfcecd85..0a801ffc6f9f57f3556208be80bbb1b51d70a51d 100644 --- a/doc/asdf.texinfo +++ b/doc/asdf.texinfo @@ -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: +@itemize +@item +Any ASDF extension is invalidated, and will need to be reloaded. +@item +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{*centralize-lisp-binaries*}, +@var{*default-toplevel-directory*}, +@var{*include-per-user-information*}, +@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,