Commit 6a35cc5a authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

uiop/image: better working argv0, in conjunction with cl-launch

asdf/footer: non-functional tweak.
TODO: GCL bugs, original-initargs clients.
parent 425bedf0
......@@ -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:
./ -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,
......@@ -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 ;; 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")
......@@ -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."
((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
(getenvp "__CL_ARGV0"))))
(defun setup-command-line-arguments ()
(setf *command-line-arguments* (command-line-arguments)))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment