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

Re: [Scheme-reports] Formal Comment: clarify the semantics of the dynamic features

On Thu, Jun 28, 2012 at 4:21 PM, Richard Kelsey <kelsey@x> wrote:
>   Date: Thu, 28 Jun 2012 17:55:54 -0400
>   From: John Cowan <cowan@x>
>   Richard Kelsey scripsit:
>   > For example, dynamic bindings are described using the term 'dynamic
>   > environment' which is itself not defined.  There is a paragraph on
>   > how dynamic bindings interact with threads, which are not mentioned
>   > anywhere else in the report, but nothing is said about how dynamic
>   > bindings interact with call/cc or dynamic-wind.
>   The intention is that dynamic bindings are implemented either directly
>   by dynamic-wind, or using the same underlying mechanisms.  Perhaps the
>   report should say "as if by dynamic-wind"?
> The report should describe the semantics of dynamic variables, not one
> particular implementation.

The report describes the semantics in terms of dynamic extent,
so the analogy to dynamic-wind seems appropriate.

We do need to be careful here, and the WG has not yet had
time to fully review the non-call/cc-based dynamic-binding
research pointed out by Oleg.

> I don't see how the R7RS dynamic variables would work with any thread
> package at all, portable or non-portable, that preserves the semantics
> of dynamic-wind.  You can't unwind and wind on context switch, so if
> you have threads you can't use dynamic-wind or any other shallow-binding
> mechanism to implement dynamic variables.  I think you have to use deep
> binding.
>   As the SRFI notes, this is currently done in various ways.
> Which SRFI?

SRFI-39 on which the R7RS parameters were based.

>   > - Ideally, the dynamic environment and dynamic-wind would be included
>   >   in the formal semantics.
>   If anyone has a proposal here, it might be a Good Thing, but I wouldn't
>   know the difference between up and Tuesday when it comes to the formal
>   semantics, so I must decline either to write it or to edit it.
>   Editorial tickets #427 and #428 created.  Ballot ticket #429 for new
>   formal semantics created.  If nobody steps up to do this and review it
>   before the last ballot, it will be closed.
> If the WG makes changes to the language that require changes to the
> formal semantics, then they need to change the formal semantics.  That
> seems like part of the job.

The formal semantics only covered a small subset of the
language to begin with.  The change in question is equivalent
to adding a formal semantics for dynamic-wind, which was
already missing from R5RS.  I agree, of course, that we should
fix this, or consider using (a subset of) the operational semantics
from R6RS (which again is a subset of the language but at least
has dynamic-wind).


Scheme-reports mailing list