[slime-cvs] CVS slime

CVS User sboukarev sboukarev at common-lisp.net
Sat Feb 2 10:11:16 UTC 2013


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

Modified Files:
	ChangeLog swank-allegro.lisp swank-backend.lisp swank-ccl.lisp 
	swank-clisp.lisp swank-ecl.lisp swank-lispworks.lisp 
	swank-sbcl.lisp 
Log Message:
* swank-backend.lisp (type-specifier-p): New.
Implement it for ACL, ECL, CCL, Clisp, SBCL, LW.

* contrib/swank-util.lisp (symbol-classification-string): Use
type-specifier-p.


--- /project/slime/cvsroot/slime/ChangeLog	2013/01/12 12:32:20	1.2389
+++ /project/slime/cvsroot/slime/ChangeLog	2013/02/02 10:11:16	1.2390
@@ -1,3 +1,8 @@
+2013-02-02  Stas Boukarev  <stassats at gmail.com>
+
+	* swank-backend.lisp (type-specifier-p): New.
+	Implement it for ACL, ECL, CCL, Clisp, SBCL, LW.
+
 2013-01-12  Stas Boukarev  <stassats at gmail.com>
 
 	* swank-backend.lisp: Add a couple of ignore declarations.
--- /project/slime/cvsroot/slime/swank-allegro.lisp	2012/12/03 03:35:09	1.157
+++ /project/slime/cvsroot/slime/swank-allegro.lisp	2013/02/02 10:11:16	1.158
@@ -140,6 +140,11 @@
     (:class
      (describe (find-class symbol)))))
 
+(defimplementation type-specifier-p (symbol)
+  (or (ignore-errors
+       (subtypep nil symbol))
+      (not (eq (type-specifier-arglist symbol) :not-available))))
+
 ;;;; Debugger
 
 (defvar *sldb-topframe*)
--- /project/slime/cvsroot/slime/swank-backend.lisp	2013/01/12 12:32:21	1.223
+++ /project/slime/cvsroot/slime/swank-backend.lisp	2013/02/02 10:11:16	1.224
@@ -781,6 +781,11 @@
                   :not-available))
       (t :not-available))))
 
+(definterface type-specifier-p (symbol)
+  "Determine if SYMBOL is a type-specifier."
+  (or (documentation symbol 'type)
+      (not (eq (type-specifier-arglist symbol) :not-available))))
+
 (definterface function-name (function)
   "Return the name of the function object FUNCTION.
 
--- /project/slime/cvsroot/slime/swank-ccl.lisp	2013/01/07 13:01:28	1.31
+++ /project/slime/cvsroot/slime/swank-ccl.lisp	2013/02/02 10:11:16	1.32
@@ -694,6 +694,10 @@
     (loop for i below (ccl:uvsize object) append 
           (label-value-line (princ-to-string i) (ccl:uvref object i)))))
 
+(defimplementation type-specifier-p (symbol)
+  (or (ccl:type-specifier-p symbol)
+      (not (eq (type-specifier-arglist symbol) :not-available))))
+
 ;;; Multiprocessing
 
 (defvar *known-processes* 
--- /project/slime/cvsroot/slime/swank-clisp.lisp	2012/08/04 23:48:19	1.102
+++ /project/slime/cvsroot/slime/swank-clisp.lisp	2013/02/02 10:11:16	1.103
@@ -308,6 +308,11 @@
     (:function (describe (symbol-function symbol)))
     (:class (describe (find-class symbol)))))
 
+(defimplementation type-specifier-p (symbol)
+  (or (ignore-errors
+       (subtypep nil symbol))
+      (not (eq (type-specifier-arglist symbol) :not-available))))
+
 (defun fspec-pathname (spec)
   (let ((path spec)
 	type
--- /project/slime/cvsroot/slime/swank-ecl.lisp	2013/01/11 23:36:35	1.82
+++ /project/slime/cvsroot/slime/swank-ecl.lisp	2013/02/02 10:11:16	1.83
@@ -345,6 +345,10 @@
     (:class (documentation name 'class))
     (t nil)))
 
+(defimplementation type-specifier-p (symbol)
+  (or (subtypep nil symbol)
+      (not (eq (type-specifier-arglist symbol) :not-available))))
+
 
 ;;; Debugging
 
--- /project/slime/cvsroot/slime/swank-lispworks.lisp	2012/04/07 09:35:42	1.151
+++ /project/slime/cvsroot/slime/swank-lispworks.lisp	2013/02/02 10:11:16	1.152
@@ -297,6 +297,11 @@
   (when (fboundp sym)
     (describe-function sym)))
 
+(defimplementation type-specifier-p (symbol)
+  (or (ignore-errors
+       (subtypep nil symbol))
+      (not (eq (type-specifier-arglist symbol) :not-available))))
+
 ;;; Debugging
 
 (defclass slime-env (env:environment) 
--- /project/slime/cvsroot/slime/swank-sbcl.lisp	2013/01/09 14:29:28	1.327
+++ /project/slime/cvsroot/slime/swank-sbcl.lisp	2013/02/02 10:11:16	1.328
@@ -438,6 +438,9 @@
       (sb-introspect:deftype-lambda-list typespec-operator)
     (if foundp arglist (call-next-method))))
 
+(defimplementation type-specifier-p (symbol)
+  (or (sb-ext:valid-type-specifier-p symbol)
+      (not (eq (type-specifier-arglist symbol) :not-available))))
 
 (defvar *buffer-name* nil)
 (defvar *buffer-tmpfile* nil)





More information about the slime-cvs mailing list