diff --git a/TODO b/TODO index d5fc898ab1837cbee092db4aa00f69f06dab1f3c..d17860e55d2099b67df0f3b89bc6a67f74b538d1 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,12 @@ * Decree that versions older than 2 years are not supported, - remove them from upgrade tests. We should already not support - anything older than 2.014.5 from Quicklisp, or so. + maybe remove them from upgrade tests + (or split upgrade tests in two test sets: short and long). + We should already not support anything older than 2.019 or so + (still used by LispWorks). Yet, we should keep supporting upgrading from what vendors provide — so push them to provide recent stuff. -* ASDF 3.2: moving toward cross-compilation. +* Moving toward cross-compilation (ASDF 3.2?) This would allow to get all or most of the benefits of XCVB (reproducibility, scalability, applicability to mobile platforms, etc.), except without the backward incompatibility of XCVB. @@ -19,70 +21,74 @@ ** Modify SBCL and other implementations so they provide UIOP independently from ASDF? -* CMUCL has bugs: -** In ASDF 2.32.13, sibling-dependencies is renamed to sideway-dependencies - in defclass component, a superclass of system, and upgrade from - 2.32 or earlier thus fails with - Error in function KERNEL:CLASS-TYPEP: Class is currently invalid: - #<KERNEL::STANDARD-CLASS ASDF/SYSTEM:SYSTEM {58398145}> - in a direct call from ASDF/FIND-SYSTEM:LOCATE-SYSTEM, - which suggests CMUCL's PCL fails to finalize classes properly. -** Non-default optimize settings may or may not subtly break PCL. - For the longest time (from 2.26.136 to 3.1.0.42), ASDF had: - (declaim (optimize (speed 1) (safety 3) (debug 3))) - This form may or may not work around that breakage in some cases: - (setf c::top-level-lambda-max 0) -** At some point there was massive breakage due to uninitialized slots - as revealed in 3.1.0.37 with - make t l=cmucl t=test-encodings.script - which was a different PCL bug from the above (without same workaround) - but possibly also triggered by the non-standard declaim. - -* XCL has bad bugs: - make-pathname doesn't handle :type nil properly and - has massive lossage in logical-pathname support. - If using block () and return in search-for-system-definition - instead of return-from, XCL mistakenly has the return jump - to the end of the try function or something. - It also takes a long time for errors to propagate into a debugging REPL — - Maybe O(n^3) behavior or worse in walking the C++ stack? - The backtrace frames may contains unprintable objects. - make-pathname fails to copy the version from the defaults. - (make-pathname :host "ASDFTEST" :directory '(:absolute "system2" "module4") - :name nil :type nil) fails to handle the logical-pathname-ness of ASDFTEST. - -* GCL is almost working again; but implementation bugs remain. - See November 2013 discussion on gcl-devel. - * Another GCL compiler bug: - when I changed the definition of getcwd from - (let ((*default-pathname-defaults* #p"")) (truename #p"")) to - (let ((*default-pathname-defaults* *nil-pathname*)) (truename *nil-pathname*)) - to guard against e.g. a logical-pathname context while loading asdf - and parsing #p"", calls to getcwd result in a segfault. - * An another bug: gcl refuses dynamic-extent declaration on functions. - uiop/stream.lisp: #-gcl (declare (dynamic-extent ,@(when - before `(#',beforef)) ,@(when after `(#',afterf)))) - * (typep p 'logical-pathname) should be T if p has a logical-pathname host. - * apropos is case-sensitive and returns a same symbol many times - * compile-file fails to return proper secondary values in case of non-style WARNING. - * (pathname-directory #p"foo/") is incorrectly ("foo") instead of (:RELATIVE "foo") - * Missing: chdir, combine-fasls, and plenty more UIOP functions. - * Do whatever it takes to pass the asdf tests, add the above? - * Have (require "asdf") and (require "ASDF") both work. - * Trying to uiop:slurp-stream-forms from a stream with #+(or) :foo - (or read-file-forms from an file with same) results in an error, - rather than nil. This is probably a bug in #+ processing. - Unhappily, debian creates such a file in - /etc/common-lisp/asdf-output-translations.conf.d/01-common-lisp-controller.conf - * Tests that try to catch an error fail (but catching a warning succeeds), - which suggests brokenness in handler-bind and/or error. - -* Some out-of-line configuration mechanism for various options? - i.e. let configuration files override some variables around compilation of some systems. +* Implementation bugs +** CMUCL has bugs: +*** In ASDF 2.32.13, sibling-dependencies is renamed to sideway-dependencies + in defclass component, a superclass of system, and upgrade from + 2.32 or earlier thus fails with + Error in function KERNEL:CLASS-TYPEP: Class is currently invalid: + #<KERNEL::STANDARD-CLASS ASDF/SYSTEM:SYSTEM {58398145}> + in a direct call from ASDF/FIND-SYSTEM:LOCATE-SYSTEM, + which suggests CMUCL's PCL fails to finalize classes properly. +*** Non-default optimize settings may or may not subtly break PCL. + For the longest time (from 2.26.136 to 3.1.0.42), ASDF had: + (declaim (optimize (speed 1) (safety 3) (debug 3))) + This form may or may not work around that breakage in some cases: + (setf c::top-level-lambda-max 0) +*** At some point there was massive breakage due to uninitialized slots + as revealed in 3.1.0.37 with + make t l=cmucl t=test-encodings.script + which was a different PCL bug from the above (without same workaround) + but possibly also triggered by the non-standard declaim. + +** XCL has bad bugs: + make-pathname doesn't handle :type nil properly and + has massive lossage in logical-pathname support. + If using block () and return in search-for-system-definition + instead of return-from, XCL mistakenly has the return jump + to the end of the try function or something. + It also takes a long time for errors to propagate into a debugging REPL — + Maybe O(n^3) behavior or worse in walking the C++ stack? + The backtrace frames may contains unprintable objects. + make-pathname fails to copy the version from the defaults. + (make-pathname :host "ASDFTEST" :directory '(:absolute "system2" "module4") + :name nil :type nil) fails to handle the logical-pathname-ness of ASDFTEST. + +** GCL is almost working again; but implementation bugs remain. + See November 2013 discussion on gcl-devel. + * Another GCL compiler bug: + when I changed the definition of getcwd from + (let ((*default-pathname-defaults* #p"")) (truename #p"")) to + (let ((*default-pathname-defaults* *nil-pathname*)) (truename *nil-pathname*)) + to guard against e.g. a logical-pathname context while loading asdf + and parsing #p"", calls to getcwd result in a segfault. + * An another bug: gcl refuses dynamic-extent declaration on functions. + uiop/stream.lisp: #-gcl (declare (dynamic-extent ,@(when + before `(#',beforef)) ,@(when after `(#',afterf)))) + * (typep p 'logical-pathname) should be T if p has a logical-pathname host. + * apropos is case-sensitive and returns a same symbol many times + * compile-file fails to return proper secondary values in case of non-style WARNING. + * (pathname-directory #p"foo/") is incorrectly ("foo") instead of (:RELATIVE "foo") + * Missing: chdir, combine-fasls, and plenty more UIOP functions. + * Do whatever it takes to pass the asdf tests, add the above? + * Have (require "asdf") and (require "ASDF") both work. + * Trying to uiop:slurp-stream-forms from a stream with #+(or) :foo + (or read-file-forms from an file with same) results in an error, + rather than nil. This is probably a bug in #+ processing. + Unhappily, debian creates such a file in + /etc/common-lisp/asdf-output-translations.conf.d/01-common-lisp-controller.conf + * Tests that try to catch an error fail (but catching a warning succeeds), + which suggests brokenness in handler-bind and/or error. + +** Find out why ABCL fails the timestamp propagation test. * Find an easier way to bind variables around compilation and loading of files -* Find out why ABCL fails the timestamp propagation test. +* Design & Implement some out-of-line configuration mechanism for various options? + i.e. let configuration files override some variables around some actions. + * Could be used to override new backward-incompatible defaults + (e.g. for operation propagation, deferred warnings, etc.) + * Use the above variable binding mechanism. * Fix bugs on http://bugs.launchpad.net/asdf/+bugs @@ -105,13 +111,6 @@ * have a single test .asd that tests as many features as possible, use it for upgrade test. -* implement deferred warnings support on lispworks - -* work with cl-test-grid to eliminate deferred warnings from quicklisp libraries - -* fix upgrade on clisp, cmucl, abcl (if still broken) -** Extract minimal test case, build a battery of automated tests - * Bug found by fe[nl]ix: infinite loop if the definitions in an asd file are not in strict defsystem-depends-on dependency order. ** At least document the issue. @@ -245,3 +244,10 @@ It looks like SWANK can be fixed soon, though, so we'll see. * See message from 2014-01-27 05:26:44 GMT for stuff to document. http://thread.gmane.org/gmane.lisp.asdf.devel/3675/focus=3695 + +* deferred-warnings support probably needs to be redone better. + * implement deferred warnings support on lispworks + * work with cl-test-grid to eliminate deferred warnings from quicklisp libraries + * https://www.mail-archive.com/asdf-devel@common-lisp.net/msg03608.html + * czak@google.com rewrote part of deferred warnings support. + Ask him for the code he implemented at Google. diff --git a/debian/changelog b/debian/changelog index aae214753d4923068a4e0e712dd5785464533b6a..83c3d133f70e6776752920a94512989a461c963f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,12 +3,18 @@ cl-asdf (2:3.1.1-1) unstable; urgency=low New release: * asdf-package-system combines the one-file, one-package, one-system paradigm of quick-build and faslpath with the portability and robustness of ASDF 3. + * non-propagating-operation replaces OPERATION for operations as a base class + to inherit from for operations that do not propagate, + whereas for backward compatibility with ASDF 1 and 2, + subclasses of OPERATION implicitly propagate DOWNWARD and SIDEWAY. + Failure to explicitly inherit from own of the explicitly propagating + or non-propagating classes will result in a WARNING for now. * Portability: much improved support for the latest GCL 2.8. * Robustness: Fixes for ABCL, CLISP, ECL, LispWorks, SBCL/Windows, XCL. Test improvements. Added missing dependencies in asdf.asd(!). - Fixes to version-satisfies (thanks to stassats) and to the file-stamp cache. + Fixes to version-satisfies (thanks to stassats), to the file-stamp cache. Fixes regression from 3.0.2.12 whereby ASDF failed to avoid downgrading. - Some cleanups in the operation class definitions. + Many cleanups. Many explanatory updates to source code comments. * run-program tweaked again on Windows; punting on trying to ensure no final space is ever echo'ed by CMD.EXE " ". * provide both "asdf" and "ASDF" to play nicer with various Lisps. @@ -16,13 +22,14 @@ cl-asdf (2:3.1.1-1) unstable; urgency=low will be less disruptive of ASDF uses and enhancements in the current image: previously loaded systems will not be cleared anymore, variables defined with defparameter* will not be reset. + Punting on upgrades from ASDF 1 for more robust behavior. * UIOP much improved so as to be used with Google's build system: with-temporary-file, dump-image / restore-image, ensure-pathname, compile-file*, with-saved-deferred-warnings. * ASDF3.1 feature pushed, to signal the slew of significant improvements - since initial ASDF 3.0 pre-release (i.e. version 2.27). + in a year since initial ASDF 3.0 pre-release (i.e. version 2.27). - -- Francois-Rene Rideau <fare@tunes.org> Tue, 14 Jan 2014 00:28:00 -0500 + -- Francois-Rene Rideau <fare@tunes.org> Thu, 30 Jan 2014 22:31:46 -0500 cl-asdf (2:3.0.3-1) unstable; urgency=low