* 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.