[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Scheme-reports] Ratification vote for R7RS-small

Full name (required): John Boyle

Location (optional): Palo Alto, California

Affiliation (optional): None.

Statement of interest:

I have been using Scheme and other Lisp dialects (in particular, Arc) for most of my nontrivial programming during the last five years.  I've studied SICP, "Compiling with Continuations", and many papers on GC, control-flow analysis, partial evaluation, and the like.  I experiment with interpreters and hope to construct an Arc implementation with real-time GC.

At the moment, I mostly use Scheme--specifically, Racket--as a compilation target for Arc, sometimes dropping into Scheme for speed or to learn how features work.  Thus, I'd like Scheme runtimes to be high quality, and for Scheme to be pleasant to use.  Lastly, I am interested in any good ideas that come from the experience of Schemers--e.g. I dislike hygienic macros, but if they help you do research and you find really nice ways to write loops or shell scripts or other things, then I'm happy--so I want y'all to have the best tools you can.

Vote (required): Yes.

Rationale (optional):

R7RS-small is an improvement over R5RS.  Several useful things have been added (I mention bytevectors, records, parameters, UTF-8, and command line arguments), and several little things have been made nicer or more solid (e.g. versions of "write" handle sharing and cycles, changes for the better on NaN seem to have been made, there are different ways to take quotients and remainders and both, "log" takes a base argument).  Credit for many of these things should probably be given to R6RS, but oh well.  And R7RS-small doesn't seem to introduce anything that really rubs me the wrong way.  (I trust that the procedure equivalence semantics will return to R5RS in the final standard; my vote is not conditional on that, however.)

The "useful things" mentioned seem to be inevitable (necessary) parts of an ideal full Scheme implementation that can do everything (i.e. for any program that you'd like to write, it has features that you'd expect your language to provide--this is a moving target as people's expectations expand, of course).  I imagine this is what the whole R7RS project intends to provide.  I think it will be easier to focus on weighing the merits and costs of advanced features when the fundamentals are nailed down and incorporated into everyone's common vocabulary and knowledge.  Thus, I approve of the WG1 charter (which, some have said, is implicitly part of what we're voting on), and I believe this draft represents progress.

--John Boyle
Science is what we understand well enough to explain to a computer. Art is everything else we do. --Knuth
Scheme-reports mailing list