dear list,
seems like when the inspector is opened up in the slime debugger, then it's running the swank side queries/actions in a different thread then the debugger is sitting in. to test this with cvs head see the following:
(this is slime cvs head, sbcl cvs head)
DT> (defclass foo () ((foo-slot)))
DT> (defvar *global*)
DT> (defmethod swank::inspect-slot-for-emacs (class (object foo) slot) (let ((result (call-next-method))) (append result `((:action "[test action]" ,(lambda () (setf (slot-value object 'foo-slot) *global*)))))))
DT> (let ((*global* 42)) (break "~A" (make-instance 'foo))) ; Evaluation aborted
pressing the action results in a *global* is unbound error.
is there some fundamental problem behind this or it's just a simple bug? would be nice if someone with more insight into connection/thread handling could take a look at this.