Skip to content
Snippets Groups Projects
Commit 6a35cc5a authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

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

asdf/footer: non-functional tweak.
TODO: GCL bugs, original-initargs clients.
parent 425bedf0
No related branches found
No related tags found
No related merge requests found
...@@ -157,6 +157,10 @@ ...@@ -157,6 +157,10 @@
*** `#5(1 ,@`(2 3)))` returns #(1 2 3), *** `#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). 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. *** (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 has a few bugs.
*** ABCL fails the timestamp propagation test. *** ABCL fails the timestamp propagation test.
...@@ -235,6 +239,10 @@ ...@@ -235,6 +239,10 @@
* operation cleanup? * operation cleanup?
** Kill backward-compat functions after all clients have moved on. ** Kill backward-compat functions after all clients have moved on.
** Kill original-initargs -- BEWARE, it currently has clients! ** 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: ** To allow semantically distinct operations of the same class:
You'd need to have a protocol to canonicalize them You'd need to have a protocol to canonicalize them
in the *OPERATIONS* memoization table, not by class name, in the *OPERATIONS* memoization table, not by class name,
......
...@@ -7,9 +7,8 @@ ...@@ -7,9 +7,8 @@
(in-package :asdf/footer) (in-package :asdf/footer)
;;;; Hook ASDF into the implementation's REQUIRE and other entry points. ;;;; Hook ASDF into the implementation's REQUIRE and other entry points.
#+(or abcl clisp clozure cmu ecl mkcl sbcl)
(with-upgradability () (with-upgradability ()
#+(or abcl clisp clozure cmu ecl mkcl sbcl)
(if-let (x (and #+clisp (find-symbol* '#:*module-provider-functions* :custom nil))) (if-let (x (and #+clisp (find-symbol* '#:*module-provider-functions* :custom nil)))
(eval `(pushnew 'module-provide-asdf (eval `(pushnew 'module-provide-asdf
#+abcl sys::*module-provider-functions* #+abcl sys::*module-provider-functions*
...@@ -37,7 +36,7 @@ ...@@ -37,7 +36,7 @@
(and (first l) (register-pre-built-system (coerce-name name))) (and (first l) (register-pre-built-system (coerce-name name)))
(values-list l)))))))) (values-list l))))))))
#+cmu #+cmu ;; Hook into the CMUCL herald.
(with-upgradability () (with-upgradability ()
(defun herald-asdf (stream) (defun herald-asdf (stream)
(format stream " ASDF ~A" (asdf-version))) (format stream " ASDF ~A" (asdf-version)))
...@@ -52,7 +51,8 @@ ...@@ -52,7 +51,8 @@
(dolist (f '(:asdf :asdf2 :asdf3 :asdf3.1 :asdf-package-system)) (pushnew f *features*)) (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)) (cleanup-upgraded-asdf))
......
...@@ -260,10 +260,15 @@ if we are not called from a directly executable image." ...@@ -260,10 +260,15 @@ if we are not called from a directly executable image."
(defun argv0 () (defun argv0 ()
"On supported implementations (most that matter), return a string that for the name with which "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." 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 (cond
(or #+(or allegro clisp clozure cmu gcl lispworks sbcl scl xcl) ((eq *image-dumped-p* :executable) ; yes, this ARGV0 is our argv0 !
(first (raw-command-line-arguments)) ;; NB: not currently available on ABCL, Corman, Genera, MCL, MKCL
#+ecl (si:argv 0))) (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 () (defun setup-command-line-arguments ()
(setf *command-line-arguments* (command-line-arguments))) (setf *command-line-arguments* (command-line-arguments)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment