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

Helmut Eller heller at common-lisp.net
Wed Jun 1 12:22:46 UTC 2005


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

Modified Files:
	swank-sbcl.lisp 
Log Message:
Distinguish macro and special operators from functions.
Date: Wed Jun  1 14:22:46 2005
Author: heller

Index: slime/swank-sbcl.lisp
diff -u slime/swank-sbcl.lisp:1.132 slime/swank-sbcl.lisp:1.133
--- slime/swank-sbcl.lisp:1.132	Wed Apr 20 14:43:49 2005
+++ slime/swank-sbcl.lisp	Wed Jun  1 14:22:45 2005
@@ -594,20 +594,25 @@
   "Return a plist describing SYMBOL.
 Return NIL if the symbol is unbound."
   (let ((result '()))
-    (labels ((doc (kind)
-	       (or (documentation symbol kind) :not-documented))
-	     (maybe-push (property value)
-	       (when value
-		 (setf result (list* property value result)))))
+    (flet ((doc (kind)
+             (or (documentation symbol kind) :not-documented))
+           (maybe-push (property value)
+             (when value
+               (setf result (list* property value result)))))
       (maybe-push
        :variable (multiple-value-bind (kind recorded-p)
 		     (sb-int:info :variable :kind symbol)
 		   (declare (ignore kind))
 		   (if (or (boundp symbol) recorded-p)
 		       (doc 'variable))))
-      (maybe-push
-       :function (if (fboundp symbol) 
-		     (doc 'function)))
+      (when (fboundp symbol)
+	(maybe-push
+	 (cond ((macro-function symbol)     :macro)
+	       ((special-operator-p symbol) :special-operator)
+	       ((typep (fdefinition symbol) 'generic-function)
+                :generic-function)
+	       (t :function))
+	 (doc 'function)))
       (maybe-push
        :setf (if (or (sb-int:info :setf :inverse symbol)
 		     (sb-int:info :setf :expander symbol))
@@ -1130,8 +1135,10 @@
 (defimplementation quit-lisp ()
   #+sb-thread
   (dolist (thread (remove (current-thread) (all-threads)))
-    (ignore-errors (sb-thread:terminate-thread thread)))
+    (ignore-errors (sb-thread:interrupt-thread 
+                    thread (lambda () (sb-ext:quit :recklessly-p t)))))
   (sb-ext:quit))
+
 
 
 ;;Trace implementations




More information about the slime-cvs mailing list