diff --git a/TODO b/TODO index 56e0638832067c9b96aae84c2cd253bdfe994cf9..fe4b80c05da02fcf4ce3b1690dd5df48cc8a3a47 100644 --- a/TODO +++ b/TODO @@ -19,8 +19,6 @@ concatenate all files for the system, then load the result (load-concatenated-source-op), concatenate all files for the system, then link them and load the result (load-compiled-concatenated-op), concatenate all files for the system *and* its dependencies, link and load (monolithic-load-compiled-concatenated-op). -* Stop the dynamic ASDFn temporary package madness. -** Just have a single ASDF-USER that :use's ASDF and ASDF-UTILS * operation cleanup? ** Kill backward-compat functions after all clients have moved on. ** Kill original-initargs -- BEWARE, it currently has clients! diff --git a/asdf.asd b/asdf.asd index ac9d674155e4b8f8bd83b4e701f4b0c36d805963..29665831a383986aeb391c7fb11d09503fe470b1 100644 --- a/asdf.asd +++ b/asdf.asd @@ -62,7 +62,7 @@ :licence "MIT" :description "Another System Definition Facility" :long-description "ASDF builds Common Lisp software organized into defined systems." - :version "2.26.158" ;; to be automatically updated by make bump-version + :version "2.26.159" ;; to be automatically updated by make bump-version :depends-on () #+asdf3 :encoding #+asdf3 :utf-8 ;; For most purposes, asdf itself specially counts as a builtin system. diff --git a/debian/changelog b/debian/changelog index 2cdb6ff2f79c0234ff29c53d278427c9ad3e0fb9..54214ff46a705ceb75648ff77f1f91e7b3d9c774 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,9 @@ -cl-asdf (2:3.0-1) unstable; urgency=low +cl-asdf (2:2.27-1) unstable; urgency=low + + ASDF 2.27 is actually an almost complete rewrite of ASDF, and + should be considered a pre-release for a new ASDF 3. + It nevertheless maintains backward compatibility with the current practice, + and is tested against the software in Quicklisp. * ASDF-BUNDLE was merged into ASDF. This notably means fewer headaches for users of ECL; @@ -7,16 +12,16 @@ cl-asdf (2:3.0-1) unstable; urgency=low After release, I plan to offer a patch so SBCL use that for its contrib's. All remnants of asdf-bundle's predecessor asdf-ecl were removed. - * *decades-old* bugs of notable significance were fixed: + * DECADES-OLD bugs of notable significance were fixed: (a) changes in dependencies now trigger a rebuild across systems, and https://bugs.launchpad.net/asdf/+bug/479522 (b) timestamps are now correctly propagated (they weren't at all!) https://bugs.launchpad.net/asdf/+bug/1087609 + Fixing them required a complete rewrite of ASDF's dependency tracking. In olden days, some have argued for not rebuilding systems that :depend-on a modified one as a "feature". It really isn't. On the other hand, it is now possible to explicitly prevent a system from being rebuilt, using an actual feature, :force-not, which was released in 2.21 in April 2012. - Someday I will write about those bugs. * PREPARE-OP was introduced to fix a conceptual bug in the ASDF object model. It corresponds to "loading the dependencies of a component and its parents" @@ -68,10 +73,10 @@ cl-asdf (2:3.0-1) unstable; urgency=low which belied the object model and defeated other features. Unhappily, this breaks backwards compatibility for the few who used it, namely sb-grovel, nibbles and ironclad. - A minimal compatibility layer allows ASDF 2.27 or later to load + A minimal compatibility layer allows ASDF 3 or later to load the SB-GROVEL of old versions of SBCL, but it won't suffice to load an old version of nibbles or ironclad; please upgrade them - a recent version that was updated to support ASDF 2.27. + a recent version that was updated to support ASDF 3. * CONCATENATE-SOURCE-OP is a new operation that builds a single Lisp file from all the source files in a system, @@ -171,8 +176,7 @@ cl-asdf (2:3.0-1) unstable; urgency=low Many internal accessors were renamed, after checking on Quicklisp that no one was using them. - * Portability updates were done for - ABCL, CLISP, Clozure CL, CMUCL, ECL, LispWorks Personal Edition, MKCL, XCL. + * Portability updates were done for each and every implementation. Working support for GCL 2.6 was restored, with notable limitations including lack of support for output-translations or logical-pathnames. @@ -182,6 +186,10 @@ cl-asdf (2:3.0-1) unstable; urgency=low or if your build system uses symlinks to content-addressed storage in which case TRUENAME just does the wrong thing. + * PERFORMANCE of ASDF3 is somewhat slower (about 70%) than ASDF2 + when *RESOLVE-SYMLINKS* is true, and slightly faster when it is false; + but underneath ASDF3 does much more work than ASDF2. + * VERSION strings can now be specified as having to be fetched from a file using a (:read-file-form <path>) specification, that can use an optional :at keyword argument to specify @@ -204,12 +212,23 @@ cl-asdf (2:3.0-1) unstable; urgency=low hot upgrade of software where some packages have changed. It also provides new forms :MIX and :REEXPORT which can be quite practical. - * ASDF2.27 was added to the *features* so you can detect the presence of - this massively updated ASDF and its new features with #+asdf2.27. + * ASDF-USER is now the shared package in which all .asd files are loaded. + There will be no more temporary packages created + around the loading of each .asd file. This shouldn't change much for users: + you should probably still define your own private package whenever you + define new classes, functions, or variables, to avoid namespace conflict; + except now, when you don't, you can still access your defined symbols + after the file is loaded. + ASDF is not the right place to fix Common Lisp namespace issues, and + these temporary packages were never a successful fix anyway. + + * ASDF3 was added to the *features* so you can detect the presence of + this massively updated ASDF and its new features with #+asdf3. This is *not* ASDF3, for we painfully maintained backwards compatibility, though it may have been temporarily broken during development. - * Documentation received some updates. + * Documentation received some updates, though by no means comparable + to the complete rewrite of the code base. * Tests were updated, notably including support for bundles, encodings, run-program, and more. They were successfully run on @@ -228,7 +247,7 @@ cl-asdf (2:3.0-1) unstable; urgency=low minus a few misdesigned things from ASDF1 that you ought not to have been using, and for which there are non-broken replacements. ASDF-UTILS was distributed separately from ASDF; ASDF-DRIVER is available - both as part of ASDF 2.27 and later and separately. + both as part of ASDF 3 and later and separately. * POIU was updated. This extension is still distributed separately from ASDF. It is now much simplified and made correct by construction by diff --git a/header.lisp b/header.lisp index 2c77bc27c68d3fa3190898c72a22a8639ccee704..725ef3a8fc7a0be743bff9c62bbf0ddfc697ba16 100644 --- a/header.lisp +++ b/header.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- -;;; This is ASDF 2.26.158: Another System Definition Facility. +;;; This is ASDF 2.26.159: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. diff --git a/pathname.lisp b/pathname.lisp index b1f2a25ae320a1658f8caa053b97e6b51e4f7b81..d5287d420eea0b3eed2519fa76f0753ed8f0023c 100644 --- a/pathname.lisp +++ b/pathname.lisp @@ -638,16 +638,16 @@ or the original (parsed) pathname if it is false (the default)." (truename* (subpathname (ensure-directory-pathname p) "."))))))) #+clisp - (let ((fs (find-symbol* '#:file-stat :posix nil)) - (pp (find-symbol* '#:probe-pathname :ext nil)) - (resolve (if pp - `(ignore-errors (,pp p)) - '(or (truename* p) - (truename* (ensure-directory-pathname p)))))) + (let* ((fs (find-symbol* '#:file-stat :posix nil)) + (pp (find-symbol* '#:probe-pathname :ext nil)) + (resolve (if pp + `(ignore-errors (,pp p)) + '(or (truename* p) + (truename* (ignore-errors (ensure-directory-pathname p))))))) (if fs `(if truename ,resolve - (and (,fs p) p)) + (and (ignore-errors (,fs p)) p)) (probe resolve))))) (file-error () nil)))))) diff --git a/upgrade.lisp b/upgrade.lisp index 681ceb18469c0ba279fd77624de08ebc325a2cc7..c6bb0debe62f35fedf9e799dc97781c04a7deab6 100644 --- a/upgrade.lisp +++ b/upgrade.lisp @@ -35,7 +35,7 @@ ;; "2.345.6" would be a development version in the official upstream ;; "2.345.0.7" would be your seventh local modification of official release 2.345 ;; "2.345.6.7" would be your seventh local modification of development version 2.345.6 - (asdf-version "2.26.158") + (asdf-version "2.26.159") (existing-asdf (find-class (find-symbol* :component :asdf nil) nil)) (existing-version *asdf-version*) (already-there (equal asdf-version existing-version)) diff --git a/version.lisp-expr b/version.lisp-expr index 50f42de2c504e68f58ce4e38c1dbfd8dc6f45185..4b661b43dc4c288345059956fe3f69e76babe290 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1 +1 @@ -"2.26.158" +"2.26.159"