Helmut Eller wrote:
I guess SIGINT is not the Windows way and something else should be used instead.
Indeed. I now launched clisp via clisp.exe which starts lisp.exe, and the same thing happened as when starting lisp.exe from within a M-x shell:
CLISP is not interruptible via signal-process that way. More precisely, (signal-process (pid as reported by CLISP) 'SIGINT) returns -1 and does not stop CLISP.
The only thing that works reliably is (signal-process (get-buffer-process ...) 'SIGINT)
I'm sure this would also affect other Lisps beside CLISP.
So I suggest the following, which maybe could work better:
o (at least on MS-Windows) signal the buffer/process that SLIME uses for communication with the Lisp, instead of the Lisp's PID. Obviously, Emacs goes into a lot of effort to make processes receive SIGINT there, even when started from within M-x shell, and there's no need to reproduce this effort in SLIME.
I have no idea what to do with a remote Lisp -- can SLIME stop those, in all communication-style configurations? I have no idea how this this affects Lisps with threads and/or :spawn/:io/:fd-handler etc.
Given some more time, I'll start clisp in a console window, connect via socket and see if/how ^C gets propagated.
Regards, Jorg Hohle.