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

Re: [Scheme-reports] Fwd: Comments on draft 6 about call/cc

On Mon 20 Feb 2012 16:48, John Cowan <cowan@x> writes:

> Peter Bex scripsit:
>> Also, I still am concerned about the fact that exceptions don't
>> implicitly cause [call-]with-* to close their associated port.

I agree with Peter here.

> It's precisely because there might be an escape procedure that we
> can't close the port; once closed, it can't be reopened as part of
> reinstituting the dynamic scope.

It is useful to distinguish exceptional exits from general nonlocal
control flow.  R7RS should specify that the port is closed on
exceptional exits, but not on other exits.  It is possible to implement
this with exception handlers.

> In any case, exceptions are handled within the dynamic environment of
> the raise (except that the current handler is reverted).

How does this square with `guard', whose cond clauses are specified as
being evaluated in the dynamic environment of the guard expression?  I
still think this is an error.  Giving intervening dynamic-wind
expressions a workout is not something I want to happen when exceptions
are raised.


Scheme-reports mailing list