#685 closed defect (fixed)
R5RS evaluation environments still contain some non-std bindings
Reported by: | felix winkelmann | Owned by: | felix winkelmann |
---|---|---|---|
Priority: | major | Milestone: | 4.9.0 |
Component: | expander | Version: | 4.7.x |
Keywords: | environments | Cc: | |
Estimated difficulty: |
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.
Change History (8)
comment:1 follow-up: 6 Changed 13 years ago by
comment:2 Changed 13 years ago by
Owner: | felix winkelmann deleted |
---|---|
Status: | new → assigned |
comment:3 Changed 13 years ago by
Owner: | set to felix winkelmann |
---|
comment:4 Changed 13 years ago by
Component: | unknown → expander |
---|---|
Milestone: | → 4.8.0 |
Priority: | minor → major |
Apparently non-std syntax still leaks into code evaluated with null-environment
, scheme-report-environment
or module-environment
.
comment:6 Changed 13 years ago by
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
.
comment:7 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
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.