[R6RS] I/O discussion
Michael Sperber
sperber at informatik.uni-tuebingen.de
Wed Mar 22 13:58:28 EST 2006
To summarize a few things:
- I suggest that we consider SRFIs 79 (Primitive I/O) and 81 (Port
I/O) for R6RS. They're meant to be independent from the Streams
layer (SRFIs 80 & 82), and any remaining dependence is a bug.
- As the ideas behind Primitive I/O are a bit less-established than
behin Ports I/O, it would be possible to leave it out, and only copy
the relevant data definitions. We'd leave out the very last
subsection of the specification of SRFI 81, which is about creating
custom ports from readers and writers. By doing that, we'd lose the
ability to create custom ports.
- I suggest that we consider SRFI 74 (Octet-Addressed Binary Blocks)
rather than SRFI 66 (Octet Vectors) for satisfying the "byte-vector
requirement." Having said that, retrofitting SRFI 66 to the I/O is
a trivial task. (Essentially, renaming "blob" to "u8vector.")
- I don't feel violently about using #f insteaf of the eof object, but
do prefer #f on the grounds of convenience.
- I feel more strongly about the consistent naming and argument
ordering in the SRFI. Earlier revisions had something closer to
R5RS, and it was awkward to make the various variants of
READ-BLOB-xxx work with optional arguments. I'd be happy to
elaborate on the details; the "Design Rationale" contains more
information.
- The way Port I/O deals with text encoding is a fairly substantial
decision, and it differs from systems where text encoding is a
mapping from binary to text. I believe this way of handling it is
preferable for a number of reasons, but y'all might want to
scrutinize this aspect closely. (I'd like this particular item on
the agenda for next week's conference call.)
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla
More information about the R6RS
mailing list