I'm just using reasonably recent SLIME and SBCL. Ctrl+c doesn't work. I can only use SBCL for limited trying out things, not for most of my development. Is there no way to get this just to be the default in the regular version of SBCL, and with default SLIME settings? Any news on that front?
----- Original message ----- From: "Anton Kovalenko" anton@sw4me.com To: slime-devel@common-lisp.net Date: Mon, 22 Aug 2011 21:06:00 +0400 Subject: Re: [slime-devel] Question about Slime & SBCL on Windows
Scott Turner srt19170@gmail.com writes:
I'm currently using SLIME & SBCL (SBCL 1.0.50.24.mswinmt.876-cad5ed2 -- Kovalenko's Windows port). When I hit C-c C-c to interrupt, my Lisp dies and I have to kill Slime and restart. Am I doing something wrong, or is interrupt just not supported on SBCL?
Ensure you use the :spawn communication style -- e.g. by loading swank and setting swank:*communication-style* to :spawn in your .sbclrc. (The real culprit is (slime-use-sigint-for-interrupt) in SLIME).
Interrupts in general are supported; when swank is using multiple threads (with :spawn style), C-c C-c from Emacs will be handled by the control thread, which will interrupt the REPL thread.
Control-C handler for raw REPL is not installed: though it's possible, I have some semantic difficulties about what it should do. There was once a discussion here -- you may look it up if interested.
As of what stands for "SIGINT" in Emacs for Windows, I didn't look into it, but it's either a GenerateConsoleCtrlEvent (thing like raw Control-C), or maybe even something more harsh like TerminateProcess. Thus you really need a :SPAWN style for swank to make interrupts work.