[Haskell-cafe] Re: Climbing up the shootout...

Simon Marlow simonmarhaskell at gmail.com
Wed Sep 24 13:33:12 EDT 2008

Manlio Perillo wrote:
> Don Stewart ha scritto:
>> [...]
>> Ok. So I'll just say: high level, efficient code is an overriding theme
>> of many individuals working on Haskell. Things are better and better
>> each year. We do not stand still.
> Any roadmap for improve support in intensive IO multiplexing?
> Or, at least, some papers about how this is implemented in GHC?
> Af far as I understand, select is used in two separate places.
> How much effort it takes to implement a pluggable "reactor" (select, 
> poll, epoll, kqueue, /dev/poll, and so)?

We'd certainly support any efforts to add support for a more modern I/O 
multiplexing or asynchronous I/O back-end to the IO library.  It's not 
too difficult, because the interface between the low-level I/O supplier 
and the rest of the IO library is rather small - just a few functions 
that read and write blocks of data in a blocking or non-blocking way. 
The blocking variants currently communicate with the I/O manager thread 
which does select() on behalf of the clients.

Before doing this, though, I'd urge you to check that your application 
really does have scaling issues with the current system.  If it doesn't, 
then great, and if it does then you have a good benchmark to evaluate 
the replacement.


More information about the Haskell-Cafe mailing list