[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