[slime-cvs] CVS update: slime/swank-cmucl.lisp

Helmut Eller heller at common-lisp.net
Sun Jan 18 07:10:22 UTC 2004


Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv25989

Modified Files:
	swank-cmucl.lisp 
Log Message:
(arglist-string): Use pcl:generic-function-lambda-list for generic
functions.  Handle closures.  Print arglist in lower case.

Date: Sun Jan 18 02:10:21 2004
Author: heller

Index: slime/swank-cmucl.lisp
diff -u slime/swank-cmucl.lisp:1.53 slime/swank-cmucl.lisp:1.54
--- slime/swank-cmucl.lisp:1.53	Sat Jan 17 05:23:19 2004
+++ slime/swank-cmucl.lisp	Sun Jan 18 02:10:21 2004
@@ -4,9 +4,6 @@
 
 (in-package :swank)
 
-(defun without-interrupts* (body)
-  (sys:without-interrupts (funcall body)))
-
 
 ;;;; TCP server.
 
@@ -47,10 +44,6 @@
          (input  (make-slime-input-stream input-fn output)))
     (values input output)))
 
-(defmethod spawn (fn &key (name "Anonymous"))
-  (mp:make-process fn :name name))
-
-;;;
 ;;;;; Socket helpers.
 
 (defun socket-fd (socket)
@@ -78,6 +71,15 @@
       (fcntl fd unix:F-SETFL (logior flags unix:O_NONBLOCK)))))
 
 
+;;;; Unix signals
+
+(defmethod call-without-interrupts (fn)
+  (sys:without-interrupts (funcall fn)))
+
+(defmethod getpid ()
+  (unix:unix-getpid))
+
+
 ;;;; Stream handling
 
 (defstruct (slime-output-stream
@@ -767,10 +769,9 @@
   "Return a string describing the argument list for FNAME.
 The result has the format \"(...)\"."
   (declare (type string fname))
-  (multiple-value-bind (function condition)
-      (ignore-errors (values (find-symbol-designator fname *buffer-package*)))
-    (when condition
-      (return-from arglist-string (format nil "(-- ~A)" condition)))
+  (multiple-value-bind (function package) (find-symbol-designator fname)
+    (unless package
+      (return-from arglist-string (format nil "(-- Unkown symbol: ~A)" fname)))
     (let ((arglist
 	   (if (not (or (fboundp function)
 			(functionp function)))
@@ -778,11 +779,12 @@
 	       (let* ((fun (or (macro-function function)
                                (symbol-function function)))
 		      (df (di::function-debug-function fun))
-		      (arglist (kernel:%function-arglist fun)))
+		      (arglist (kernel:%function-arglist 
+                                (kernel:%function-self fun))))
 		 (cond ((eval:interpreted-function-p fun)
 			(eval:interpreted-function-arglist fun))
 		       ((pcl::generic-function-p fun)
-                        (pcl::arg-info-lambda-list (pcl::gf-arg-info fun)))
+                        (pcl:generic-function-lambda-list fun))
 		       (arglist arglist)
 		       ;; this should work both for
 		       ;; compiled-debug-function and for
@@ -791,7 +793,7 @@
 		       (t "(<arglist-unavailable>)"))))))
       (etypecase arglist
         (string arglist)
-        (cons (to-string arglist))
+        (cons (let ((*print-case* :downcase)) (princ-to-string arglist)))
         (null "()")))))
 
 
@@ -898,9 +900,6 @@
   (safe-definition-finding
    (source-location-from-code-location code-location)))
 
-(defslimefun getpid ()
-  (unix:unix-getpid))
-
 
 ;;;; Debugging
 
@@ -1178,6 +1177,9 @@
     ;; Threads magic: this never returns! But top-level becomes
     ;; available again.
     (mp::startup-idle-and-top-level-loops))
+
+  (defmethod spawn (fn &key (name "Anonymous"))
+    (mp:make-process fn :name name))
 
   (defmethod thread-id ()
     (mp:without-scheduling





More information about the slime-cvs mailing list