This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Ticket 431: Formal Comment: continuation used when 'guard' re-raises an exception

2012-07-02 05:31:22
WG1 - Core
alexshinn
major
cowan
fixed
source
closed
2012-07-02 02:22:13
defect

Submitter's name: Richard Kelsey

Submitter's email: kelsey at s48.org

Relevant draft: r7rs draft 6

Type: clarification

Priority: minor

Relevant section of draft: Derived expressions

Summary: The continuation used when 'guard' re-raises an exception isn't specified.

Page 19, Exception Handling (Handling should be lower case, by the way)

"If every cond's test evaluates to #f and there is no else clause, then raise-continuable is re-invoked on the raised object within the dynamic environment of the original call to raise except that the current exception handler is that of the guard expression."

I think that the intent is that the raise-continuable have the same continuation as the handler installed by guard, but it doesn't actually say this. Also, the original call might have been raise or raise-continuable. I suggest changing this to:

"If every cond's test evaluates to #f and there is no else clause, then raise-continuable is invoked on the raised object with the continuation and dynamic environment of the installed exception handler's invocation, except that the current exception handler is that of the guard expression."

resolutionfixed
statusnewclosed

The reference to raise-continuable was apparently an editorial error, and has been changed to raise, which is what R6RS (and SRFI 34) say.