[R6RS] Changing the transcoding mid-stream
William D Clinger
will at ccs.neu.edu
Sat Aug 19 08:38:03 EDT 2006
> Indeed, "no transcoder" isn't the same as specifying a UTF-8
> transcoder, and the sentence you quoted is highly misleading. Sorry
> about that. As long as no transcoder is associated with the port,
> the various binary I/O procedures deal with the binary data without
> doing any interpretation of it as UTF-8.
Okay. With that clarification, I agree that the proposal
can be used to perform what I mean by binary i/o.
There are at least seven places scattered throughout the current
draft of port-io-srfi.html where having no transcoder is alleged
to be equivalent to UTF-8 or to translate to UTF-8. All of these
allegations should be corrected.
I also think the proposal needs a (no-codec) or (binary-codec)
procedure. Without it, the two proposals we are considering
for allowing a port that was opened with one transcoding tc0
to be read or written with another transcoding tc1 would allow
tc1 to be the UTF-8 transcoding, but would not allow tc1 to be
the default ("no", "binary") transcoding.
> Even a
> (transcoder (eol-style (eol-style crlf)))
> would only ever look for #x0a and #x0d bytes and translate those,
> ignoring the rest.
I think a lot of programmers are likely to make the
mistakes I made in reading these specifications, so
I think it would be a good idea to add a note warning
that the end-of-line translations are performed even
for procedures such as read-u8 and write-u8.
> No, but there's `open-bytes-input-port', and that does.
Sorry, I missed that.
More information about the R6RS