[R6RS] incomplete draft of revised i/o

William D Clinger will at ccs.neu.edu
Thu Jan 18 08:19:00 EST 2007


Mike quoting me:

> > I added a magical mystery proc to every port.  This
> > magical mystery proc makes it possible to implement
> > string ports as custom ports (which was essentially
> > impossible in the 5.91 draft and in SRFI-81),
>
> It is indeed essentially impossible in the 5.91 draft, but it is
> possible in SRFI 81 (in a straightforward manner, as the reference
> implementation shows), because the set of procedures operating on
> these ports is different in SRFI 81.

I don't believe this is true.  A search of SRFI-81 for
"reader" shows that readers are mentioned only in the
section on "Ports for readers and writers", which is
essentially the same as in 5.91.  A search of SRFI-81
for "descriptor" comes up empty.  My quick scan of the
rest of SRFI-81 came up with nothing that could be
used to break the abstraction barrier that hides the
encapsulated reader or writer from clients of a port
constructed from it.  If Mike knows of a procedure in
SRFI-81 that could be used to break that abstraction
barrier, it might be helpful for him to name it.

I did not look at the reference implementation, which
may provide features that are not described in SRFI-81
itself.  Such features of the reference implementation
are irrelevant to this discussion, since they are
accidental features of that implementation, not of
SRFI-81.

By the way, all my references to SRFI-81 are to the
now withdrawn SRFI-81 (currently online at
http://srfi.schemers.org/srfi-81/srfi-81.html ), not
to any of the various HTML documents derived from it
that the editors have constructed and/or considered
during their deliberations.

> When we added the
> `get-output-xxx' procedures for R6RS, I pointed this out.  Recent
> communication with Will indicated to me that I wasn't very clear
> explaining the issues back then: I apologize for that.

A pointer to the message in question might be helpful.

Will



More information about the R6RS mailing list