Specification vs. Implementation Alex Shinn (23 Aug 2005 02:49 UTC)
Re: Specification vs. Implementation Michael Sperber (23 Aug 2005 07:24 UTC)
Re: Specification vs. Implementation Alex Shinn (24 Aug 2005 02:48 UTC)
Re: Specification vs. Implementation Per Bothner (24 Aug 2005 04:27 UTC)
Re: Specification vs. Implementation Michael Sperber (24 Aug 2005 17:28 UTC)
Re: Specification vs. Implementation Michael Sperber (24 Aug 2005 17:45 UTC)

Re: Specification vs. Implementation Per Bothner 24 Aug 2005 04:27 UTC

Alex Shinn wrote:
> Standard streams aside, an implementation that wanted to support SRFI-68
> while still using its host platform's I/O libraries would still need to
> add the SRFI-68 reference implementation in it's entirety, basing the
> lowest reader/writer level on it's own high-level ports, and modify the
> native port operations to distinguish between native ports and SRFI-68
> ports.  This is a lot of redundancy and a lot of work.  For portable
> code it would always be advisable to only use the port layer directly,
> since in many implementations the lower layers and ports built on them
> would be extremely slow, so the net result is that the bottom two layers
> become dead weight.  It doesn't seem worthwhile requiring them.

I agree.  I think they're a separate feature/library, and should be
a separate srfi.  I think it may be reasonable for R6RS to define
and require support for binary ports, but not the primitive I/O or
the stream layer.

The current draft says:
   Streams and ports from the upper layers of the I/O system always
   perform access through the abstractions provided by [the primitive
   I/O] layer.
Hopefully that's not intentional - I certainly don't intend to go
through the primitive I/O layer to do I/O!

I think the Primitive I/O layer has very limited usefulness.
It is somewhat similar to JAVA 1.4's 'java.nio' (New I/O) package,
which I think very few people are using directly, and even fewer
are using without also using non-blocking I/O.

Input streams might be useful, but I don't understand what
output streams are for.
--
	--Per Bothner
xxxxxx@bothner.com   http://per.bothner.com/