[slime-cvs] CVS update: slime/swank-cmucl.lisp
Helmut Eller
heller at common-lisp.net
Sat Mar 27 21:20:22 UTC 2004
Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv29343
Modified Files:
swank-cmucl.lisp
Log Message:
(debug-function-arglist): Reconstruct the arglist from the the
debug-arguments. (Not complete yet.)
(arglist): Use it.
Date: Sat Mar 27 16:20:22 2004
Author: heller
Index: slime/swank-cmucl.lisp
diff -u slime/swank-cmucl.lisp:1.90 slime/swank-cmucl.lisp:1.91
--- slime/swank-cmucl.lisp:1.90 Fri Mar 26 04:21:05 2004
+++ slime/swank-cmucl.lisp Sat Mar 27 16:20:22 2004
@@ -62,7 +62,7 @@
(ext:close-socket (socket-fd socket)))
(defimplementation accept-connection (socket)
- #+MP (mp:process-wait-until-fd-usable socket :input)
+ #+mp (mp:process-wait-until-fd-usable socket :input)
(make-socket-io-stream (ext:accept-tcp-connection socket)))
(defvar *sigio-handlers* '()
@@ -840,6 +840,21 @@
(:alien-enum
(describe (ext:info :alien-type :enum symbol)))))
+(defun debug-function-arglist (dfun)
+ (let ((args (di::debug-function-lambda-list dfun))
+ (result '())
+ (key nil))
+ (dolist (arg args)
+ (etypecase arg
+ (di::debug-variable
+ (push (di::debug-variable-name arg) result))
+ (cons
+ (ecase (car arg)
+ ((:keyword (push (second arg) result))
+ (:optional (push (di::debug-variable-name (second arg)) result))
+ ))))
+ (nreverse result))))
+
(defimplementation arglist (symbol)
(let* ((fun (or (macro-function symbol)
(symbol-function symbol)))
@@ -854,7 +869,7 @@
;; interpreted-debug-function
(t (let ((df (di::function-debug-function fun)))
(if df
- (di::debug-function-lambda-list df)
+ (debug-function-arglist df)
"(<arglist-unavailable>)"))))))
(check-type arglist (or list string))
arglist))
@@ -1301,7 +1316,7 @@
;;;; Multiprocessing
-#+MP
+#+mp
(progn
(defimplementation startup-multiprocessing ()
;; Threads magic: this never returns! But top-level becomes
More information about the slime-cvs
mailing list