[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