[slime-cvs] CVS slime

heller heller at common-lisp.net
Sat Sep 20 16:34:08 UTC 2008


Update of /project/slime/cvsroot/slime
In directory clnet:/tmp/cvs-serv4277

Modified Files:
	ChangeLog swank-openmcl.lisp 
Log Message:
Fix inspecting of arrays.

* swank-openmcl.lisp (emacs-inspect :around (t)): call-next-method
may return a lazy list.  Detect that case and only append to
ordinary lists.
(emacs-inspect (t)): Don't mark labels as inspectable. Just print
them.

--- /project/slime/cvsroot/slime/ChangeLog	2008/09/20 16:33:55	1.1529
+++ /project/slime/cvsroot/slime/ChangeLog	2008/09/20 16:34:08	1.1530
@@ -1,5 +1,15 @@
 2008-09-20  Helmut Eller  <heller at common-lisp.net>
 
+	Fix inspecting of arrays.
+
+	* swank-openmcl.lisp (emacs-inspect :around (t)): call-next-method
+	may return a lazy list.  Detect that case and only append to
+	ordinary lists.
+	(emacs-inspect (t)): Don't mark labels as inspectable. Just print
+	them.
+
+2008-09-20  Helmut Eller  <heller at common-lisp.net>
+
 	Fix BREAK and backtraces after interrupts.
 
 	* swank-openmcl.lisp (*sldb-stack-top-hint*): New variable.
--- /project/slime/cvsroot/slime/swank-openmcl.lisp	2008/09/20 16:33:55	1.136
+++ /project/slime/cvsroot/slime/swank-openmcl.lisp	2008/09/20 16:34:08	1.137
@@ -764,7 +764,7 @@
              for l below count
              for (value label) = (multiple-value-list 
                                   (inspector::line-n i l))
-             collect `(:value ,label ,(string-capitalize (format nil "~a" label)))
+             collect (if label (format nil "~(~a~)" label) i)
              collect " = "
              collect `(:value ,value)
              collect '(:newline))))
@@ -774,10 +774,13 @@
   (if (or (uvector-inspector-p o)
           (not (ccl:uvectorp o)))
       (call-next-method)
-      (append (call-next-method)
-                 `((:newline)
-                   (:value ,(make-instance 'uvector-inspector :object o)
-                           "Underlying UVECTOR")))))
+      (let ((value (call-next-method)))
+        (cond ((listp value)
+               (append value
+                       `((:newline)
+                         (:value ,(make-instance 'uvector-inspector :object o)
+                                 "Underlying UVECTOR"))))
+              (t value)))))
 
 (defclass uvector-inspector ()
   ((object :initarg :object)))
@@ -787,13 +790,11 @@
   (:method ((object uvector-inspector)) t))
 
 (defmethod emacs-inspect ((uv uvector-inspector))
-  (with-slots (object)
-      uv
-            (loop
-               for index below (ccl::uvsize object)
-               collect (format nil "~D: " index)
-               collect `(:value ,(ccl::uvref object index))
-               collect `(:newline))))
+  (with-slots (object) uv
+    (loop for index below (ccl::uvsize object)
+          collect (format nil "~D: " index)
+          collect `(:value ,(ccl::uvref object index))
+          collect `(:newline))))
 
 (defun closure-closed-over-values (closure)
   (let ((howmany (nth-value 8 (ccl::function-args (ccl::closure-function closure)))))
@@ -874,7 +875,8 @@
   (ccl:process-interrupt 
    thread 
    (lambda ()
-     (let ((*sldb-stack-top-hint* (ccl::%get-frame-ptr)))
+     (let ((*sldb-stack-top-hint* (or *sldb-stack-top-hint*
+                                      (ccl::%get-frame-ptr))))
        (funcall function)))))
   
 (defun mailbox (thread)




More information about the slime-cvs mailing list