[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