[slime-devel] Re: Slime behavior different (SBCL vs CMUCL)?
Helmut Eller
heller at common-lisp.net
Thu Nov 22 23:29:20 UTC 2007
* Jeff Cunningham [2007-11-22 18:05+0100] writes:
> Clearly I don't fully understand the interactions between Slime, Swank
> and the inferior lisp. Is there another way I can launch SBCL from
> within Slime so it works the way CMUCL used to?
If you set swank:*communication-style* to :sigio you should get the
same behavior. :sigio is a bit dangerous though, because most code
isn't reentrant and it's possible that data-structures are in a
inconsistent state when the interrupt occurs. And :sigio isn't very
useful if your application uses threads.
As a safer alternative you could stop and debug the thread with `M-x
slime-list-threads' and pressing d in the right line. If you press :
in the debugger buffer, you can evaluate an expression in the debugged
thread.
C-c C-c in source buffers usually spawns a new thread. If you
(re)compile a defun it's visible in all threads. Setting a global
variable is of course also visible in all threads. The new value is
not visible in those threads which have a local dynamic binding for
the variable. (You can set those local bindings in the debugger.)
Also note that SBCL can optimize tail recursive functions to loops,
i.e. a thread executing such a loop never calls the new definition.
Helmut.
More information about the slime-devel
mailing list