Summary

R5RS evaluation environments still contain some non-std bindings

Metadata

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