[slime-devel] Re: Lisp is not ready for requests from the REPL, can it be any other way?

Luke Gorrie luke at bluetail.com
Wed Jan 14 13:23:33 UTC 2004


Brian Mastenbrook <bmastenb at cs.indiana.edu> writes:

> What you're attempting to do requires threading. There has been work on 
> that, described on the list. You might check the list archives. 
> Hopefully within a month, you should be able to do just that :-)

I don't think we've discussed a UI that would support what Dirk
wants. It sounds like separate threads for REPL and lisp-mode
commands. I suppose ELI works like this with thread-per-request.

My UI thoughts so far have been limited to "SLIME uses one thread for
requests, but other threads can also do user input/output and enter
the debugger". That way SLIME could be used to debug multithreaded
programs. I don't know how to handle I/O from threads or how to keep
order in Emacs if lots of threads go mad in Lisp - this seems like the
main area for experimentation.

Thoughts?

BTW, this morning I got some multithreading working in CMUCL with the
new connection-per-thread model. This is different to the previous
incarnation in that different threads can talk to Emacs at the same
time ("Peter Siebel style" :-)).

I have to understand SERVE-EVENT+threads better before it's
usable/checkin'able, but I'll get something to experiment with in this
week. Currently one thread seems to "starve" the other even while
waiting on I/O, even with the sockets set non-blocking. If I can't fix
that quick I'll try SBCL.

-Luke






More information about the slime-devel mailing list