[slime-devel] Re: Partial multiprocessing support on CMUCL
Luke Gorrie
luke at bluetail.com
Wed Dec 17 16:52:05 UTC 2003
Paolo Amoroso <amoroso at mclink.it> writes:
> I'd be happy to dump *inferior-lisp*, but it's the only way I can make
> mp::startup-idle-and-top-level-loops work with CMUCL. If I evaluate it
> from *slime-repl*, I no longer get the prompt back.
The thing is that mp::startup-idle-and-top-level-loops never actually
returns. It goes into an endless SERVE-EVENT loop, and spawns a
separate thread to take over the top-level. You can see this change of
processes from a fresh lisp:
* (mp:current-process)
#<Process Initial {48006B35}>
* (mp::startup-idle-and-top-level-loops)
* (mp:current-process)
#<Process Top Level Loop {485F2FA5}>
*
or in the absence of a result here
* (progn (mp::startup-idle-and-top-level-loops) 'done)
*
This breaks in the REPL because we call the function as an RPC, and
damned well expect to get a return value :-)
But if you (setq slime-multiprocessing t) in Emacs,
mp::startup-idle-and-top-level-loops will get called automatically
(via *inferior-lisp*) during slime startup.
-Luke
More information about the slime-devel
mailing list