[R6RS] Semantics of `raise'

Michael Sperber sperber at informatik.uni-tuebingen.de
Mon Mar 13 11:16:03 EST 2006


Here's what I currently take to be the result of our discussion on the
semantics of `raise':

(raise obj)
   Raises a non-continuable exception by invoking the current
   exception handler on obj. The handler is called with a continuation
   whose dynamic environment is that of the call to `raise', except
   that the current exception handler is the one that was in place for
   the call to `with-exception-handler' that installed the handler
   being called.  The continuation of the handler will raise a
   non-continuable `&non-continuable' exception.

(raise-continuable obj)
   Raises a continuable exception by invoking the current exception
   handler on obj. The handler is called with a continuation that is
   equivalent to the continuation of the call to `raise-continuable'
   with the exception of the the current exception handler, which is
   the one that was in place for the call to `with-exception-handler'
   that installed the handler being called.

Both versions are consistent with the specification of `raise' in SRFI
34, but nail down the unspecified part in different ways.  The
definition of `raise' here is essentially the variant suggested by the
reference implementation supplied with SRFI 34.

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



More information about the R6RS mailing list