[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-janitors] #643: CR: overhaul environment representation in
From: |
Chicken Trac |
Subject: |
Re: [Chicken-janitors] #643: CR: overhaul environment representation in the evaluator (was: overhaul environment representation in the evaluator) |
Date: |
Mon, 08 Aug 2011 09:44:21 -0000 |
#643: CR: overhaul environment representation in the evaluator
-----------------------------+----------------------------------------------
Reporter: felix | Owner: felix
Type: change request | Status: new
Priority: minor | Milestone:
Component: core libraries | Version: 4.7.x
Resolution: | Keywords: eval environments
-----------------------------+----------------------------------------------
Changes (by felix):
* type: enhancement => change request
Comment:
As I understand R5RS, evaluation environments do not necessarily imply
first-class environments (what the current implementation provides). The
work done in `new-environments` does not use first class environments
anymore and maps the visible global value identifiers directly to their
actual toplevel variable. This means the structure and semantics of
`environment` records have completely changed and are not compatible with
the old way of handling environments. `interaction-environment`
effectively uses the global environment, just like calling `eval` without
any environment argument. The environments returned by `scheme-report-
environment` and `null-environment` are immutable, assignments to toplevel
variables are not allowed and new toplevel definitions are not possible.
This is compliant to R5RS and keeps the implementation simple. Use-defined
modules can be converted to environments, which gives the user more
freedom to provide additional toplevel bindings, but these are still
immutable.
If first-class environments (which are problematic in general and will
always produce inconsistencies between evaluated and compiled code) are
considered to be important, I can try to think of a way to customize the
evaluator more extensively - some preparation for this is already being
done in the `bossa-nova` branch.
--
Ticket URL: <http://bugs.call-cc.org/ticket/643#comment:2>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Chicken-janitors] #643: CR: overhaul environment representation in the evaluator (was: overhaul environment representation in the evaluator),
Chicken Trac <=