quit shortcut doesn't work #9

bach741974 opened this Issue Oct 14, 2011 · 2 comments

2 participants


When I try use shortcut quit in slime repl it doesn't close sbcl. After quit I need to type (quit) in sbcl repl (inferior-lisp) to exit

from sbcl. CCL works fine in that situation. Thanks.


First, (quit) is not needed actually, just about anything can be entered instead (e.g. an empty line with RET, or process EOF with M-: (process-send-eof)). My SBCL uses asynchronous I/O whenever possible, but it's not normally possible for inherited pipes on Windows: they can't be set to overlapped mode.

To my knowledge, CCL uses auxilary threads for reacting on outstanding I/O completion asynchronously, when it's impossible for some channel in a straightforward way. While I had to use this approach for console I/O, I'm reluctant to add similar workaround for pipes -- the solution has some downsides that I wanted to avoid.

Meanwhile, the following workaround (on the Emacs side) can be used:

;;; Add it to your ~/.emacs
;;; send EOF to the inferior process after shutting down anything else.
(defadvice slime-quit-lisp (around alert-sbcl activate)
  (let ((process (slime-inferior-process (slime-connection))))
    ad-do-it (process-send-eof process)))

Hope this helps (and also hope to come up eventually with a real solution).


Thanks. It works.

@bach741974 bach741974 closed this Dec 5, 2011
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment