[slime-devel] Re: Really slow to interrupt in Allegro 6.2

Luke Gorrie luke at bluetail.com
Tue Jul 20 16:37:03 UTC 2004


Peter Seibel <peter at javamonkey.com> writes:

> So when I use C-c C-c (slime-interrupt) to try to interrupt a
> long-running computation in SLIME it sometimes takes a really long
> time (order 10-60 seconds) before the debugger pops up.

When we use the threads-based :SPAWN communication style we don't
issue any interrupt/signal, we just send a "please interrupt yourself"
message down the socket and wait for the reader-thread to process
it. This means that responsiveness is in the hands of Lisp's thread
scheduler. With CMUCL cooperative threads this is quite unresponsive
and possibly it's the same thing with ACL too.

There may be a better way to handle this. Certainly I prefer :SIGIO to
:SPAWN with CMUCL.

> I've also noticed that if I do something that generates an error
> that will contain a lot of output (such as saying (boundp *y*)
> instead of (boundp '*y*) when *y* is list of several thousand
> standard-objects) then it also takes a really long time for the
> debugger to come up. I'm running Allegro 6.2 on GNU/Linux.

I see this too when the printed representation is big (e.g. a
megabyte). With ACL both Lisp and Emacs chew CPU, with CMUCL it's just
Emacs.






More information about the slime-devel mailing list