[slime-devel] Re: sbcl and compiler note annotation

Zach Beane xach at xach.com
Tue Jul 26 14:45:20 UTC 2005


Here is a SLIME patch from Juho Snellman that fixes the annotation
problems (misplaced annotations, "FOO is not of type LIST") currently
affecting recent SLIME and SBCL.

Zach

? jsnell.patch
Index: ChangeLog
===================================================================
RCS file: /project/slime/cvsroot/slime/ChangeLog,v
retrieving revision 1.725
diff -u -r1.725 ChangeLog
--- ChangeLog	24 Jul 2005 15:30:46 -0000	1.725
+++ ChangeLog	26 Jul 2005 14:34:24 -0000
@@ -1,3 +1,9 @@
+2005-07-26  Zach Beane  <xach at xach.com>
+
+	* swank-sbcl.lisp (swank-compile-string): Revert to old string
+	compilation behavior to fix compiler note annotations. Code from
+	Juho Snellman.
+
 2005-07-24  Tom Pierce <tlpierce at gmail.com>
 
 	* swank.lisp (format-iso8601-time): New functions. Properly
Index: swank-sbcl.lisp
===================================================================
RCS file: /project/slime/cvsroot/slime/swank-sbcl.lisp,v
retrieving revision 1.137
diff -u -r1.137 swank-sbcl.lisp
--- swank-sbcl.lisp	5 Jul 2005 20:30:59 -0000	1.137
+++ swank-sbcl.lisp	26 Jul 2005 14:34:24 -0000
@@ -304,7 +304,8 @@
          ;; Compiling from a buffer
          (let ((position (+ *buffer-offset*
                             (source-path-string-position
-                             source-path *buffer-substring*))))
+                             (cons 0 (nthcdr 2 source-path))
+                             *buffer-substring*))))
            (make-location (list :buffer *buffer-name*)
                           (list :position position))))
         ((and (pathnamep file) (null *buffer-name*))
@@ -465,8 +466,12 @@
                                 (list :emacs-buffer buffer 
                                       :emacs-string string
                                       :emacs-position position))
-          (with-input-from-string (s string)
-            (load s))))))
+        #+nil
+        (with-input-from-string (stream string)
+          (load stream))
+        (funcall (compile nil
+                          `(lambda ()
+                            ,(read-from-string string))))))))
 
 ;;;; Definitions
 




More information about the slime-devel mailing list