Paolo Amoroso amoroso@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