diff --git a/TODO b/TODO index 1a907bac21dd19a24842258abe65412d4ad24cf1..174a06a805bd5578b276c583de5307ce93682115 100644 --- a/TODO +++ b/TODO @@ -157,6 +157,10 @@ *** `#5(1 ,@`(2 3)))` returns #(1 2 3), rather than #(1 2 3 2 3 2 3 2 3) or even better #(1 2 3 3 3). *** (DIRECTORY #p"*.*") fails to match files with pathname type NIL. +*** Require is useless, because there is no system search path, + and so you can't put ASDF (or anything) there. +*** Low-level compiler bug: + ./cl-launch.sh -B redo_test sh gcl exec noupdate noinc file system noinit ** ABCL has a few bugs. *** ABCL fails the timestamp propagation test. @@ -235,6 +239,10 @@ * operation cleanup? ** Kill backward-compat functions after all clients have moved on. ** Kill original-initargs -- BEWARE, it currently has clients! +*** current ECL users used to depend on it for bundles, and may or may + not be satisfied with how it's not propagated anymore. +*** SLIME uses it (!) +*** weblocks uses it (!) ** To allow semantically distinct operations of the same class: You'd need to have a protocol to canonicalize them in the *OPERATIONS* memoization table, not by class name, diff --git a/footer.lisp b/footer.lisp index 692415b9fe1955c269371fc1dae0bcee7f46dfac..f824748c714fbc0cfa4f1a6d792f24ab352fa94b 100644 --- a/footer.lisp +++ b/footer.lisp @@ -7,9 +7,8 @@ (in-package :asdf/footer) ;;;; Hook ASDF into the implementation's REQUIRE and other entry points. - +#+(or abcl clisp clozure cmu ecl mkcl sbcl) (with-upgradability () - #+(or abcl clisp clozure cmu ecl mkcl sbcl) (if-let (x (and #+clisp (find-symbol* '#:*module-provider-functions* :custom nil))) (eval `(pushnew 'module-provide-asdf #+abcl sys::*module-provider-functions* @@ -37,7 +36,7 @@ (and (first l) (register-pre-built-system (coerce-name name))) (values-list l)))))))) -#+cmu +#+cmu ;; Hook into the CMUCL herald. (with-upgradability () (defun herald-asdf (stream) (format stream " ASDF ~A" (asdf-version))) @@ -52,7 +51,8 @@ (dolist (f '(:asdf :asdf2 :asdf3 :asdf3.1 :asdf-package-system)) (pushnew f *features*)) - (provide "asdf") (provide "ASDF") ;; do it both ways to satisfy more people. + ;; Provide both lowercase and uppercase, to satisfy more people, especially LispWorks users. + (provide "asdf") (provide "ASDF") (cleanup-upgraded-asdf)) diff --git a/uiop/image.lisp b/uiop/image.lisp index be9e2055e43bb43553558d473b4145095ba2a2fe..27ad191547acb85572b3c363c33bb865abcb1076 100644 --- a/uiop/image.lisp +++ b/uiop/image.lisp @@ -260,10 +260,15 @@ if we are not called from a directly executable image." (defun argv0 () "On supported implementations (most that matter), return a string that for the name with which the program was invoked, i.e. argv[0] in C. On other implementations, return NIL." - ;; NB: not currently available on ABCL, Corman, Genera, MCL, MKCL - (or #+(or allegro clisp clozure cmu gcl lispworks sbcl scl xcl) - (first (raw-command-line-arguments)) - #+ecl (si:argv 0))) + (cond + ((eq *image-dumped-p* :executable) ; yes, this ARGV0 is our argv0 ! + ;; NB: not currently available on ABCL, Corman, Genera, MCL, MKCL + (or #+(or allegro clisp clozure cmu gcl lispworks sbcl scl xcl) + (first (raw-command-line-arguments)) + #+ecl (si:argv 0))) + (t ;; argv[0] is the name of the interpreter. + ;; The wrapper script can export __CL_ARGV0. cl-launch does as of 4.0.1.8. + (getenvp "__CL_ARGV0")))) (defun setup-command-line-arguments () (setf *command-line-arguments* (command-line-arguments)))