Helmut Eller heller@common-lisp.net writes:
For the debugger your interpreter more-or-less has to follow the CL model where the debugger runs "on-top" of the error, i.e. the stack must be alive. It's quite a miracle how the Clojure people managed to adapt the JVM exception model to Slime's expectations.
Java puts the backtrace in the Exception object that is thrown. So while the stack is actually unwinded, all the information is there for the Swank server to process the user requests from Slime like showing frame locals etc. (It can't support restarting a computation, of course.)
-T.