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

Helmut Eller e9626484 at stud3.tuwien.ac.at
Thu Jan 15 19:46:09 UTC 2004


Luke Gorrie <luke at bluetail.com> writes:

> 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?

The Lispworks editor seems to create a thread for each evaluation
request (commands ala C-x C-e).  Well, at least for the first 2
requests.  The 3 thread seems to be blocked or delayed.  So, when you
start 2 endless loops you get 2 threads.  The output of both threads
is printed in the "Output" buffer.  C-g interrupts/stops (not sure)
the first thread.  Pressing C-g a second time has no effect :-).

Edwin (the Emacs clone in MIT-Scheme) behaves in a similar way.  It's
customizable if the done an "inferior" thread or in the editor thread
itself.  The output goes usually to the REPL buffer (that's the moral
equivalent to Emacs *scratch*), but this is configurable.  Apparently
quite a few options; haven't tried them.  Debugging multiple threads
was very confusing, or at least I was unable to figure out how to do
it.

It would probably good if we provide this "evaluation in a separate
thread" as an option.

Helmut.




More information about the slime-devel mailing list