[slime-devel] How to support a new interpreter?

Helmut Eller heller at common-lisp.net
Thu Jul 23 18:13:50 UTC 2009


* Tobias C. Rittweiler [2009-07-23 19:10+0200] writes:

> Yeah true, but it seems that Java additionally provides a rather
> complete Debugger API which includes an ExceptionEvent that is invoked at
> the place an exception is thrown, and where you can get at StackFrame
> objects.

Yes, I know, but Clojure's Swank doesn't use JDI.  And of course,
cloning the stack on every throw would be slow; too slow for production
use.

[At the point of throw, JDI cannot decide whether the exception will be
handled - for JDI try-finally is the same as try-catch - so it's
necessary to let throw continue to see who is going to handle the
exception.  Despite that, the idiom: try {..} catch (Throwable e) {..}
is not exactly uncommon in Java.  The StackFrame mirror becomes useless
after unwinding the real stack, so it would be necessary to copy the
backtrace before unwinding.]

JDI more or less assumes that the debugger sets breakpoints before the
error occurs.  Ironically, Slime doesn't even support breakpoints
(despite BREAK).

Helmut





More information about the slime-devel mailing list