A while ago I posted this patch:

   http://lists.gnu.org/archive/html/guile-devel/2014-08/msg00058.html

No-one had anything to say about it. But I would like to know what to do if
I want my code to work with the next release of Guile.

I think in retrospect this patch is too much. A better patch would leave
the API alone, and just remove the existing check for the current throw
handlers, and make the documentation clearer about exactly what "the
dynamic context of the throw" really means.

If the catcher wants to 'fall through' to the main handler from the
pre-unwind-handler, then she can just return from the pre-unwind-handler.
So what is the function this check provides?

If we remove the check, then the dynamic context of the throw, in which the
pre-unwind-handler is called, includes the throw-handlers in effect at the
time of the throw., So if you throw the same exception from within the
pre-unwind-handler, you re-enter it.

What I am proposing is a change to the actual semantics implemented, but it
is arguably not a change to the semantics documented. Or have I missed the
clearer definition somewhere else in the manual of what "the dynamic
context of the throw" means, and which makes it clear that this is
everything but the throw handlers in effect at the time?!

Ian

Reply via email to