[Haskell-cafe] ANNOUNCE: iterIO-0.1 - iteratee-based IO with pipe operators
Maciej Marcin Piechotka
uzytkownik2 at gmail.com
Fri May 6 12:17:39 CEST 2011
On Thu, 2011-05-05 at 21:15 -0700, David Mazieres wrote:
> Hi, everyone. I'm pleased to announce the release of a new iteratee
> implementation, iterIO:
> IterIO is an attempt to make iteratees easier to use through an
> interface based on pipeline stages reminiscent of Unix command
> pipelines. Particularly if you've looked at iteratees before and been
> intimidated, please have a look at iterIO to see if it makes them more
> Some aspects of iterIO that should simplify learning and using
> iteratees are:
> * Every aspect of the library is thoroughly document in haddock
> including numerous examples of use.
> * Enumerators are easy to build out of iteratees.
> * There is no difference between enumerators and "enumeratees"
> (i.e., inner pipeline stages). The former is just a
> type-restricted version of the latter.
> * Parsing combinators provide detailed error reporting and support
> LL(*) rather than LL(1) parsing, leading to fewer non-intuitive
> parsing failures. A couple of tricks avoid consuming excessive
> memory for backtracking.
> * Super-fast LL(1) parsing is also available through seamless
> integration with attoparsec.
> * A universal exception mechanism works across invocations of mtl
> monad transformers, thereby unifying error handling.
> * All pipe operators have uniform semantics, eliminating corner
> cases. In particular, if the writing end of a pipe fails, the
> reading end always gets EOF, allowing it to clean up resources.
> * One can catch exceptions thrown by any contiguous subset of
> stages in a pipeline. Moreover, enumerator exception handlers
> can resume downstream stages that haven't failed.
> * The package is full of useful iteratees and enumerators,
> including basic file and socket processing, parsec-like
> combinators, string search, zlib/gzip compression, SSL, HTTP, and
> "loopback" enumerator/iteratee pairs for testing a protocol
> implementation against itself.
> Please enjoy. I'd love to hear feedback.
1. It looks nice - however it causes problem as we have 3 iteratees
packages, all of which have some advantages. 4 if we count coroutine. (I
don't count original implementations).
2. What is the reason of using Inum/Onum instead of
Iteratee/Enumerator/Enumeratee. The latter seems to be a standard naming
in the community?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 836 bytes
Desc: This is a digitally signed message part
More information about the Haskell-Cafe