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

Helmut Eller heller at common-lisp.net
Sun Sep 19 05:56:43 UTC 2004


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

Modified Files:
	swank.lisp 
Log Message:
(thread-for-evaluation): Restart the listener thread if it was dead
for some reason.

(debugger-condition-for-emacs): Include "extra" stuff.

(sldb-break): New entry function.


Date: Sun Sep 19 07:56:42 2004
Author: heller

Index: slime/swank.lisp
diff -u slime/swank.lisp:1.239 slime/swank.lisp:1.240
--- slime/swank.lisp:1.239	Fri Sep 17 14:52:11 2004
+++ slime/swank.lisp	Sun Sep 19 07:56:42 2004
@@ -35,6 +35,8 @@
            #:frame-source-location-for-emacs
            #:restart-frame
            #:sldb-step
+           #:sldb-break
+           #:sldb-break-on-return
            #:profiled-functions
            #:profile-report
            #:profile-reset
@@ -455,7 +457,12 @@
       ((member t)
        (spawn (lambda () (handle-request c)) :name "worker"))
       ((member :repl-thread)
-       (connection.repl-thread c)) 
+       (let ((thread (connection.repl-thread c)) )
+         (if (thread-alive-p thread) 
+             thread
+             (setf (connection.repl-thread c)
+                   (spawn (lambda () (repl-loop c))
+                          :name "new-repl-thread")))))
       (fixnum
        (find-thread id)))))
   
@@ -914,7 +921,7 @@
 This is like defvar, but NAME will not be initialized."
   `(progn
     (defvar ,name)
-    (setf (documentation ',name 'variable) ',doc)))
+    (setf (documentation ',name 'variable) ,doc)))
 
 (define-special *buffer-package*     
     "Package corresponding to slime-buffer-package.  
@@ -1352,7 +1359,8 @@
   (list (safe-condition-message *swank-debugger-condition*)
         (format nil "   [Condition of type ~S]"
                 (type-of *swank-debugger-condition*))
-        (condition-references *swank-debugger-condition*)))
+        (condition-references *swank-debugger-condition*)
+        (condition-extras *swank-debugger-condition*)))
 
 (defun format-restarts-for-emacs ()
   "Return a list of restarts for *swank-debugger-condition* in a
@@ -1388,11 +1396,12 @@
 The result is a list:
   (condition ({restart}*) ({stack-frame}*)
 where
-  condition   ::= (description type)
+  condition   ::= (description type [extra])
   restart     ::= (name description)
   stack-frame ::= (number description)
-
-condition---a pair of strings: message, and type.
+  extra       ::= (:references 
+condition---a pair of strings: message, and type.  If show-source is
+not nil it is a frame number for which the source should be displayed.
 
 restart---a pair of strings: restart name, and description.
 
@@ -1470,6 +1479,10 @@
 (defslimefun sldb-return-from-frame (index string)
   (let ((form (from-string string)))
     (to-string (multiple-value-list (return-from-frame index form)))))
+
+(defslimefun sldb-break (name)
+  (with-buffer-syntax ()
+    (sldb-break-at-start (read-from-string name))))
 
 
 ;;;; Compilation Commands.





More information about the slime-cvs mailing list