[r6rs-discuss] [Formal] Remove double phase semantics

AndrevanTonder andre at het.brown.edu
Sat Nov 25 10:25:01 EST 2006


On Tue, 14 Nov 2006, Andre van Tonder wrote:

> A simpler semantics is already effectively implemented by two of the 
> reference implementations.  This semantics shares
> one set of bindings between all the levels into which they
> are imported.

I would like to change the part of the formal comment suggesting
that the choice of phase semantics should be the one in which one
set of bindings is shared between levels into which they are imported.
This semantics has some deep problems.  For example, libraries may 
behave differently when imported at level 0 that they do when imported
at higher levels, and the meaning of a library at any given level may
be affected by adding or removing imports into other levels.

The much cleaner semantics is the one in which a separate set of
bindings is instantiated for each level.  In the past, I opposed
requiring this due to perceived efficiency issues.  I now know how 
to implement both choices with essentially the same efficiency and
simplicity.  I therefore see no obstacle to requiring the semantics that 
instantiates a separate set of bindings for each meta-level, and
I would like to suggest that this should be the only choice.

Andre



More information about the r6rs-discuss mailing list