* 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. Yet, we should keep supporting upgrading from what vendors provide — so push them to provide recent stuff. * ASDF 3.2: moving toward cross-compilation. 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. ** Need to further split asdf:perform in two parts: A part that runs on the host and specifies (as SEXP or string to read) a form that must be evaluated on the target machine, not the host. A trivial that runs on the target and doesn't require the network of objects related to the ASDF plan to be present, or even ASDF itself, for the matter (though UIOP, yes, for sanity). ** Audit all the current specializers of perform, and offer them a new way; they can keep the perform method to run on older versions of ASDF. ** Modify SBCL and other implementations so they provide UIOP independently from ASDF? * 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 * Some out-of-line configuration mechanism for various options? i.e. let configuration files override some variables around compilation of some systems. * Find an easier way to bind variables around compilation and loading of files * Find out why ABCL fails the timestamp propagation test. * Fix bugs on http://bugs.launchpad.net/asdf/+bugs * fix directory-files to not return directories on CCL, etc. Add tests. * use cl-test-grid to see if asdf-user can :use most (all?) of UIOP. Unhappily, on SBCL, sb-grovel uses asdf and sb-ext, which causes a clash with run-program. Or has this been changed long enough ago? Can it be special-cased? * have a mode to explain WHY a component needs to be recompiled. * have a better defsystem form verifier - see lp#1007335 * have a function verify-strict-asd that can verify a asd is pure lp#541562 Then if it passes, use load-strict-asd. If not, optionally issue a warning. Start migrating people toward that. * have with-input-file use the encodings mechanism? * 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. ** Real solution: defer parsing and evaluation of defsystem forms. * Learn to use cl-grid-test, to make sure ASDF changes don't break stuff, and that breakage gets fixed quickly. * Include some ABL test for stassats's (now obsolete?) thing: (asdf:enable-asdf-binary-locations-compatibility :centralize-lisp-binaries t :default-toplevel-directory *fasl-dir*) * Make load-op a generic operation that selects the proper strategy for each system, module or file, according to component properties and user-configuration: compile the lisp file then load the fasl (load-fasl-op on a cl-source-file), load the lisp file without compiling (load-source-op), compile all files for the system, link them and load the result (load-fasl-op on the system), compile all files for the system *and* its dependencies, link and load (monolithic-load-fasl-op), 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). * operation cleanup? ** Kill backward-compat functions after all clients have moved on. ** Kill original-initargs -- BEWARE, it currently has clients! * Get rid of component-properties ** directly use component-properties: *** yaclml.asd => misguided :features for version comparison *** amazon-ecs-20110418-git/amazon-ecs.asd => :website property *** hemlock.asd => bad implementation of latin1 encodings ** .asd use :properties *** arnesi, arnesi+ => :features, misguided for version comparison and pseudo #+features *** lkcas, thopter => :long-name *** cl-irc cliki-bot rss cl-syslog com.informatimago.clext com.informatimago.clisp com.informatimago.clmisc com.informatimago.common-lisp.arithmetic om.informatimago.common-lisp.bank com.informatimago.common-lisp.cesarum com.informatimago.common-lisp com.informatimago.common-lisp.csv com.informatimago.common-lisp.cxx com.informatimago.common-lisp.data-encoding com.informatimago.common-lisp.diagram com.informatimago.common-lisp.ed com.informatimago.common-lisp.graphviz com.informatimago.common-lisp.heap com.informatimago.common-lisp.html-base com.informatimago.common-lisp.html-generator com.informatimago.common-lisp.html-parser com.informatimago.common-lisp.http com.informatimago.common-lisp.interactive com.informatimago.common-lisp.invoice com.informatimago.common-lisp.lisp com.informatimago.common-lisp.lisp.ibcl com.informatimago.common-lisp.lisp.stepper com.informatimago.common-lisp.lisp-reader com.informatimago.common-lisp.lisp-sexp com.informatimago.common-lisp.lisp-text com.informatimago.common-lisp.parser com.informatimago.common-lisp.picture com.informatimago.common-lisp.regexp com.informatimago.common-lisp.rfc2822 com.informatimago.common-lisp.rfc3548 com.informatimago.common-lisp.telnet com.informatimago.common-lisp.unix linc com.informatimago.lispdoc com.informatimago.lua com.informatimago.cocoa-playground com.informatimago.objcl com.informatimago.rdp com.informatimago.rdp.basic com.informatimago.rdp.basic.example com.informatimago.rdp.example com.informatimago.susv3 com.informatimago.common-lisp.tools.make-depends com.informatimago.xcode spartns xlunit => (uninterned!) #:author-email #:date (#:albert #:output-dirs) (#:albert #:formats) (#:albert #:docbook #:template) (#:albert #:docbook #:bgcolor) (#:albert #:docbook #:textcolor) (#:albert #:docbook #:dtd) *** portableaserve => ("system" "author" "email") ("albert" "presentation" "output-dir") ("albert" "presentation" "formats") ("albert" "docbook" "dtd") ("albert" "docbook" "template") *** com.clearly-useful.generic-collection-interface => :com.clearly-useful *** metatilities => :ait-timeout :system-applicable-p *** ucw ucw-core => version * ASDF4: search for this tag, rename things (incompatibly, thus) and cleanup code.