From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id DAA24527; Fri, 18 Jun 2004 03:31:45 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id DAA29566 for ; Fri, 18 Jun 2004 03:31:43 +0200 (MET DST) Received: from glockenspiel.complete.org (glockenspiel.complete.org [69.10.152.57]) by nez-perce.inria.fr (8.12.10/8.12.10) with ESMTP id i5I1VfEV003175 for ; Fri, 18 Jun 2004 03:31:42 +0200 Received: from localhost (localhost [127.0.0.1]) by glockenspiel.complete.org (Postfix) with ESMTP id B8BA6EB for ; Thu, 17 Jun 2004 20:31:44 -0500 (CDT) Received: from glockenspiel.complete.org ([127.0.0.1]) by localhost (glockenspiel [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id 07666-03 for ; Thu, 17 Jun 2004 20:31:33 -0500 (CDT) Received: from erwin.complete.org (user20.moundridge.ks.dtnspeed.net [12.149.180.20]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "erwin.complete.org", Issuer "John Goerzen -- Root CA" (verified OK)) by glockenspiel.complete.org (Postfix) with ESMTP id 9350DA2 for ; Thu, 17 Jun 2004 20:31:31 -0500 (CDT) Received: from katherina.lan.complete.org (katherina.lan.complete.org [10.200.0.4]) by erwin.complete.org (Postfix) with ESMTP id 8560D43F; Thu, 17 Jun 2004 20:31:24 -0500 (CDT) Received: by katherina.lan.complete.org (Postfix, from userid 1000) id 565561B006; Thu, 17 Jun 2004 20:31:24 -0500 (CDT) Date: Thu, 17 Jun 2004 20:31:24 -0500 From: John Goerzen To: caml-announce@inria.fr Subject: [Caml-list] ANN: Missinglib 0.4.1 Message-ID: <20040618013124.GA14748@complete.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.5.1+cvs20040105i X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at complete.org X-Miltered: at nez-perce with ID 40D245FD.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; 0.0.1:01 caml-list:01 lacks:01 api:01 quux:01 quux:01 haskell-like:01 python's:01 hash:01 hash:01 api:01 subparts:01 recursively:01 findlib:01 beforehand:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Hello, Missinglib 0.4.1 is now ready. It represents major new effort since 0.0.1 was announced on caml-list. This library is designed to provide all those useful but missing features that the standard library lacks. Its pieces are designed to be used independent of each other, so you do not have to subscribe to the "Missinglib way" just to use a few of its functions (though its pieces do complement each other). The "crown jewels" of Missinglib include the ConfigParser, a flexible framework for reading and generating configuration files; and Streamutil, which provides many elegant stream-related functions such as map, filter, map_stream, and of_channel_lines. [ Please add missinglib to the Humps. Thanks. ] Here is an excerpt from the README (API docs are at the URLs below): Author: John Goerzen URL: gopher://quux.org/1/devel/missinglib http://quux.org/devel/missinglib ------------------------- What is Missinglib? ------------------------- It's a collection of OCaml-related utilities. The following modules are are provided: Compose Utilities for chaining functions together Composeoper Haskell-like operators for chaining functions ConfigParser System for parsing configuration files These configuration files can have multiple sections and resemble .INI files. This module is designed to be mostly compatible with Python's ConfigParser module. Hashtbloper Hash table convenience operators Hashtblutil Hash table utilities Lexingutil Lexing-related utilities Listutil List-manipulation utilities Functions are provided to help extract portions of lists and be more convenient for association lists. Also, lists of strings or chars can be written directly to output channels. Slice Underlying API for Slice operators Sliceoper Flexible subparts of arrays, lists, and strings Streamutil Stream parser, conversion, and creation utilities Provides features to create streams the yield the lines of an input channel, the blocks of an input channel, convert finite streams to lists, map and filter streams (similar to those functions on lists), and fold streams. Strutil String-related utilities Includes functions to strip whitespace from the beginning or end of strings, to split strings into lists by whitespace or a custom delimeter, etc. Unixutil Operating system utilities Includes functions to process directories (possibly recursively), test for file existence, and an implementation of "rm" with "-r" and "-f" options. The entire library has no prerequisites save the OCaml standard library and findlib and is designed to install without complexity on a variety of systems. It could also easily be embedded within your own source trees so that users need not have it installed beforehand. ** THIS IS CURRENTLY ALPHA-QUALITY CODE; MAJOR API FLUCTUATIONS MAY YET OCCUR. ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners