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

a process that might work



In a message posted to comp.lang.scheme, and crediting Will Hartung with
the basic idea, Vincent Manis suggested a process that sounds plausible to
me:

> Revise R6RS minimally if at all. Then produce a document called
> `The Report on Scheme Extensions' (or maybe `The R6 Report...' ),
> which describes a standard collection of extensions. This document
> would be accompanied by a reference implementation that would run
> on any R6RS-compliant Scheme system. What would be included in these
> extensions would be up to its editors....

One of the nice things about this is that it doesn't have to depend on the
R*RS authors getting our act together.  As Kent Pitman said, the wonderful
thing about standards is that there are so many to choose from.  Instead of
producing just one document, why not produce a bunch of documents?  Call
them things like

    Scheme Modules: a Stopgap
    Scheme Modules: a Different Stopgap
    Scheme Modules: Another Stopgap
    Ada-like Exceptions in Scheme
    Adapting Common Lisp's Condition System to Scheme
    More Useful I/O for Scheme
    Multi-dimensional Array Primitives in Scheme
    Bit-diddling in Scheme
    Hash Tables in Scheme
    ...

Let the people who write them put their names on them.  Encourage the
people who write them to pay attention to constructive criticism and to
existing practice, including SLIB, but encourage them not to pay too
much attention when an R*RS author says it is a bad thing to write such
documents without first gaining the unanimous consent of the Scheme
community.  Encourage people to publish them in the proceedings of an
annual Scheme workshop and on the World-Wide Web.  Let the users decide
which of these things are important, and let the users pressure the
implementors into supporting those things.

Yes, I'm serious.  Reference implementations for some extensions, such as
bit-diddling, multi-dimensional arrays, and Ada-like exceptions, can be
written in R5RS Scheme.  Others, such as a usable i/o system, might have
to depend on implementation-specific features, but it would be enough
to produce reference implementations for each of several popular systems.
Then the people who want these things can get their work done, by adapting
one of the reference implementations if necessary, and the people who
don't want these things can ignore them.

> If this strategy is adopted, proposals for `R6RS' could then
> be divided into those few that are essential and the vast majority
> that are, if accepted, destined for the Extensions report.

And maybe the successor to the R5RS should be two documents:

    Revised^6 Report on the Algorithmic Language Scheme
    Revised^6 Report on the Traditional Library of Scheme

where the second document contains the library syntax and library
procedures of the R5RS.

I'm not saying this process is ideal.  I'm saying it's a way to make
progress even if the authors can't reach unanimous agreement on what
they want.

Will