[armedbear-ticket] [armedbear] #164: Cannot quit SLIME REPL
![](https://secure.gravatar.com/avatar/bfc2df4941985c6757bb9cc05a33e95f.jpg?s=120&d=mm&r=g)
#164: Cannot quit SLIME REPL ----------------------+----------------------------------------------------- Reporter: mevenson | Owner: somebody Type: defect | Status: new Priority: minor | Milestone: unscheduled Component: other | Version: 0.27 Keywords: slime | ----------------------+----------------------------------------------------- One cannot direct SLIME repl to quit as the EXT:QUIT and EXT:EXIT functions throw a ProcessingTerminated exception that has no corresponding handler under SLIME as the SLIME REPL doesn't actually use the ABCL repl code. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/164> armedbear <http://common-lisp.net/project/armedbear> armedbear
![](https://secure.gravatar.com/avatar/bfc2df4941985c6757bb9cc05a33e95f.jpg?s=120&d=mm&r=g)
#164: Cannot quit SLIME REPL ----------------------+----------------------------------------------------- Reporter: mevenson | Owner: somebody Type: defect | Status: new Priority: minor | Milestone: unscheduled Component: other | Version: 0.27 Keywords: slime | ----------------------+----------------------------------------------------- Comment(by mevenson): The following patch to SLIME probably works. {{{ --- a/swank-abcl.lisp Wed Jul 27 18:45:37 2011 +0200 +++ b/swank-abcl.lisp Mon Aug 22 10:36:34 2011 +0200 @@ -716,4 +716,4 @@ (threads:object-wait mbox 0.3)))))) (defimplementation quit-lisp () - (ext:exit)) + (jstatic "exit" "java.lang.System" 0)) }}} But the correct fix would be to figure out where to establish a proper handler so the EXT:QUIT routine would still be invoked from SLIME. This would allow code that depends on this condition being signaled to work, plus any future additional hooks. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/164#comment:1> armedbear <http://common-lisp.net/project/armedbear> armedbear
![](https://secure.gravatar.com/avatar/bfc2df4941985c6757bb9cc05a33e95f.jpg?s=120&d=mm&r=g)
But the correct fix would be to figure out where to establish a proper handler so the EXT:QUIT routine would still be invoked from SLIME. This would allow code that depends on this condition being signaled to work,
#164: Cannot quit SLIME REPL ----------------------+----------------------------------------------------- Reporter: mevenson | Owner: somebody Type: defect | Status: new Priority: minor | Milestone: unscheduled Component: other | Version: 0.27 Keywords: slime | ----------------------+----------------------------------------------------- Comment(by mevenson): Replying to [comment:1 mevenson]: plus any future additional hooks. Further analysis reveals that ProcessingTerminated is a pure Java-side construct so there is currently no way to hook in from Lisp, so that part of the concern is unfounded. Still, calling System.exit() seems really wrong. Need to reconsider the reason under which ProcessingTerminated exception was introduced. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/164#comment:2> armedbear <http://common-lisp.net/project/armedbear> armedbear
![](https://secure.gravatar.com/avatar/bfc2df4941985c6757bb9cc05a33e95f.jpg?s=120&d=mm&r=g)
#164: Cannot quit SLIME REPL -----------------------+---------------------------------------------------- Reporter: mevenson | Owner: somebody Type: defect | Status: closed Priority: minor | Milestone: unscheduled Component: other | Version: 0.27 Resolution: fixed | Keywords: slime -----------------------+---------------------------------------------------- Changes (by mevenson): * status: new => closed * resolution: => fixed Comment: Addressed in r13530 so that the SLIME patch isn't necessary. Centralizing such JVM exits in one place with perhaps a "Lisp process exiting" hook would perhaps be a reasonable feature. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/164#comment:3> armedbear <http://common-lisp.net/project/armedbear> armedbear
participants (1)
-
armedbear