[plt-scheme] R6RS exception handling and dynamic extent [was: SXML for R6RS]

From: Sam TH (samth at ccs.neu.edu)
Date: Fri Jul 11 11:25:13 EDT 2008

On Fri, Jul 11, 2008 at 11:16 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> At Fri, 11 Jul 2008 10:59:40 -0400, Felix Klock's PLT scheme proxy wrote:
>> Robby (cc'ing plt-scheme and the rest of the people involved in the
>> discussion)-
>>
>> On Jul 11, 2008, at 10:49 AM, Robby Findler wrote:
>>
>> > On Fri, Jul 11, 2008 at 9:42 AM, Derick Eddington
>> > <derick.eddington at gmail.com> wrote:
>> >>>> Would it be possible to have guard just not jump out,
>> >>>
>> >>> It should jump out for the same reasons as `with-handlers', right?
>> >>
>> >> What are those reasons?  I've never known.
>> >
>> > One reason is that loops that involve a with-handlers won't be
>> > tail-recursive (unless you jump out yourself in the handler of
>> > course).
>> >
>> > Something like this:
>> >
>> > (define (keep-trying)
>> >  (with-handlers ([whatever? (lambda () ... (keep-trying))])
>> >    ...))
>>
>> That example seems like it justifies jumping out before the evaluation
>> of the <expression> ... of each <cond clause> of the guard
>>
>> But does it justify such jumping before the evaluation of the <test>
>> of each <cond clause> of the guard?
>>
>> I would think the <test> expression would be the point of interest
>> when it comes to continuable exceptions...
>
> I wish I could remember more on this one. I think we tried, early on,
> evaluating tests in the continuation of the raise, but we abandoned
> that possibility. Maybe it was just that we gave up on using the same
> mechanism for continuable and non-continuable exceptions, and so it
> seemed simpler and more consistent (in the way you suggest) to jump out
> for the tests, too. Or maybe there was a more direct reason, but I
> don't remember it.

By 'we' in this description, do you mean the PLT Scheme developers, or
the R6RS editors?

Thanks,
-- 
sam th
samth at ccs.neu.edu


Posted on the users mailing list.