[slime-devel] Inferior Lisp won't die bug
David Steuber
david at david-steuber.com
Sun May 2 00:25:07 UTC 2004
This is a case of unexpected behavior. It could also be a nasty case
of user error. It's also possible that this is an SBCL bug. If that
is the case, I can report the issue on sbcl-devel. I don't want to
cross post so I'm trying here first. What I expected was for the
inferior lisp process to shut down.
Info:
david at vega:~
$ uname -a
Linux vega 2.6.5-k7 #1 SMP Thu Apr 29 10:01:49 EDT 2004 i686 GNU/Linux
; SLIME 2004-05-01
CL-USER> (loop for i from 1 to 10 collect (* i i)
)
(1 4 9 16 25 36 49 64 81 100)
CL-USER> (quit)
; Evaluation aborted
Looks good so far, but...
*inferior-lisp*
This is SBCL 0.8.10.4, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
; loading system definition from
; #P"/home/david/usr/lib/sbcl/systems/sb-bsd-sockets.asd" into
; #<PACKAGE "ASDF2757">
; registering #<SYSTEM SB-BSD-SOCKETS {9912B21}> as SB-BSD-SOCKETS
; registering #<SYSTEM SB-BSD-SOCKETS-TESTS {9D71FB1}> as SB-BSD-SOCKETS-TESTS
; loading system definition from
; #P"/home/david/usr/lib/sbcl/systems/sb-posix.asd" into #<PACKAGE "ASDF2857">
; registering #<SYSTEM SB-POSIX {985B089}> as SB-POSIX
; registering #<SYSTEM SB-POSIX-TESTS {99A0689}> as SB-POSIX-TESTS
* STYLE-WARNING: implicitly creating new generic function STREAM-READ-CHAR-NO-HANG
STYLE-WARNING:
implicitly creating new generic function STREAM-READ-CHAR-WILL-HANG-P
WARNING: discarding unsupported DOCUMENTATION of type SYMBOL for object SYMBOL
WARNING: These Swank interfaces are unimplemented:
(DISASSEMBLE-FRAME LIST-CALLEES
LIST-CALLERS
PROFILE-PACKAGE
RESTART-FRAME
WHO-BINDS
WHO-CALLS
WHO-MACROEXPANDS
WHO-REFERENCES
WHO-SETS
WHO-SPECIALIZES)
T
* ;; Swank started at port: 32898.
32898
* (quit)
debugger invoked on a SIMPLE-ERROR in thread 24022:
Syscall interrupt_thread failed: No such process
You can type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
(no restarts: If you didn't do this on purpose, please report it as a bug.)
(SB-THREAD:INTERRUPT-THREAD 2 24026 QUIT)[:EXTERNAL]
0] (sb-ext:quit)
debugger invoked on a SB-INT:SIMPLE-CONTROL-ERROR in thread 24022:
attempt to THROW to a tag that does not exist: SB-IMPL::%END-OF-THE-WORLD
You can type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Reduce debugger level (to debug level 1).
(SB-KERNEL::UNSEEN-THROW-TAG-ERROR-HANDLER
4
#<unavailable argument>
#.(SB-SYS:INT-SAP #X40386BF8)
#<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X403868C8 :TYPE (*
(STRUCT
SB-VM::OS-CONTEXT-T-STRUCT))>
(142))[:EXTERNAL]
0[2]
After this, I can't do M-x slime again and have it work. Not even if
I do M-x slime-disconnect.
Doing the perhaps friendlier M-x slime-disconnect to exit a session
doesn't kill the inferior lisp process either:
*inferior-lisp*
0[2] * ;; Swank started at port: 32907.
32907
* ;; Connection to Emacs lost.
;; [end of file on #<FILE-STREAM for "a constant string" {9790839}>]
(quit)
debugger invoked on a SIMPLE-ERROR in thread 24147:
Syscall interrupt_thread failed: No such process
You can type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
(no restarts: If you didn't do this on purpose, please report it as a bug.)
(SB-THREAD:INTERRUPT-THREAD 2 24150 QUIT)[:EXTERNAL]
0] (sb-ext:quit)
debugger invoked on a SB-INT:SIMPLE-CONTROL-ERROR in thread 24147:
attempt to THROW to a tag that does not exist: SB-IMPL::%END-OF-THE-WORLD
You can type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Reduce debugger level (to debug level 1).
(SB-KERNEL::UNSEEN-THROW-TAG-ERROR-HANDLER
4
#<unavailable argument>
#.(SB-SYS:INT-SAP #X40386BF8)
#<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X403868C8 :TYPE (*
(STRUCT
SB-VM::OS-CONTEXT-T-STRUCT))>
(142))[:EXTERNAL]
0[2]
;; Swank started at port: 32911.
32911
0[2]
That last Swank started message was from doing M-x slime.
If I do a M-x slime-disconnect and then a M-x slime-connect, I am
unable to reconnect to the inferior lisp process.
Typing (quit) in the repl is probably not a friendly thing to do. I
don't know how difficult it would be to know to close the inferior
lisp process so that it can be started fresh with another M-x slime
command. Perhaps an M-x slime-end-session or something would be a
nice thing? Or is the general preference to just exit Emacs and
start over?
--
I wouldn't mind the rat race so much if it wasn't for all the damn cats.
More information about the slime-devel
mailing list