diff --git a/asdf-ecl.lisp b/asdf-ecl.lisp index 0f4885a3215a22bf5308a3b61795743906978547..38f6e86b1bcebd53212e308479a1bad7e0bfa6ad 100644 --- a/asdf-ecl.lisp +++ b/asdf-ecl.lisp @@ -168,8 +168,8 @@ (defmethod output-files ((o bundle-op) (c system)) (let ((name (concatenate 'base-string (component-name c) (slot-value o 'name-suffix)))) - (list (merge-pathnames (compile-file-pathname name :type (bundle-op-type o)) - (component-relative-pathname c))))) + (list (merge-pathnames* (compile-file-pathname name :type (bundle-op-type o)) + (component-relative-pathname c))))) (defmethod output-files ((o fasl-op) (c system)) (loop for file in (call-next-method) diff --git a/asdf.lisp b/asdf.lisp index b8af0139f49f6e511f0f6a8dea067b0f5de930e3..b7024933256620a027319e2788456eb4dc7f2d6d 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -247,7 +247,7 @@ ;; This parameter isn't actually user-visible ;; -- please use the exported function ASDF:ASDF-VERSION below. ;; the 1+ hair is to ensure that we don't do an inadvertent find and replace - (subseq "VERSION:1.633" (1+ (length "VERSION")))) + (subseq "VERSION:1.634" (1+ (length "VERSION")))) (defun asdf-version () "Exported interface to the version of ASDF currently installed. A string. @@ -2207,7 +2207,7 @@ output to `*verbose-out*`. Returns the shell's exit code." ;;; --------------------------------------------------------------------------- ;;; Generic support for configuration files (defun user-configuration-directory () - (merge-pathnames #p".config/" (user-homedir-pathname))) + (merge-pathnames* #p".config/" (user-homedir-pathname))) (defun system-configuration-directory () #p"/etc/") @@ -2419,15 +2419,15 @@ with a different configuration, so the configuration would be re-read then." (defparameter *implementation-output-translations* `(:output-translations - ;; If clozure had any precompiled ASDF system, we'd use that: - ; #+clozure (,(ccl::ccl-directory) ()) - ;; SBCL *does* have precompiled ASDF system, so we use this: - #+sbcl (,(getenv "SBCL_HOME") ()) - ;; All-import, here is where we want user stuff to be: - :inherit-configuration - ;; If we want to enable the user cache by default, here would be the place: - :enable-user-cache - )) + ;; Some implementations have precompiled ASDF systems, + ;; so we must disable translations for implementation paths. + #+sbcl (,(getenv "SBCL_HOME") ()) + #+ecl (,(translate-logical-pathname "SYS:**;*.*") ()) ; only needed if LPNs are resolved manually. + #+clozure (,(wilden (ccl::ccl-directory)) ()) ; not needed: no precompiled ASDF system + ;; All-import, here is where we want user stuff to be: + :inherit-configuration + ;; If we want to enable the user cache by default, here would be the place: + :enable-user-cache)) (defun implementation-output-translations () *implementation-output-translations*) @@ -2763,10 +2763,10 @@ with a different configuration, so the configuration would be re-read then." :inherit-configuration)) (defun default-source-registry () `(:source-registry - #+sbcl (:directory ,(merge-pathnames ".sbcl/systems/" (user-homedir-pathname))) + #+sbcl (:directory ,(merge-pathnames* ".sbcl/systems/" (user-homedir-pathname))) (:directory ,(truenamize (directory-namestring *default-pathname-defaults*))) - (:directory ,(merge-pathnames ".local/share/common-lisp/systems/" (user-homedir-pathname))) - (:tree ,(merge-pathnames ".local/share/common-lisp/source/" (user-homedir-pathname))) + (:directory ,(merge-pathnames* ".local/share/common-lisp/systems/" (user-homedir-pathname))) + (:tree ,(merge-pathnames* ".local/share/common-lisp/source/" (user-homedir-pathname))) (:directory "/usr/local/share/common-lisp/systems/") (:tree "/usr/local/share/common-lisp/source/") (:directory "/usr/local/share/common-lisp/systems/") @@ -2775,13 +2775,13 @@ with a different configuration, so the configuration would be re-read then." (:tree "/usr/share/common-lisp/source/") :inherit-configuration)) (defun user-source-registry () - (merge-pathnames *source-registry-file* (user-configuration-directory))) + (merge-pathnames* *source-registry-file* (user-configuration-directory))) (defun system-source-registry () - (merge-pathnames *source-registry-file* (system-configuration-directory))) + (merge-pathnames* *source-registry-file* (system-configuration-directory))) (defun user-source-registry-directory () - (merge-pathnames *source-registry-directory* (user-configuration-directory))) + (merge-pathnames* *source-registry-directory* (user-configuration-directory))) (defun system-source-registry-directory () - (merge-pathnames *source-registry-directory* (system-configuration-directory))) + (merge-pathnames* *source-registry-directory* (system-configuration-directory))) (defun environment-source-registry () (getenv "CL_SOURCE_REGISTRY")) diff --git a/asdf.texinfo b/asdf.texinfo index f8bf9550ecd5b3b585cc7e57fc6d9e2f1568e9ef..9f75035e5b2c78854a666a18788f28ca9a259a24 100644 --- a/asdf.texinfo +++ b/asdf.texinfo @@ -142,6 +142,17 @@ to learn how to define a system of your own. @c XXXX missing @xref here! Later chapters describe the ASDF internals and how to extend ASDF. +NOTA BENE: +We are preparing for a release of ASDF 2, +which will have version 2.000 and later. +The current release 1.634 has all the code we think we need, +but we're still working on documentation, +and on fixing the occasional bug. +For all practical purposes, ASDF 2 refers to releases later than 1.634, +and ASDF 1 to any release earlier than 1.369 or so. +Once ASDF 2.000 is released, older versions will not be supported anymore, +and we'll push @code{:asdf2} onto @code{*features*}. + @node Loading ASDF, Configuring ASDF, Introduction, Top @comment node-name, next, previous, up @@ -1498,29 +1509,29 @@ Configurations specify mappings from source locations to binary locations. from a script, from its own configuration file, etc. @item - The source registry will be configured from + The source registry will be configured from the environment variable @code{ASDF_OUTPUT_TRANSLATIONS} if it exists. @item - The source registry will be configured from + The source registry will be configured from user configuration file @file{~/.config/common-lisp/asdf-output-translations.conf} if it exists. @item - The source registry will be configured from + The source registry will be configured from user configuration directory @file{~/.config/common-lisp/asdf-output-translations.conf.d/} if it exists. @item - The source registry will be configured from + The source registry will be configured from system configuration file @file{/etc/common-lisp/asdf-output-translations.conf} if it exists. @item - The source registry will be configured from + The source registry will be configured from system configuration directory @file{/etc/common-lisp/asdf-output-translations.conf.d/} if it exists. @@ -1537,7 +1548,7 @@ includes its inherited configuration. Additionally, some implementation-specific directories may be automatically added to whatever mappings are specified -in configuration files, no matter if the last one inherits or not. +in configuration files, no matter whether the last one inherits or not. @section Backward Compatibility @@ -1634,7 +1645,8 @@ Relative components better be either relative or subdirectories of the path before them, or bust. The last component, if not a pathname, is notionally completed by @file{/**/*.*}. -You can specify more fine-grained patterns by using a pathname object, +You can specify more fine-grained patterns +by using a pathname object as the last component e.g. @file{#p"some/path/**/foo*/bar-*.fasl"} You may use @code{#+features} to customize the configuration file. @@ -1787,7 +1799,7 @@ and to Peter van Eynde for @code{Common Lisp Controller}. All bad design ideas and implementation bugs are to mine, not theirs. But so are good design ideas and elegant implementation tricks. - -- Francois-Rene Rideau @email{fare@@tunes.org} + --- Francois-Rene Rideau @email{fare@@tunes.org} @c @section Default locations @c @findex output-files-for-system-and-operation diff --git a/test/compile-asdf.lisp b/test/compile-asdf.lisp index dc171c2c95e2945fb0e58066843a9fcf44a7d40b..8d274d56634f6c6984f29b95882f3c40a597bd36 100644 --- a/test/compile-asdf.lisp +++ b/test/compile-asdf.lisp @@ -1,6 +1,6 @@ (in-package #:common-lisp-user) -(load (merge-pathnames "script-support" *load-pathname*)) +(load (make-pathname :name "script-support" :defaults *load-pathname*)) (cond ((probe-file *asdf-lisp*) (ensure-directories-exist *asdf-fasl*) diff --git a/test/script-support.lisp b/test/script-support.lisp index 6db18a8f3f2c6e05d47d2b2e75a51c00a64f8116..f030e4c50deb4ab2d0517888763553bd7fca17ae 100644 --- a/test/script-support.lisp +++ b/test/script-support.lisp @@ -1,8 +1,20 @@ (in-package #:common-lisp-user) -(defvar *asdf-lisp* (truename (merge-pathnames "../asdf.lisp" *load-truename*))) -(defvar *asdf-fasl* (compile-file-pathname (merge-pathnames "tmp/" *asdf-lisp*))) -(defun load-asdf () (load *asdf-fasl*)) +;; We can't use asdf:merge-pathnames* because ASDF isn't loaded yet. +;; We still want to work despite and host/device funkiness. +(defvar *asdf-lisp* + (truename + (merge-pathnames + (make-pathname :directory '(:relative :up) :name "asdf" :type "lisp" + :defaults *load-truename*) + *load-truename*))) +(defvar *asdf-fasl* + (compile-file-pathname + (merge-pathnames + (make-pathname :directory '(:relative "tmp") :defaults *asdf-lisp*) + *asdf-lisp*))) +(defun load-asdf () + (load *asdf-fasl*)) #+allegro (setf excl:*warn-on-nested-reader-conditionals* nil)