[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] diff between R6RS and the R7RS small language draft
On Tue, 16 Aug 2011, John Cowan wrote:
Alex Shinn scripsit:
Implementations may (and some will) support the even/odd example,
however. I hope that such an implementation will still be deemed a
compatible Scheme system.
Yes, of course. R7RS does not in general explicitly prevent extensions.
The general principle is fine, but the application in this case is not.
If a syntax keyword is bound in an outer scope and referenced before it
is rebound in the current scope, R7RS presumably requires that the
outer binding be employed.
This would be a violation of everything we have always understood by lexical
scoping, so I think for R7RS to require that the outer binding be employed
would be wrong, and I am pretty sure some implementors who have done a lot of
work to make this kind of thing work correctly would balk at changing to what
they would surely consider a buggy scoping semantics just to save some other
presumably lazier implementors some hard work.
The body scope semantics of R6RS is rigorously correct and consistent. The
complaints with regards to R6RS were not really that the scoping was wrong -
they had more to do with the multi-pass order of parsing and expansion. If R7RS
is offended by certain usages allowed by R6RS, it would suffice to declare it
non-portable to rely on them, rather than change the meaning of scoping.
Scheme-reports mailing list