I am using SBCL and Slime on windows. When I make a mistake and Lisp goes to the debugger, the slime-repl often freezes Emacs. I will try to reproduce the error here:
; SLIME 2009-03-08
CL-USER> (* 3 4 5)
60
CL-USER> (reco 3 4) ;; I made a mistake on purpose
This error sends me to the debugger. When I abort (or try to return to Slime, or whatever), Emacs freezes:
; SLIME 2009-03-08
CL-USER> (* 3 4 5)
60
CL-USER> (reco 3 4) ;; I made a mistake on purpose
The minibuffer looks like this:
; pipelined request... (swank:listener-eval "3
The only thing that seems to work is Interrupt Lisp Process. BTW, here is the debugger loop:
The function RECO is undefined.
[Condition of type UNDEFINED-FUNCTION]
Restarts:
0: [RETRY] Retry SLIME REPL evaluation request.
1: [ABORT] Return to SLIME's top level.
2: [ABORT] Abort
3: [CLOSE-CONNECTION] Close SLIME connection
4: [ABORT] Exit debugger, returning to top level.
Backtrace:
0: ("bogus stack frame")
1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (RECO 3 4) #<NULL-LEXENV>)
2: (SWANK::EVAL-REGION "(reco 3 4) ;; I made a mistake on purpose\n")
3: ((LAMBDA ()))
4: (SWANK::TRACK-PACKAGE #<CLOSURE (LAMBDA #) {23F5029D}>)
5: (SWANK::CALL-WITH-RETRY-RESTART "Retry SLIME REPL evaluation request." #<CLOSURE (LAMBDA #) {23F5022D}>)
6: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<CLOSURE (LAMBDA #) {23F50215}>)
7: (SWANK::REPL-EVAL "(reco 3 4) ;; I made a mistake on purpose\n")
8: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(reco 3 4) ;; I made a mistake on purpose\n") #<NULL-LEXENV>)
9: (SWANK::EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(reco 3 4) ;; I made a mistake on purpose\n") "COMMON-LISP-USER" 20)
10: (SWANK::PROCESS-REQUESTS T)
11: ((LAMBDA ()))
12: (SWANK::HANDLE-REQUESTS #<SWANK::CONNECTION {241CC519}> T)
13: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {24236CED}>)
14: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA #) {24236D05}>)
15: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {241CC519}> #<CLOSURE (LAMBDA #) {24236CED}>)
16: ((LAMBDA ()))
17: ((LAMBDA ()))
18: ((SB-PCL::FAST-METHOD STREAM-READ-CHAR (SWANK-BACKEND::SLIME-INPUT-STREAM)) #(2 NIL 3 NIL 1 NIL ...) #<unavailable argument> #<SWANK-BACKEND::SLIME-INPUT-STREAM {24235C91}>)
19: (READ-CHAR #<SWANK-BACKEND::SLIME-INPUT-STREAM {24235C91}> T #:EOF-OBJECT #<unused argument>)
20: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SWANK-BACKEND::SLIME-INPUT-STREAM {24235C91}> T NIL T)
21: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SWANK-BACKEND::SLIME-INPUT-STREAM {24235C91}> T NIL NIL)
22: (READ #<SWANK-BACKEND::SLIME-INPUT-STREAM {24235C91}> T NIL NIL)
23: (SWANK::SIMPLE-REPL)
24: ((LAMBDA ()))
25: ((LAMBDA (SWANK-BACKEND::HANDLER FUNCTION)) #<FUNCTION (LAMBDA #) {23E05215}> #<CLOSURE (LAMBDA #) {241CC595}>)
26: (SWANK::SIMPLE-SERVE-REQUESTS #<SWANK::CONNECTION {241CC519}>)
27: (SWANK::SERVE-CONNECTION #<SB-BSD-SOCKETS:INET-SOCKET descriptor -1 {24158D89}> NIL NIL :ISO-8859-1)
28: (SWANK::SETUP-SERVER 0 #<CLOSURE (LAMBDA #) {240E5FD5}> NIL NIL :ISO-8859-1)
29: (SB-INT:SIMPLE-EVAL-IN-LEXENV (FUNCALL (READ-FROM-STRING "swank:start-server") "c:/DOCUME~1/User/CONFIG~1/Temp/slime.2900" :CODING-SYSTEM "iso-latin-1-unix") #<NULL-LEXENV>)
30: (SB-INT:SIMPLE-EVAL-IN-LEXENV ..)
31: (INTERACTIVE-EVAL ..)
32: (SB-IMPL::REPL-FUN NIL)
33: ((LAMBDA ()))
34: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA #) {23B3910D}>)
35: (SB-IMPL::TOPLEVEL-REPL NIL)
36: (SB-IMPL::TOPLEVEL-INIT)
37: ((LABELS SB-IMPL::RESTART-LISP))
38: ("foreign function: #x412045")
39: ("foreign function: #x40AEA8")