Full name: Alex Shinn Location: Tokyo, Japan
Vote: yes Rationale: The 9th draft satisfies the goals of the WG1 charter by specifying a language comparable in size to R5RS, supporting macros and modules and maintaining REPL compatibility. It satisfies the requirements of being almost fully backwards compatible with R5RS, and compatible with a subset of R6RS suitable as the basis for stronger R6RS compatibility in the WG2 standard. The dual R5RS/R7RS support in Chibi Scheme and dual R6RS/R7RS support in Sagittarius Scheme serve as a testament to this. R7RS is a bridge to join together our factioned community. There are of course many things I disagree with in the draft, and overall I'd prefer it to have been slightly smaller given that anything left out here can be in the large language. But to be honest, given the difficult task we were presented with the result is better than I had initially hoped for. It retains the style and small language feel of R5RS while incorporating features and improvements from R6RS. Moreover, if we were to do it all again, or even if another group set out to achieve the goals set out by the charter, I think the result would largely be the same. There would be cosmetic differences, and some swapping in and out of features considered essential, but many results derive naturally from the requirements. For example, the largest and most important change of course is the module system. Knowing that phasing and module versioning were among the most controversial changes in R6RS it was natural to leave these features for WG2. On the other hand, R6RS left no room for module system extensions so we adjusted the syntax to make this possible. Since both systems are static, translation between the two is trivial. The extension possibility allowed us to make a change essential to R5RS compatibility. Because of the switch to a case-sensitive reader it's impossible for R6RS to directly use existing R5RS libraries (such as SSAX, kanren, irregex, etc.) without modifying their source. This is an important practical feature, without which automated updates from upstream are not possible. R7RS solves this elegantly with include-ci. With the module system we achieve the primary goal, the ability to share code. If you're reading this and participating in this vote it's for the same reason as me. We love Scheme. We all know that Scheme is hands down the best dynamically typed language. Yet we're forever confined to separate tribes reinventing the same wheels. If we reject R7RS then Scheme unification is lost - no one will attempt yet another sure-to-fail compromise. But if we ratify then we can unite, we can share wheels and move on to build cars and rockets and more. This is our chance to stop bickering and do something real. -- Alex
_______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
