[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: raise should not change continuation

> Marc> In SRFI 18 the exception handler must be called with the same
> Marc> continuation as "raise" (and consequently the same dynamic
> Marc> environment and exception handler).
> Why is this inconsistent?  SRFI 34 doesn't specify a behavior
> different from that of SRFI 18.  It merely leaves part of the behavior
> unspecified.

No, SRFI 34 says:

   (raise obj) Invokes the current exception handler on obj . The
   handler is called in the dynamic environment of the call to raise ,

   **** except that the current exception handler is that in place for
   the call to with-exception-handler that installed the handler being
   called. The handler's continuation is otherwise unspecified. ****

According to this, the continuation of the exception handler can't
be the ***same*** as the continuation of raise because the dynamic
environment is different (recall that the dynamic environment is
part of the continuation).