[slime-devel] SLIME/Allegro communication-style

Helmut Eller heller at common-lisp.net
Thu Sep 15 08:05:21 UTC 2005


* Lynn Quam [2005-09-15 02:53+0200] writes:

> Is it possible to run SLIME with Allegro using communication-style =
> :sigio rather than :spawn?

No, at least it's not implemented.

> I have a custom REPL loop which handles tcl/tk events in addition to
> input from *standard-input*.  This work fine with SLIME and CMUCL with
> communication-style = :sigio.
>
> I have encountered difficulties implementing event-handling for tcl/tk
> with SLIME using communication-style = :spawn.  One problem is that
> (method stream-listen slime-input-stream) on Allegro just checks if
> the buffer contains characters.  It does not attempt to ask the socket
> is there are characters available.  This does not appear to be a
> problem in CMUCL.

With communication-style = :spawn there's one thread which just reads
input from the socket (and after some frobbing) inserts the input into
the stream buffer, so that stream-listen should see it whenever there
is some input.

My guess is that the Tcl interpreter somehow interferes with Allegros
thread scheduler and that the above mentioned reader thread gets not
executed (often enough).  Perhaps you can execute something like
mp:process-allow-schedule before you call stream-listen?



More information about the slime-devel mailing list