[r6rs-discuss] [Formal] Binary and string pseudo-transcoders should die

From: cowan_at_ccil.org <cowan>
Date: Thu Feb 8 19:54:42 2007

---
This message is a formal comment which was submitted to formal-comment_at_r6rs.org, following the requirements described at: http://www.r6rs.org/process.html
---
Submitter: John Cowan
Email address: cowan_at_ccil.org
Issue type: Defect
Priority: Minor
Component: I/O
Report version: 5.92
Summary:  Binary and string pseudo-transcoders should die
Every R5.92RS port has a transcoder, which come in three flavors:
transcoders proper, which are attached to binary ports to make them into
textual ports; the binary transcoder, which does nothing except stand
in for a transcoder on a binary port; and the implementation-defined
transcoder provided for string ports.  The latter two flavors are not
really transcoders, for they don't provide any transcoding functions.
I propose, therefore, that they be dropped.
The binary-transcoder procedure is no longer required, and #f is returned
by the port-transcoder procedure when applied to a binary port or a
string port.
In (I believe) all cases where the binary transcoder is referred to, it
can simply be dropped.  The exception is the open-file-*-port procedures,
where a binary file can be opened only by explicitly specifying the binary
transcoder.  This is inconsistent with other kinds of port constructors,
and I propose one of two resolutions:
A: If the transcoder is omitted, return a binary port.  In order to create
a port with "native" transcoding, introduce a procedure native-transcoder,
which returns an implementation-dependent transcoder.
B: Allow #f as an explicit argument to open-file-*-port procedures to
return a binary port.
I prefer A.
-- 
Overhead, without any fuss, the stars were going out.
        --Arthur C. Clarke, "The Nine Billion Names of God"
                John Cowan <cowan_at_ccil.org>
Received on Sun Feb 04 2007 - 04:08:37 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC