I have been having problems with SIGINT (keyboard interrupts) with SLIME and Allegro 6.0.
My SLIME version is a recent (April 21, 04) cvs update using:
cvs -d :pserver:anonymous@common-lisp.net:/project/slime/cvsroot co -r \ FAIRLY-STABLE slime
Here is what happens when typing C-c C-c into the *inferior-lisp* buffer after starting up Allegro 6.0 (X86).
_____________________________________________
International Allegro CL Professional Edition 6.0 [Linux (x86)] (Oct 26, 2000 15:41) Copyright (C) 1985-2000, Franz Inc., Berkeley, CA, USA. All Rights Reserved.
;; Optimization settings: safety 1, space 1, speed 1, debug 2. ;; For a complete description of all compiler switches given the ;; current optimization settings evaluate (EXPLAIN-COMPILER-SETTINGS). CL-USER(1): ; Loading /m/rom1/downloads/slime/slime/swank-loader.lisp ; Fast loading ; /m/rom1/downloads/slime/slime/fasl/allegro/swank-backend.fasl ; Fast loading /m/rom1/downloads/slime/slime/fasl/allegro/nregex.fasl ; Fast loading ; /m/rom1/downloads/slime/slime/fasl/allegro/swank-allegro.fasl Warning: (METHOD DESCRIBE-DEFINITION (T T)) is defined more than once as a operator in the file /m/rom1/downloads/slime/slime/swank-allegro.lisp. ; Fast loading ; /m/rom1/downloads/slime/slime/fasl/allegro/swank-gray.fasl ; Fast loading /m/rom1/downloads/slime/slime/fasl/allegro/swank.fasl Warning: These Swank interfaces are unimplemented:
(ADD-FD-HANDLER ADD-SIGIO-HANDLER CALL-WITH-COMPILATION-HOOKS LIST-CALLERS PROFILE PROFILE-PACKAGE PROFILE-REPORT PROFILE-RESET PROFILED-FUNCTIONS REMOVE-FD-HANDLERS REMOVE-SIGIO-HANDLERS UNPROFILE WHO-SPECIALIZES) ; Loading /homedir/quam/.swank.lisp T CL-USER(2): ;; Swank started at port: 60573. 60573 CL-USER(3): t T CL-USER(4): Interrupt 2 (Keyboard interrupt): Select a process to handle it:
0 -- Ignore the Interrupt -- 1 #<MULTIPROCESSING:PROCESS Initial Lisp Listener waiting for input @ #x200f9e6a> 2 #<MULTIPROCESSING:PROCESS control-thread receive @ #x205dac7a> 3 #<MULTIPROCESSING:PROCESS reader-thread waiting for input @ #x205dad42>
The scheduler is attempting to recover from Process-wait may not be called within the scheduler's stack group.. 1 1 CL-USER(5): Interrupt 2 (Keyboard interrupt): Select a process to handle it:
0 -- Ignore the Interrupt -- 1 #<MULTIPROCESSING:PROCESS Initial Lisp Listener waiting for input @ #x200f9e6a> 2 #<MULTIPROCESSING:PROCESS control-thread receive @ #x205dac7a> 3 #<MULTIPROCESSING:PROCESS reader-thread waiting for input @ #x205dad42>
The scheduler is attempting to recover from Process-wait may not be called within the scheduler's stack group.. Error: Process-wait may not be called within the scheduler's stack group. [condition type: SIMPLE-ERROR] Error: Process-wait may not be called within the scheduler's stack group. [condition type: SIMPLE-ERROR]
...
Error: Process-wait may not be called within the scheduler's stack group. [condition type: SIMPLE-ERROR]
Error: Recursive error while printing or signalling an error. This is sometimes caused by an error in a print-object method.
;; Exiting lisp because of too many consecutive errors...
;; Exiting lisp because of too many consecutive errors...
...
_____________________________________________
Do other Allegro SLIME users have this problem also?
Lynn Quam quam@ai.sri.com writes:
Do other Allegro SLIME users have this problem also?
I only have Allegro 5.0 around, but I don't see the problem. SWANK for Allegro doesn't do anything with SIGINT, for Allegro we use threads and mp:process-interrupt instead. Very strange.
Helmut.