
Peter Simons wrote:
Does anyone have any *objections* to introducing
System.IO.hGetWord8 :: Handle -> IO Word8 System.IO.hPutWord8 :: Word8 -> Handle -> IO Word8
I don't mind having these functions, but to be honest I doubt that they would be useful for real life applications. Reading a byte at a time is a performance nightmare, buffering or not.
That depends upon the language overhead. E.g. C's getc() may be a
macro which is essentially
fp->read_ptr < fp->read_end
? fp->buf[fp->read_ptr++]
: ...
where the ... case is only called once per block.
Obviously, block interfaces make the per-call overhead less
significant, but they also make the code more complex.
In any case, we already have h{Get,Put}Char, and people seem to be
willing to tolerate the inefficiency there.
--
Glynn Clements