From owner-cvs-ports@FreeBSD.ORG Sun May 8 19:08:19 2011 Return-Path: Delivered-To: cvs-ports@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8D7D01065672; Sun, 8 May 2011 19:08:19 +0000 (UTC) (envelope-from ashish@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 809E38FC08; Sun, 8 May 2011 19:08:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p48J8J1x055891; Sun, 8 May 2011 19:08:19 GMT (envelope-from ashish@repoman.freebsd.org) Received: (from ashish@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p48J8JUp055890; Sun, 8 May 2011 19:08:19 GMT (envelope-from ashish) Message-Id: <201105081908.p48J8JUp055890@repoman.freebsd.org> From: Ashish SHUKLA Date: Sun, 8 May 2011 19:08:19 +0000 (UTC) To: ports-committers@FreeBSD.org, cvs-ports@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: ports/devel/hs-enumerator Makefile distinfo pkg-descr X-BeenThere: cvs-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 May 2011 19:08:19 -0000 ashish 2011-05-08 19:08:19 UTC FreeBSD ports repository Added files: devel/hs-enumerator Makefile distinfo pkg-descr Log: 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. WWW: http://john-millikin.com/software/enumerator/ Approved by: pgj (mentor) Obtained from: FreeBSD Haskell Revision Changes Path 1.1 +22 -0 ports/devel/hs-enumerator/Makefile (new) 1.1 +2 -0 ports/devel/hs-enumerator/distinfo (new) 1.1 +22 -0 ports/devel/hs-enumerator/pkg-descr (new)