[armedbear-devel] Implementing non local exits in a runtime with structured exception handling

Matthew D. Swank akopa at charter.net
Thu Oct 15 05:46:28 UTC 2009

I am playing with a lisp dialect (at least in my head) that I am
thinking about implementing on the CLR.  Like Java the CLR requires
jumps across method call boundaries to be done using the exception
handling mechanism. 

If I have code like the following in abcl:

(block foo 
  (flet ((callback () (return-from foo t)))
    (something-that-calls-into-java #'callback)
    ... stuff that won't happen if the callback is invoked))

And the plain old Java I'm calling into is pathological and catches the
exception raised by calling the callback without re-throwing it, the
non-local return never happens.  Is that correct?   

If so, is there no way around it?

"You do not really understand something unless you can explain it to
your grandmother." -- Albert Einstein.

More information about the armedbear-devel mailing list