Index: slime/ChangeLog diff -u slime/ChangeLog:1.2336 slime/ChangeLog:1.2338 --- slime/ChangeLog:1.2336 Sun May 6 23:10:50 2012 +++ slime/ChangeLog Thu May 10 23:52:18 2012 @@ -1,3 +1,14 @@ +2012-05-11 Helmut Eller heller@common-lisp.net + + * swank-sbcl.lisp (stream-force-output): Don't use + with-deadline. Grab the world-lock instead. + (condition-timed-wait): Use the :timeout argument for real. + +2012-05-11 Helmut Eller heller@common-lisp.net + + * swank-backend.lisp (call-with-io-timeout): Not used. Deleted. + * swank-sbcl.lisp (call-with-io-timeout): Deleted. + 2012-05-07 Helmut Eller heller@common-lisp.net
Ignore linebreaks for the macroexpand test.
These changes break my usual SLIME stress test (shown below). Reverting back to 6df43a1ab6d434ba5f1d7bd39e79779e12524b73 fixes the problem.
Cyrus
CL-USER> (asdf:test-system 'flexi-streams) STYLE-WARNING: Implicitly creating new generic function READ-SEQUENCE*. STYLE-WARNING: Implicitly creating new generic function CHECK-IF-OPEN. STYLE-WARNING: Implicitly creating new generic function TRANSFORM-OCTET. STYLE-WARNING: Implicitly creating new generic function MAKE-IN-MEMORY-INPUT-STREAM. STYLE-WARNING: Implicitly creating new generic function GET-OUTPUT-STREAM-SEQUENCE. STYLE-WARNING: Implicitly creating new generic function OUTPUT-STREAM-SEQUENCE-LENGTH. STYLE-WARNING: Generic function CLOSE clobbers an earlier FTYPE proclamation (FUNCTION (STREAM &KEY (:ABORT T)) (VALUES (MEMBER T) &OPTIONAL)) for the same name with (FUNCTION (T &KEY (:ABORT T)) *). STYLE-WARNING: Implicitly creating new generic function READ-BYTE*. STYLE-WARNING: Implicitly creating new generic function UNREAD-BYTE. STYLE-WARNING: Implicitly creating new generic function PEEK-BYTE. STYLE-WARNING: Implicitly creating new generic function RESET-INPUT-STATE. STYLE-WARNING: Implicitly creating new generic function RESET-OUTPUT-STATE. Test suite: "Reading/writing files" .Help! 11 nested errors. SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded. 0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA (SB-DEBUG::FRAME) :IN BACKTRACE) {1008F0340B}> :START 0 :COUNT 4611686018427387903) 1: (BACKTRACE 4611686018427387903 #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 2: ((LAMBDA NIL :IN SB-IMPL::ERROR-ERROR)) 3: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN SB-IMPL::ERROR-ERROR) {1008F02FAB}>) 4: (SB-IMPL::ERROR-ERROR "Help! " 11 " nested errors. " "SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded.") 5: (SB-IMPL::INFINITE-ERROR-PROTECTOR) 6: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 7: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 8: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 9: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 10: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 11: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 12: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 13: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02B53}>) 14: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02B53}>) 15: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F02E9B}>) 16: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F02E9B}>) 17: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02B53}> #<unavailable argument>) 18: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02B53}>) 19: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02B53}>) 20: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 21: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 22: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 23: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 24: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 25: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 26: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 27: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02723}>) 28: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02723}>) 29: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F02A4B}>) 30: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F02A4B}>) 31: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02723}> #<unavailable argument>) 32: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02723}>) 33: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02723}>) 34: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 35: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 36: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 37: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 38: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 39: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 40: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 41: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02313}>) 42: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02313}>) 43: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F0261B}>) 44: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F0261B}>) 45: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02313}> #<unavailable argument>) 46: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02313}>) 47: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02313}>) 48: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 49: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 50: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 51: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 52: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 53: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 54: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 55: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01F23}>) 56: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01F23}>) 57: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F0220B}>) 58: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F0220B}>) 59: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01F23}> #<unavailable argument>) 60: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01F23}>) 61: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01F23}>) 62: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 63: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 64: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 65: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 66: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 67: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 68: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 69: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01B53}>) 70: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01B53}>) 71: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F01E1B}>) 72: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F01E1B}>) 73: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01B53}> #<unavailable argument>) 74: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01B53}>) 75: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01B53}>) 76: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 77: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 78: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 79: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 80: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 81: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 82: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 83: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F017A3}>) 84: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F017A3}>) 85: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F01A4B}>) 86: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F01A4B}>) 87: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F017A3}> #<unavailable argument>) 88: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F017A3}>) 89: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F017A3}>) 90: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 91: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 92: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 93: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 94: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 95: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 96: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 97: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01413}>) 98: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01413}>) 99: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F0169B}>) 100: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F0169B}>) 101: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01413}> #<unavailable argument>) 102: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01413}>) 103: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F01413}>) 104: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 105: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 106: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 107: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 108: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 109: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 110: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 111: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F010A3}>) 112: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F010A3}>) 113: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F0130B}>) 114: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F0130B}>) 115: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F010A3}> #<unavailable argument>) 116: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F010A3}>) 117: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F010A3}>) 118: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 119: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 120: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 121: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 122: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 123: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 124: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 125: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00D53}>) 126: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00D53}>) 127: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F00F9B}>) 128: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F00F9B}>) 129: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00D53}> #<unavailable argument>) 130: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00D53}>) 131: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00D53}>) 132: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 133: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 134: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 135: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 136: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 137: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 138: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 139: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00653}>) 140: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00653}>) 141: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F008AB}>) 142: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008F008AB}>) 143: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00653}> #<unavailable argument>) 144: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00653}>) 145: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F00653}>) 146: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 147: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 148: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 149: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 150: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 151: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 152: (FORCE-OUTPUT #<TWO-WAY-STREAM :INPUT-STREAM #<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}> :OUTPUT-STREAM #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>>) 153: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008EFF353}>) 154: (SWANK:INVOKE-SLIME-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008EFF353}>) 155: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008EFFACB}>) 156: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK:SWANK-DEBUGGER-HOOK) {1008EFFACB}>) 157: (SWANK:SWANK-DEBUGGER-HOOK #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008EFF353}> #<unavailable argument>) 158: (SB-DEBUG::RUN-HOOK *DEBUGGER-HOOK* #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008EFF353}>) 159: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008EFF353}>) 160: (ERROR "Recursive lock attempt ~S." #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 161: (SB-THREAD::%TRY-MUTEX #<unavailable argument> #<unavailable argument>) 162: (SB-THREAD:GET-MUTEX #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL NIL) 163: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 164: (SB-THREAD::CALL-WITH-MUTEX #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK :IN STREAM-FORCE-OUTPUT) {6A6C17B}> #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> NIL) 165: ((SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT :AROUND (SWANK-BACKEND::SLIME-OUTPUT-STREAM)) #<unused argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD STREAM-FORCE-OUTPUT #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::CONSTANT-FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) :ARG-INFO (1) :VALUE NIL) :ARG-INFO (1)) #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 166: (FORCE-OUTPUT #<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) 167: (FLEXI-STREAMS-TEST::COMPARE-FILES :VERBOSE NIL) 168: (FLEXI-STREAMS-TEST:RUN-ALL-TESTS :VERBOSE NIL) 169: ((SB-PCL::EMF ASDF:PERFORM) #<unavailable argument> #<unavailable argument> #<ASDF:TEST-OP NIL {10033BB493}> #<ASDF:SYSTEM "flexi-streams">) 170: ((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS :AROUND (T T)) #<unavailable argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS #)> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2)) #<ASDF:TEST-OP NIL {10033BB493}> #<ASDF:SYSTEM "flexi-streams">) 171: ((LAMBDA NIL :IN ASDF::PERFORM-PLAN)) 172: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN SB-C::%WITH-COMPILATION-UNIT)) 173: ((FLET #:WITHOUT-INTERRUPTS-BODY-89549 :IN SB-THREAD::CALL-WITH-RECURSIVE-LOCK)) 174: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK :IN SB-C::%WITH-COMPILATION-UNIT) {6A6C85B}> #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>>) 175: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT)) 176: ((SB-PCL::FAST-METHOD ASDF::PERFORM-PLAN (LIST)) #<unused argument> #<unused argument> ((#1=#<ASDF:LOAD-OP NIL {1003B45813}> . #<ASDF:CL-SOURCE-FILE #2="trivial-gray-streams" "package">) (#1# . #<ASDF:CL-SOURCE-FILE #2# "mixin">) (#1# . #<ASDF:SYSTEM #2#>) (#3=#<ASDF:LOAD-OP NIL {100396A773}> . #4=#<ASDF:CL-SOURCE-FILE #5="flexi-streams" "packages">) (#3# . #6=#<ASDF:CL-SOURCE-FILE #5# "mapping">) (#3# . #7=#<ASDF:CL-SOURCE-FILE #5# "ascii">) (#3# . #8=#<ASDF:CL-SOURCE-FILE #5# "koi8-r">) (#3# . #9=#<ASDF:CL-SOURCE-FILE #5# "iso-8859">) (#3# . #10=#<ASDF:CL-SOURCE-FILE #5# "code-pages">) (#3# . #11=#<ASDF:CL-SOURCE-FILE #5# "specials">) (#3# . #12=#<ASDF:CL-SOURCE-FILE #5# "util">) (#3# . #13=#<ASDF:CL-SOURCE-FILE #5# "conditions">) (#3# . #14=#<ASDF:CL-SOURCE-FILE #5# "external-format">) (#3# . #15=#<ASDF:CL-SOURCE-FILE #5# "length">) (#3# . #16=#<ASDF:CL-SOURCE-FILE #5# "encode">) (#3# . #17=#<ASDF:CL-SOURCE-FILE #5# "decode">) (#3# . #18=#<ASDF:CL-SOURCE-FILE #5# "in-memory">) (#3# . #19=#<ASDF:CL-SOURCE-FILE #5# "stream">) (#3# . #20=#<ASDF:CL-SOURCE-FILE #5# "output">) (#3# . #21=#<ASDF:CL-SOURCE-FILE #5# "input">) (#3# . #22=#<ASDF:CL-SOURCE-FILE #5# "io">) (#3# . #23=#<ASDF:CL-SOURCE-FILE #5# "strings">) (#3# . #24=#<ASDF:SYSTEM #5#>) (#25=#<ASDF:TEST-OP NIL {10033BB493}> . #4#) (#25# . #6#) (#25# . #7#) (#25# . #8#) (#25# . #9#) (#25# . #10#) (#25# . #11#) (#25# . #12#) (#25# . #13#) (#25# . #14#) (#25# . #15#) (#25# . #16#) (#25# . #17#) (#25# . #18#) (#25# . #19#) (#25# . #20#) (#25# . #21#) (#25# . #22#) (#25# . #23#) (#25# . #24#))) 177: ((LAMBDA NIL :IN ASDF:OPERATE)) 178: (ASDF::CALL-WITH-SYSTEM-DEFINITIONS #<CLOSURE (LAMBDA NIL :IN ASDF:OPERATE) {10033BAA0B}>) 179: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unused argument> #<unused argument> ASDF:TEST-OP FLEXI-STREAMS) 180: ((SB-PCL::EMF ASDF:OPERATE) #<unused argument> #<unused argument> ASDF:TEST-OP FLEXI-STREAMS) 181: (ASDF:TEST-SYSTEM FLEXI-STREAMS) 182: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF:TEST-SYSTEM (QUOTE FLEXI-STREAMS)) #<NULL-LEXENV>) 183: (EVAL (ASDF:TEST-SYSTEM (QUOTE FLEXI-STREAMS))) 184: (SWANK::EVAL-REGION "(asdf:test-system 'flexi-streams) ") 185: ((LAMBDA NIL :IN SWANK::REPL-EVAL)) 186: (SWANK::TRACK-PACKAGE #<CLOSURE (LAMBDA NIL :IN SWANK::REPL-EVAL) {10033BA50B}>) 187: (SWANK::CALL-WITH-RETRY-RESTART "Retry SLIME REPL evaluation request." #<CLOSURE (LAMBDA NIL :IN SWANK::REPL-EVAL) {10033BA42B}>) 188: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<CLOSURE (LAMBDA NIL :IN SWANK::REPL-EVAL) {10033BA3FB}>) 189: (SWANK::REPL-EVAL "(asdf:test-system 'flexi-streams) ") 190: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(asdf:test-system 'flexi-streams) ") #<NULL-LEXENV>) 191: (EVAL (SWANK:LISTENER-EVAL "(asdf:test-system 'flexi-streams) ")) 192: (SWANK:EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(asdf:test-system 'flexi-streams) ") "COMMON-LISP-USER" 4) 193: (SWANK::PROCESS-REQUESTS NIL) 194: ((LAMBDA NIL :IN SWANK::HANDLE-REQUESTS)) 195: ((LAMBDA NIL :IN SWANK::HANDLE-REQUESTS)) 196: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK::HANDLE-REQUESTS) {10033B811B}>) 197: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/sly/.emacs.d/site-lisp/slime/swank-sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK::HANDLE-REQUESTS) {10033B811B}>) 198: (SWANK::CALL-WITH-BINDINGS ((*STANDARD-OUTPUT* . #1=#<SWANK-BACKEND::SLIME-OUTPUT-STREAM {1003394623}>) (*STANDARD-INPUT* . #2=#<SWANK-BACKEND::SLIME-INPUT-STREAM {1003280B23}>) (*TRACE-OUTPUT* . #1#) (*ERROR-OUTPUT* . #1#) (*DEBUG-IO* . #3=#<TWO-WAY-STREAM :INPUT-STREAM #2# :OUTPUT-STREAM #1#>) (*QUERY-IO* . #3#) (*TERMINAL-IO* . #3#)) #<CLOSURE (LAMBDA NIL :IN SWANK::HANDLE-REQUESTS) {10033B813B}>) 199: (SWANK::HANDLE-REQUESTS #<SWANK::MULTITHREADED-CONNECTION {1009D824D3}> NIL) 200: ((FLET #:WITHOUT-INTERRUPTS-BODY-238909 :IN SB-THREAD:MAKE-THREAD)) 201: ((FLET SB-THREAD::WITH-MUTEX-THUNK :IN SB-THREAD:MAKE-THREAD)) 202: ((FLET #:WITHOUT-INTERRUPTS-BODY-89520 :IN SB-THREAD::CALL-WITH-MUTEX)) 203: (SB-THREAD::CALL-WITH-MUTEX #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK :IN SB-THREAD:MAKE-THREAD) {6A6DCCB}> #<SB-THREAD:MUTEX "thread result lock" owner: #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}>> #<SB-THREAD:THREAD "repl-thread" RUNNING {10033B0083}> T) 204: (SB-THREAD::INITIAL-THREAD-FUNCTION) 205: ("foreign function: call_into_lisp") 206: ("foreign function: new_thread_trampoline") 207: ("foreign function: _pthread_start") 208: ("foreign function: thread_start") ; Evaluation aborted on #<SIMPLE-ERROR "Recursive lock attempt ~S." {1008F02B53}>. CL-USER>
On May 11, 2012, at 2:44 AM, Helmut Eller wrote:
Index: slime/ChangeLog diff -u slime/ChangeLog:1.2336 slime/ChangeLog:1.2338 --- slime/ChangeLog:1.2336 Sun May 6 23:10:50 2012 +++ slime/ChangeLog Thu May 10 23:52:18 2012 @@ -1,3 +1,14 @@ +2012-05-11 Helmut Eller heller@common-lisp.net
- swank-sbcl.lisp (stream-force-output): Don't use
- with-deadline. Grab the world-lock instead.
- (condition-timed-wait): Use the :timeout argument for real.
+2012-05-11 Helmut Eller heller@common-lisp.net
- swank-backend.lisp (call-with-io-timeout): Not used. Deleted.
- swank-sbcl.lisp (call-with-io-timeout): Deleted.
2012-05-07 Helmut Eller heller@common-lisp.net
Ignore linebreaks for the macroexpand test.
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
On 11 May 2012 12:44, Helmut Eller heller@common-lisp.net wrote:
- * swank-sbcl.lisp (stream-force-output): Don't use
- with-deadline. Grab the world-lock instead.
What's the logic behind this change? This will break.
Cheers,
-- nikodemus
* Nikodemus Siivola [2012-05-11 16:45] writes:
On 11 May 2012 12:44, Helmut Eller heller@common-lisp.net wrote:
- * swank-sbcl.lisp (stream-force-output): Don't use
- with-deadline. Grab the world-lock instead.
What's the logic behind this change?
The purpose is to get rid of WITH-DEADLINE.
This will break.
We will see.
Helmut
On 11 May 2012 21:09, Helmut Eller heller@common-lisp.net wrote:
What's the logic behind this change?
The purpose is to get rid of WITH-DEADLINE.
This seems overly pedantic to me.
You may not like the API, but unlike WITH-WORLD-LOCK it is actually a supported API It's one of the three constructs that should almost never be used along with WITHOUT-GCING and WITH-TIMEOUT.
Unless it made the sources too ugly, I would not hesitate to rename it %%WITH-WORLD-LOCK-INTERNAL-DONT-USE-AND-AVOID-EVEN-INSIDE-SBCL...
Cheers,
-- Nikodemus
* Nikodemus Siivola [2012-05-13 08:39] writes:
On 11 May 2012 21:09, Helmut Eller heller@common-lisp.net wrote:
What's the logic behind this change?
The purpose is to get rid of WITH-DEADLINE.
This seems overly pedantic to me.
You may not like the API,
Henceforth, I shall use all the APIs that I don't like, sir.
but unlike WITH-WORLD-LOCK it is actually a supported API
As well "supported" as the wonderful and thread-safe method dispatching. How long is the non-problem with the dispatch caches known? Months or years? When, if ever, will it be fixed? Ah I know: wishing for thread-safe dispatch caches is overly pedantic. Certainly it's more honorable to defend WITH-DEADLINE than to fix dispatch caches.
It's one of the three constructs that should almost never be used along with WITHOUT-GCING and WITH-TIMEOUT.
What should not be used: WITH-DEADLINE or WITH-WORLD-LOCK? Obviously WITH-WORLD-LOCK is one of the three bad guys. Unless we can't count, WITH-DEADLINE should be used gratuitously, or not.
Unless it made the sources too ugly, I would not hesitate to rename it %%WITH-WORLD-LOCK-INTERNAL-DONT-USE-AND-AVOID-EVEN-INSIDE-SBCL...
Sir shouldn't hesitate so long to put out an SBCL version with those damn dispatch caches fixed.
Helmut
On 13 May 2012 19:58, Helmut Eller heller@common-lisp.net wrote:
What should not be used: WITH-DEADLINE or WITH-WORLD-LOCK? Obviously
WITH-DEADLINE should be used, IMO. I don't quite follow what you consider to be the problem with it.
The reason grabbing WITH-WORLD-LOCK is bad is because doing that creates new places where things can deadlock.
When we finally get rid of the world lock around (or hack CLOS dispatch to use evaluated functions when the compiler is taken), every single place where world lock is grabbed is still a potential deadlock: world lock is bad (like any other huge lock) not just because it kilsl parallelism, but because reasoning about lock ordering becomes essentially impossible. If a system has one lock lock big enough that arbitrary code can run inside means that's bad but ... survivable. If there are two or more such locks, then those locks can't really have a proper ordering between them, and you get deadlocks.
The second reason WITH-WORLD-LOCK is bad is that I'm trying get rid of it by breaking it up into smaller locks. So swank-sbcl.lisp will need more #+magic -- not terrible, but not ideal either.
Cheers,
-- Nikodemus
* Nikodemus Siivola [2012-05-13 19:58] writes:
On 13 May 2012 19:58, Helmut Eller heller@common-lisp.net wrote:
What should not be used: WITH-DEADLINE or WITH-WORLD-LOCK? Obviously
WITH-DEADLINE should be used, IMO. I don't quite follow what you consider to be the problem with it.
If a timeout occurs in the middle of a non-atomic code sequence, some heap object can be in a non-consistent state. E.g. the buffer contents gets sent to Emacs before resetting the buffer index; if the timeout occurs before updating the index, some output can be sent twice.
Helmut