[Haskell-cafe] ANNOUNCE: enumerator 0.4.8

Ertugrul Soeylemez es at ertes.de
Sun Mar 27 03:12:59 CEST 2011

Hello John,

great stuff!  Many thanks.  I can't await the 0.5 release of your
library.  By the way, I believe that the 'enumHandleSession' and
'enumHandleTimeout' enumerators from the 'netlines' library really
belong into this one.  You will want to have timeout support, when
reading from a network handle.

Keep up the good work!


John Millikin <jmillikin at gmail.com> wrote:

> -----------------------------------------------------------------------------------------------------------------------------------------------------
> Enumerators are an efficient, predictable, and safe alternative to
> lazy I/O. Discovered by Oleg Kiselyov, they allow large datasets to be
> processed in near–constant space by pure code. Although somewhat more
> complex to write, using enumerators instead of lazy I/O produces more
> correct programs.
> http://hackage.haskell.org/package/enumerator
> http://john-millikin.com/software/enumerator/
> -----------------------------------------------------------------------------------------------------------------------------------------------------
> Hello -cafe,
> It's been a while since the last point release of enumerator. This one
> is sufficiently large that I think folks might want to know about it,
> and since I try not to spam too many announcements, I'll give a quick
> rundown on major changes in other 0.4.x versions as well.
> First, most of what I call "list analogues" -- enumerator-based
> versions of 'head', 'take', 'map', etc -- have been separated into
> three modules (Data.Enumerator.List, .Binary, and .Text) depending on
> what sorts of data they operate on. This separation has been an
> ongoing process throughout 0.4.x releases, and I think it's now
> complete. The old names in Data.Enumerator will continue to exist in
> 0.4.x versions, but will be removed in 0.5.
> Second, Gregory Collins and Ertugrul Soeylemez found a space leak in
> Iteratee's (>>=), which could cause eventual space exhaustion in some
> circumstances. If you use enumerators to process very large or
> infinite streams, you probably want to upgrade to version 0.4.7 or
> higher.
> Third, the source code PDF has seen some substantial improvement -- if
> you're interested in how the library is implemented, or have insomnia,
> read it at < http://john-millikin.com/software/enumerator/enumerator_0.4.8.pdf
> >
> Finally, there is a known issue in the current encoding of iteratees
> -- if an iteratee yields extra data but never consumed anything, that
> iteratee will violate the monad law of associativity. Oleg has updated
> his implementations to fix this problem, but since it would break a
> *lot* of dependent libraries, I'm holding off until the vague future
> of version 0.5. Since iteratees that yield extra data they didn't
> consume are invalid anyway, I hope this problem will not cause too
> much inconvenience.
> New features
> -----------------
> * Range-limited binary file enumeration (requested + initial patch by
> Bardur Arantsson).
> * splitWhen , based on the "split" package <
> http://hackage.haskell.org/package/split >
> * 0.4.6: Typeable instances for most types (requested by Michael Snoyman)
> * 0.4.5: joinE , which simplifies enumerator/enumeratee composition
> (requested by Michael Snoyman)
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries

nightmare = unsafePerformIO (getWrongWife >>= sex)

More information about the Haskell-Cafe mailing list