dev-haskell / enumerator

Reliable, high-performance processing with left-fold enumerators

Official package sites : https://john-millikin.com/software/enumerator/ ·

Typical buffer–based incremental I/O is based around a single loop, which reads data from some source (such as a socket or file), transforms it, and generates one or more outputs (such as a line count, HTTP responses, or modified file). Although efficient and safe, these loops are all single–purpose; it is difficult or impossible to compose buffer–based processing loops. Haskell’s concept of “lazy I/O” allows pure code to operate on data from an external source. However, lazy I/O has several shortcomings. Most notably, resources such as memory and file handles can be retained for arbitrarily long periods of time, causing unpredictable performance and error conditions. 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. This library contains an enumerator implementation for Haskell, designed to be both simple and efficient. Three core types are defined, along with numerous helper functions: * /Iteratee/: Data sinks, analogous to left folds. Iteratees consume a sequence of /input/ values, and generate a single /output/ value. Many iteratees are designed to perform side effects (such as printing to @stdout@), so they can also be used as monad transformers. * /Enumerator/: Data sources, which generate input sequences. Typical enumerators read from a file handle, socket, random number generator, or other external stream. To operate, enumerators are passed an iteratee, and provide that iteratee with input until either the iteratee has completed its computation, or EOF. * /Enumeratee/: Data transformers, which operate as both enumerators and iteratees. Enumeratees read from an /outer/ enumerator, and provide the transformed data to an /inner/ iteratee.

v0.4.20 :: 0/0.4.20 :: gentoo

Modified
License
MIT
Keywords
amd64 x86
USE flags
doc hscolour profile

General

doc
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
hscolour
Include coloured haskell sources to generated documentation (dev-haskell/hscolour)
profile
Add support for software performance analysis (will likely vary from ebuild to ebuild)

dev-haskell / cabal : A framework for packaging Haskell software

dev-haskell / haddock : A documentation-generation tool for Haskell libraries

dev-haskell / hscolour : Colourise Haskell code

dev-haskell / text : An efficient packed Unicode text type

dev-haskell / transformers : Concrete functor and monad transformers

dev-lang / ghc : The Glasgow Haskell Compiler

dev-haskell / text : An efficient packed Unicode text type

dev-haskell / transformers : Concrete functor and monad transformers

dev-lang / ghc : The Glasgow Haskell Compiler

dev-haskell / attoparsec-enumerator : Pass input from an enumerator to an Attoparsec parser

dev-haskell / blaze-builder-enumerator : Enumeratees for the incremental conversion of builders to bytestrings

dev-haskell / snap-core : Snap: A Haskell Web Framework (core interfaces and types)

dev-haskell / snap-server : A web server for the Snap Framework

dev-haskell / zlib-enum : Enumerator interface for zlib compression

Robin H. Johnson · gentoo
Drop $Id$ per council decision in bug #611234.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Sergei Trofimovich · gentoo
dev-haskell/enumerator: amd64, x86 stable
Package-Manager: portage-2.2.27
Robin H. Johnson · gentoo
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed