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