Summary
R5RS evaluation environments still contain some non-std bindings
Metadata
- Id: 94872f4bf7d831ab617dd1078f0ad0e6cd10e820
- Trac id: 685
- Type: defect
- Reporter: felix
- Owner: felix
- Cc:
- Status: closed
- Component: expander
- Estimated difficulty:
- Resolution: fixed
- Priority: major
- Milestone: 4.9.0
- Version: 4.7.x
- Changetime: 2012-09-24 21:47:48 UTC
- Created: 2011-09-05 09:48:50 UTC
- Keywords: environments
Description
`scheme-report-environment` and `null-environment` contain some non-standard bindings, mainly because it was considered more convenient once (there is no need to do `(import chicken)` when one wants to use `begin-for-syntax`, for example.
The following extra bindings are available:
export begin-for-syntax module require-extension require-library cond-expand syntax reexport import-for-syntax import
`import`, `reexport` and `import-for-syntax` are from the initial macro environment and are always available in a fresh module.
Probably handled just by filtering out these extra bindings, but then no import of modules is possible. Perhaps keep the initial bindings or just the `import[[-for-syntax]|]`. Dunno. Need advice.
Changes and comments
[2011-09-05 10:01:14 UTC] ckeen wrote:
As I read the the R5RS document, you are allowed to add any other specifier for (scheme-report-environment N), so if your goal is to adhere to R5RS, you can move the extra bindings to (scheme-report-environment '5-chicken) or something better.
Hopefully this issue is transient with (scheme-report-environment 7) defining most of those forms or equivalents. That's at least my hope.
[2011-09-17 15:00:11 UTC] felix changed status from new to assigned
[2011-09-17 15:00:11 UTC] felix removed owner felix
[2011-10-28 09:10:20 UTC] felix set owner to felix
[2011-10-31 09:37:10 UTC] felix changed priority from minor to major
[2011-10-31 09:37:10 UTC] felix changed component from unknown to expander
[2011-10-31 09:37:10 UTC] felix set milestone to 4.8.0
[2011-10-31 09:37:10 UTC] felix wrote:
Apparently non-std syntax still leaks into code evaluated with `null-environment`, `scheme-report-environment` or `module-environment`.
[2011-11-04 13:35:58 UTC] felix wrote:
Patch is pending and waiting for review.
[2011-11-04 13:37:56 UTC] felix wrote:
Replying to ckeen: > As I read the the R5RS document, you are allowed to add any other specifier for (scheme-report-environment N), so if your goal is to adhere to R5RS, you can move the extra bindings to (scheme-report-environment '5-chicken) or something better.
Well, the available bindings do not represent a Scheme report, so I would suggest not to add a chicken-specific specifier. When richer or custom environments are needed, once can always use `interaction-environment` or `module-environment`.
[2011-11-14 14:38:39 UTC] felix changed status from assigned to closed
[2011-11-14 14:38:39 UTC] felix set resolution to fixed
[2012-09-24 21:47:48 UTC] felix changed milestone from 4.8.0 to 4.9.0
[2012-09-24 21:47:48 UTC] felix wrote:
Milestone 4.8.0 deleted