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 Scheme-reports@x http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports