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

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


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

Modified Files:
	swank-clisp.lisp 
Log Message:
(describe-symbol-for-emacs): Report :alien-type when the name is known
as foreign type.

Date: Wed Jun  1 14:50:05 2005
Author: heller

Index: slime/swank-clisp.lisp
diff -u slime/swank-clisp.lisp:1.47 slime/swank-clisp.lisp:1.48
--- slime/swank-clisp.lisp:1.47	Wed Jun  1 14:22:28 2005
+++ slime/swank-clisp.lisp	Wed Jun  1 14:50:05 2005
@@ -162,6 +162,18 @@
 	 (doc 'function)))
       (maybe-push :class (when (find-class symbol nil) 
 			   (doc 'type))) ;this should be fixed
+      ;; Let this code work compiled in images without FFI
+      (let ((types (load-time-value
+		    (and (find-package "FFI")
+			 (symbol-value 
+			  (find-symbol "*C-TYPE-TABLE*" "FFI"))))))
+	;; Use ffi::*c-type-table* so as not to suffer the overhead of
+	;; (ignore-errors (ffi:parse-c-type symbol)) for 99.9% of symbols
+	;; which are not FFI type names.
+	(when (and types (nth-value 1 (gethash symbol types)))
+	  ;; Maybe use (case (head (ffi:deparse-c-type)))
+	  ;; to distinguish struct and union types?
+	  (maybe-push :alien-type :not-documented)))
       result)))
 
 (defimplementation describe-definition (symbol namespace)




More information about the slime-cvs mailing list