[slime-devel] cmucl arglist

Gabor Melis mega at hotpop.com
Fri Apr 23 21:57:58 UTC 2004


(defun foo (x y)
  (declare (optimize (debug 0)))
  (+ x y))

In READ-ARGLIST DI::DEBUG-FUNCTION-LAMBDA-LIST signals 
LAMBDA-LIST-UNAVAILABLE. Naive fix below.

Cheers, Gabor Melis

Index: swank-cmucl.lisp
===================================================================
RCS file: /project/slime/cvsroot/slime/swank-cmucl.lisp,v
retrieving revision 1.97
diff -u -r1.97 swank-cmucl.lisp
--- swank-cmucl.lisp    21 Apr 2004 19:46:40 -0000      1.97
+++ swank-cmucl.lisp    23 Apr 2004 21:40:01 -0000
@@ -986,10 +986,13 @@
                 ;; this should work both for
                 ;; compiled-debug-function and for
                 ;; interpreted-debug-function
-                (t (let ((df (di::function-debug-function fun)))
-                     (if df
-                         (debug-function-arglist df)
-                         "(<arglist-unavailable>)"))))))
+                (t (let ((df (di::function-debug-function fun))
+                         (unavailable "(<arglist-unavailable>)"))
+                     (if df
+                         (handler-case (debug-function-arglist df)
+                           (di::lambda-list-unavailable ()
+                             unavailable))
+                         unavailable))))))
     (check-type arglist (or list string))
     arglist))





More information about the slime-devel mailing list