[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Fwd: Comments on draft 6 about call/cc
Andy Wingo scripsit:
> 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.
An exceptional exit is simply a non-local exit from an exception handler.
It's not particularly obvious when this is happening.
> 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.
`Guard` works by capturing its continuation and setting a handler that
captures the continuation at the point of raise. The guard continuation
is then restored, which gives us the outer dynamic environment, and the
cond-clauses are executed. If we fall off the end of the cond-clauses,
the point-of-raise continuation is restored (giving us the inner dynamic
environment) and the condition object is reraised.
--
That you can cover for the plentiful John Cowan
and often gaping errors, misconstruals, http://www.ccil.org/~cowan
and disinformation in your posts cowan@x
through sheer volume -- that is another misconception. --Mike to Peter
_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports