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.

Source for ticket #426

cc


    

changetime

2012-10-12 10:15:25

component

WG1 - Core

description

Submitter's name: Richard Kelsey

Submitter's email: kelsey at s48.org

Relevant draft: r7rs draft 6

Type: clarification

Priority: major

Relevant section of draft: Derived expressions, control features, exceptions

Summary: The descriptions of the dynamic features need to be clearer and more consistent.

There are now three separate features that relate to the dynamic context: `dynamic-wind`, dynamic bindings, and exception handling.  These need to be defined in some unified way and their interaction described.

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`.

Suggestion:

 * Add a new section 3.6 that includes the definition of 'dynamic extent' currently in section 6.10 and a definition of 'dynamic environment'.  Mention that the dynamic environment is captured by `call/cc`.  Say something about threads, if necessary.

 * Remove the paragraph about threads from the section on dynamic bindings.

 * In the description of `dynamic-wind`, say that the dynamic environment that is in place when the ''before'' and ''after'' thunks are called is the the dynamic environment of the call to `dynamic-wind`.

 * 6.11 paragraph 2; change "The system implicitly maintains a current exception handler" to "The system implicitly maintains a current exception handler in the dynamic environment".

 * Description of `with-exception-handler`: change "''Handler'' is installed as the current exception handler for the dynamic extent (as determined by `dynamic-wind`) of the invocation of ''thunk''" to "''Handler'' is installed as the current exception handler in the dynamic environment used for the invocation of ''thunk''".

 * The description of `raise `talks about the dynamic extent of continuations, but it is calls that have a dynamic extent, not continuations.  Rephrase it in terms of continuations and dynamic environments.

 * The description of `raise-continuable` also needs to be rephrased in terms of continuations and dynamic environments.

 * Ideally, the dynamic environment and `dynamic-wind` would be included in the formal semantics.

id

426

keywords


    

milestone


    

owner

cowan

priority

major

reporter

cowan

resolution

fixed

severity


    

status

closed

summary

Formal Comment: The descriptions of the dynamic features need to be clearer  and more consistent

time

2012-06-29 04:39:47

type

defect

Changes

Change at time 2012-10-12 10:15:25

author

cowan

field

comment

newvalue

Included detail changes, but no new section.

oldvalue

2

raw-time

1350011725370785

ticket

426

time

2012-10-12 10:15:25

Change at time 2012-10-12 10:15:25

author

cowan

field

resolution

newvalue

fixed

oldvalue


    

raw-time

1350011725370785

ticket

426

time

2012-10-12 10:15:25

Change at time 2012-10-12 10:15:25

author

cowan

field

status

newvalue

closed

oldvalue

accepted

raw-time

1350011725370785

ticket

426

time

2012-10-12 10:15:25

Change at time 2012-07-02 09:46:11

author

cowan

field

comment

newvalue


    

oldvalue

1

raw-time

1341197171716044

ticket

426

time

2012-07-02 09:46:11

Change at time 2012-07-02 09:46:11

author

cowan

field

owner

newvalue

cowan

oldvalue

alexshinn

raw-time

1341197171716044

ticket

426

time

2012-07-02 09:46:11

Change at time 2012-07-02 09:46:11

author

cowan

field

status

newvalue

accepted

oldvalue

new

raw-time

1341197171716044

ticket

426

time

2012-07-02 09:46:11