[asdf-devel] Issue in GETUID (MCL, again) and others

Chun Tian (binghe) binghe.lisp at gmail.com
Sat Jun 11 17:44:44 UTC 2011

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"

The warning "Undefined function CCL::GETUID, in ASDF::GET-UID" was caused by #+ccl in following piece of code:

  #+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 () , at body)))


Chun Tian (binghe)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: asdf2-mcl-get-uid.diff
Type: application/octet-stream
Size: 919 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20110612/c686af5a/attachment.obj>

More information about the asdf-devel mailing list