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

Re: raise should not change continuation

This page is part of the web mail archives of SRFI 34 from before July 7th, 2015. The new archives for SRFI 34 contain all messages, not just those from before July 7th, 2015.

>>>>> "Marc" == Marc Feeley <feeley@xxxxxxxxxxxxxxxx> writes:

>> (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.

Marc> I'm sorry to say, but this definition is inconsistent with SRFI 18
Marc> because of this section in SRFI 18:

Marc>  Primitives and exceptions
Marc>    When one of the primitives defined in this SRFI raises an exception
Marc>    defined in this SRFI, the exception handler is called with the same
Marc>    continuation as the primitive (i.e. it is a tail call to the
Marc>    exception handler). This requirement avoids having to use
Marc>    call-with-current-continuation to get the same effect in some
Marc>    situations.

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

Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla