[r6rs-discuss] criteria for including or excluding a library

William D Clinger will at ccs.neu.edu
Fri Nov 3 09:17:37 EST 2006


I am posting this as an individual member of the Scheme
community.  I am not speaking for the R6RS editors.

Mike Sperber quoting me:
> > Could be a SRFI?
> >
> >     If the library could be implemented portably, with
> >     reasonable efficiency, using only the rest of R6RS,
> >     then it could be described by a SRFI and provided by
> >     a portable reference implementation instead of being
> >     included within the R6RS.
>
> I suggest that the heading here is misleading.  (As Sam TH already
> pointed out.)

I walked across the hall and thanked Sam for his correction.
Although the guts of syntax-case can be implemented portably,
its connections to libraries and to the evaluator cannot.

> The SRFI process in no way mandates portable reference
> implementations, and a number of SRFIs don't.

True.  I was stating my own personal criteria for including
or excluding a library from the R6RS.  In my own personal
opinion, the fact that a library could be described by a
SRFI whose reference implementation is not portable should
not count as an argument against including the library
within the R6RS.

I do not accuse you of sharing my opinion.

> > (r6rs i/o primitive), section 15.2 of the draft R6RS:
> >
> >     Could be a SRFI?  yes
>
> That should be: yes, but requires compiler support
>         for efficiency
>
> It could be implemented in terms of ports, but that would be putting
> the intention of the I/O design on its head, and would incur
> significant loss of efficiency.

I do not see how a compiler could provide meaningful
special support for that library.  I do not understand
the intention of an I/O design that includes section 15.2.
So far as I can see, the largest loss of efficiency that
would result from implementing (r6rs i/o primitive) in
terms of records and ports would be a factor of 2,
incurred only when reading bytes from a file reader.

Whether a factor of 2 is significant for that library is
a subjective judgment.  I usually favor simplicity over
efficiency, and I think a portable implementation in terms
of records and ports would be fast enough for all known
applications of (r6rs i/o primitive).

Will



More information about the r6rs-discuss mailing list