[slime-cvs] CVS update: slime/swank-cmucl.lisp
Helmut Eller
heller at common-lisp.net
Wed Apr 21 19:46:41 UTC 2004
Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv13024
Modified Files:
swank-cmucl.lisp
Log Message:
(arglist): Return a list instead of the string.
Date: Wed Apr 21 15:46:41 2004
Author: heller
Index: slime/swank-cmucl.lisp
diff -u slime/swank-cmucl.lisp:1.96 slime/swank-cmucl.lisp:1.97
--- slime/swank-cmucl.lisp:1.96 Tue Apr 20 18:29:43 2004
+++ slime/swank-cmucl.lisp Wed Apr 21 15:46:40 2004
@@ -961,6 +961,18 @@
(values (debug-function-arglist (di::function-debug-function fn))
(kernel:%function-arglist (kernel:%function-self fn)))))
+(defun read-arglist (fn)
+ "Parse the arglist-string of the function object FN."
+ (let ((string (kernel:%function-arglist
+ (kernel:%function-self fn)))
+ (package (find-package
+ (c::compiled-debug-info-package
+ (kernel:%code-debug-info
+ (vm::find-code-object fn))))))
+ (with-standard-io-syntax
+ (let ((*package* (or package *package*)))
+ (read-from-string string)))))
+
(defimplementation arglist (symbol)
(let* ((fun (or (macro-function symbol)
(symbol-function symbol)))
@@ -969,7 +981,8 @@
(eval:interpreted-function-arglist fun))
((pcl::generic-function-p fun)
(pcl:generic-function-lambda-list fun))
- ((kernel:%function-arglist (kernel:%function-self fun)))
+ ((kernel:%function-arglist (kernel:%function-self fun))
+ (read-arglist fun))
;; this should work both for
;; compiled-debug-function and for
;; interpreted-debug-function
More information about the slime-cvs
mailing list