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 #353

cc


    

changetime

2012-10-07 04:35:07

component

WG1 - Core

description

For ease of implementation, I think we should make it an error for an imported identifier to be referenced or defined in a library before the library declaration that imports it.  This allows strict left-to-right processing of library declarations, with no need to delay processing till the end of the library.

Therefore, this would be an error (but still permitted as an extension in Schemes that can easily provide it):

{{{
(module
  (begin (define x y))
  (import (library defining y))
}}}

This would necessitate replacing the penultimate paragraph of section 5.5.1 with:

One possible implementation of libraries is as follows:  After all `cond-expand` library declarations are expanded, a new environment is constructed for the library consisting of all imported bindings. The expressions and declarations from all `begin`, `include`, and `include-ci` declarations are expanded in that environment in the order in which they occur in the library declaration.  Alternatively, `cond-expand` and `import` declarations may be processed in left to right order interspersed with the processing of expressions and declarations, with the environment growing as imported bindings are added to it by each `import` declaration.

id

353

keywords


    

milestone


    

owner

cowan

priority

major

reporter

cowan

resolution

fixed

severity


    

status

closed

summary

No use before import in libraries

time

2012-02-26 18:25:44

type

defect

Changes

Change at time 2012-10-07 04:35:07

author

cowan

field

comment

newvalue


    

oldvalue

4

raw-time

1349559307890093

ticket

353

time

2012-10-07 04:35:07

Change at time 2012-10-07 04:35:07

author

cowan

field

resolution

newvalue

fixed

oldvalue


    

raw-time

1349559307890093

ticket

353

time

2012-10-07 04:35:07

Change at time 2012-10-07 04:35:07

author

cowan

field

status

newvalue

closed

oldvalue

writing

raw-time

1349559307890093

ticket

353

time

2012-10-07 04:35:07

Change at time 2012-08-27 06:52:48

author

cowan

field

comment

newvalue


    

oldvalue

3

raw-time

1346025168899393

ticket

353

time

2012-08-27 06:52:48

Change at time 2012-08-27 06:52:48

author

cowan

field

owner

newvalue

cowan

oldvalue

alexshinn

raw-time

1346025168899393

ticket

353

time

2012-08-27 06:52:48

Change at time 2012-08-27 06:52:48

author

cowan

field

status

newvalue

writing

oldvalue

decided

raw-time

1346025168899393

ticket

353

time

2012-08-27 06:52:48

Change at time 2012-08-26 23:00:57

author

cowan

field

comment

newvalue

WG1 decided to adopt this limitation.

oldvalue

2

raw-time

1345996857715176

ticket

353

time

2012-08-26 23:00:57

Change at time 2012-08-26 23:00:57

author

cowan

field

status

newvalue

decided

oldvalue

new

raw-time

1345996857715176

ticket

353

time

2012-08-26 23:00:57

Change at time 2012-06-12 00:19:26

author

cowan

field

comment

newvalue

Incremental processing is the way Chicken modules (which are just name scopes) work today, and it seems a plausible approach to allow.

oldvalue

1

raw-time

1339435166039592

ticket

353

time

2012-06-12 00:19:26