Skip to content
This repository

quit shortcut doesn't work #9

bach741974 opened this Issue · 2 comments

2 participants

Evgeny Bahvalov Anton Kovalenko
Evgeny Bahvalov

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.

Anton Kovalenko

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).

Evgeny Bahvalov

Thanks. It works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.