On 17 December 2004 16:49, John Goerzen wrote:
> First, if someone were to make a working, useful package out of this,
> is it likely that it would become the "standard" (whatever that
> means) IO system in Haskell anytime in the near future? I ask
> because I don't want to put a lot of time into developing an IO
> library, and code that works with it, only to have nobody use my code
> because it's incompatible with everything they're doing.
I'm keen to transition over to a more general IO framework, and I
believe Bens/my proposal is heading in the right direction. When we
have a more complete implementation, I'd be happy to include it with GHC
for experimentation, and over time transition code to use the new
framework while leaving the old System.IO in place for the time being.
The design isn't by any means set in stone at this stage though.
> Second is my own level of expertise. I frankly don't understand how
> much of that code could even compile (example: I couldn't find
> setNonBlockingFD anywhere in my docs; maybe it's from one of those
> GHC.* areas), and I don't really understand the whole array/buffer
> situation either. I spent some time reading docs, and I'm still not
> sure exactly how one builds a mutable, resiable array. I've also
> never done anything but the most trivial FFI work.
Much of the reason for the complexity is because I was paying careful
attention to performance (perhaps too much attention). I don't want the
addition of a text encoding/decoding layer to the IO subsystem to affect
performance more than is necessary, and that means doing the translation
on raw character buffers rather than strings.
Unfortunately this does mean that porting to other compilers is going to
be more work.
Cheers,
Simon