[slime-devel] Remote slime

Brian Downing bdowning at lavos.net
Tue Jan 20 23:23:13 UTC 2004


On Wed, Jan 21, 2004 at 12:07:18AM +0100, Helmut Eller wrote:
> This is configurable.  By default we use 2 connections.  The second
> connection is only used for "raw" output to Emacs; it's a pure
> performance optimization.  If you set *use-dedicated-output-stream* to
> nil (e.g., in your .swank.lisp), SLIME uses only a single connection.

Great!  I'll give this a try.

> I'd like to note, that interrupting a remote Lisp will not work,
> because we use Unix signals for this.  Proposals how we could
> interrupt a remote Lisp are most welcome.

Tricky.  As a completely off-the-cuff idea which would only work with
threaded lisps:

The thread which runs the swank network connection has a policy of never
blocking to run arbitrary lisp code.  Any request to do anything will be
handed off to (1-n) worker threads whose job it is to run the request.
To interrupt, send an interrupt request to the swank server, which can
receive it since it is never blocked.  It can then issue a break to the
appropriate job thread.  (In SBCL, (sb-thread:interrupt-thread thread
#'break), which hopefully would trigger the slime debugger.  There are a
ton of deadlock issues with interrupt-thread, unfortunatly.)

-bcd
--
*** Brian Downing <bdowning at lavos dot net> 




More information about the slime-devel mailing list