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

Re: raise should not change continuation



>>>>> "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
unspecified.

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