This is a proposal for adding various R6RS features as part of R7RS small Scheme. I am publishing this document to invite wide comment. There is nothing official about it. However, I retain sole responsibility for it, including all errors.
There is a great deal of crunchy goodness in R6RS, especially around minor (or major, depending on your viewpoint) inconsistencies, insufficiencies, and vaguenesses in the R5RS spec. Small Scheme should absolutely adopt them. The following list is intentionally rough and incomplete, and drawn from the R6RS Rationale: The systematic use of "must" and "should" according to RFC 2119. The detailed treatment of +inf.0, -inf.0, +nan.0 and -0.0 on systems with IEEE-754-compliant floating point, including the fact that (eqv? +nan.0 +nan.0) is intentionally unspecified. Allowing identifiers that begin with "->". Open issue: should we frankly adopt the default posture of many Schemes, that anything which doesn't look like a number but is composed of the right kinds of characters is a legal identifier? To my mind, calling "2a" an identifier is going a bit far, but I really don't have any problem with "-foo-" if you want it. Both block (#| ... |#) and datum (#;) comments (already mentioned in part 1). Moving many "is an error" situations to "an error is signaled", to promote safe implementation as the Scheme rule. Specifics are an open issue, of course. Distinguishing between programmer and implementer responsibilities in the use of certain procedures. The much better explanation of macro expansion in R6RS section 10. Explaining internal "define" by "letrec*". The clarification that filenames may be implementation-defined objects as well as strings, to handle Posix or Windows names that break the rules for Unicode strings. (On Posix, filenames are u8-vectors with limitations; on Windows, they are u16 vectors with limitations.) -- Andrew Watt on Microsoft: John Cowan Never in the field of human computing [email protected] has so much been paid by so many http://www.ccil.org/~cowan to so few! (pace Winston Churchill) _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
