[slime-devel] [PATCH] arglist for Clozure
Terje Norderhaug
terje at in-progress.com
Mon Jun 29 22:19:53 UTC 2009
When used with Clozure, the #'operator-arglist slimefun incorrectly
does not return NIL for unbound functions:
(fboundp 'cl::bogus)
=> NIL
(swank:operator-arglist "BOGUS" "COMMON-LISP")
=> "(BOGUS )"
The interface function #'arglist (called by #'swank:operator-arglist)
is documented to return "the :not-available keyword if the arglist
cannot be determined". However:
(swank::arglist 'cl::bogus)
=> NIL
The fix is to make the arglist function of the Clozure backend
return :not-available when there is no binding:
diff -u slime-2009-06-29/swank-openmcl.lisp patch/swank-openmcl.lisp
--- slime-2009-06-29/swank-openmcl.lisp 2009-06-29 00:15:06.000000000
-0700
+++ patch/swank-openmcl.lisp 2009-06-29 15:04:51.000000000 -0700
@@ -206,7 +206,11 @@
;;; Arglist
(defimplementation arglist (fname)
- (arglist% fname))
+ (multiple-value-bind (arglist binding)
+ (arglist% fname)
+ (if binding
+ arglist
+ :not-available)))
(defmethod arglist% ((f symbol))
(ccl:arglist f))
-- Terje Norderhaug
More information about the slime-devel
mailing list