[R6RS] I/O

Michael Sperber sperber at informatik.uni-tuebingen.de
Thu Jul 13 10:04:55 EDT 2006


William D Clinger <will at ccs.neu.edu> writes:

> If it's true, then stating that it is true would help.
> If it's false, then stating that it is false would help,
> but you would still have to explain what kind of objects
> are acceptable as a descriptor.

I tried to do that in the latest draft.  Better?

>> > I would guess that you are assuming a model in which some
>> > character, e.g. END OF TRANSMISSION, popularly known as
>> > control-D, is interpreted as an end of file when typed.
>> 
>> No.  I'm assuming a model where the other end sends a block of data
>> and then pauses temporarily (i.e. stops typing).
>
> Wow.  Please confirm:

No, you're right.  I had my head somewhere the sun doesn't shine.
Your original statement quoted above is correct.  Sorry about that.

> The only reason that is the only possibility is that it
> is the only means provided by this particular proposal.
> I do not accept your implicit assumption that this is
> the only possible means that could be provided.

It's not, but I've thought this a bit and couldn't come with anything
better.  Maybe you can make a suggestion?

> I believe I suggested an alternative some time ago: provide
> a procedure that takes an input port and a transcoding, and
> returns an input port that uses the transcoding.

I considered that, but it is very difficult to implement efficiently.
(At least for me.)  I believe PLT's implementation of these procedures
effectively turns off buffering on the underlying port, forcing the
decoding to happen character-by-character.

> Every continuable exception must be accompanied by a protocol
> that describes how the exception can be continued.  In this
> case, I propose that an exception handler that wishes to
> ignore the situation simply return zero values, and that an
> exception handler that wishes to replace the situation with
> some sequence of replacement characters simply return those
> characters.

OK, that can be done.  I'd still like us to decide how we want to
handle encoding errors before I invest the time required to specify
and implement this protocol.

> The point is that buffering *can* be used, and will be more
> effective if implementations are allowed to design their own
> protocols than if they are required to support random things
> like set-output-port-buffer-mode! on every port.

I don't know that they're random: This exact model of controlling
buffering is common, for example, among SML's and POSIX's model, and
the available modes are certainly all useful.

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla



More information about the R6RS mailing list