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