[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


 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

 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: <>
Chicken Scheme <>
Chicken Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]