[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