[plt-scheme] [change for 4.0] rules on syntax-rule literals?

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Thu Jun 28 17:41:13 EDT 2007

At Thu, 28 Jun 2007 23:34:05 +0200, Jens Axel Søgaard wrote:
> The < exported from mzscheme and the top-level <
> isn't the same. Intuitively the reason is that
> the mzscheme < is constant (and is always inlined),
> whereas the top-level < can be assigned to.

This is a consistent source of trouble, so let's make it a candidate
for change in 4.0.

That is, when you start MzScheme 4.0, you'd get a top-level environment
initialized with `(require big)' instead of `(namespace-require/copy
'big)'.

The drawback of this change is that it breaks some traditional code
that re-`defines' or `set!'s pre-defined variables after evaluating
code that refers to them. For those programs, you can always get to the
old behavior by starting with `namespace-require/copy'.

I don't know whether this change is compatible with R5RS or not. (I
used to think that it's definitely not, and now I think that it
probably is.) In any case, it's consistent with draft-R6RS.

Matthew



Posted on the users mailing list.