Hi, Faré
Today I compile latest asdf.lisp in MCL and see two warnings:
? (compile-file #P"Macintosh HD:Users:binghe:Lisp:packages:asdf:asdf.lisp")
;Compiler warnings for "Macintosh HD:users:binghe:Lisp:packages:asdf:asdf.lisp" :
; :LAMBDA compiler warning with args (&OPTIONAL), in WITH-SYSTEM-DEFINITIONS.
;Compiler warnings for "Macintosh HD:users:binghe:Lisp:packages:asdf:asdf.lisp" :
; Undefined function CCL::GETUID, in ASDF::GET-UID.
#P"Macintosh HD:users:binghe:Lisp:packages:asdf:asdf.cfsl"
T
T
The warning "Undefined function CCL::GETUID, in ASDF::GET-UID" was caused by #+ccl in following piece of code:
#+asdf-unix
(progn
#+ecl #.(cl:and (cl:< ext:+ecl-version-number+ 100601)
'(ffi:clines "#include <sys/types.h>" "#include <unistd.h>"))
(defun* get-uid ()
#+allegro (excl.osi:getuid)
#+ccl (ccl::getuid)
...
Both Clozure CL and MCL contains the feature :CCL, so the form (ccl::getuid) was wrongly exposed to MCL. I think #+clozure (or legacy #+openmcl) should be used instead, just like other places in asdf.lisp. (if run-shell-command works on MCL, the function GET-UID should also work in MCL)
A trivial patch is in attach (there's another #-ccl, don't forget it)
P. S. For the first warning, why macro with-system-definitions have a standalone &optional in its parameter list?
(defmacro with-system-definitions ((&optional) &body body)
`(call-with-system-definitions #'(lambda () ,@body)))
Regards,
Chun Tian (binghe)