From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 42D29BCAC for ; Thu, 2 Jun 2005 06:28:46 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j524SjwB014303 for ; Thu, 2 Jun 2005 06:28:45 +0200 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id GAA12054 for ; Thu, 2 Jun 2005 06:28:45 +0200 (MET DST) Received: from wetware.wetware.com (wetware.wetware.com [209.218.58.1]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j524ShbE007523 for ; Thu, 2 Jun 2005 06:28:44 +0200 Received: from [69.12.155.90] (helo=[10.0.1.9]) by wetware.wetware.com with esmtp (Exim 4.43) id 1DdhJb-0002Kd-T4; Wed, 01 Jun 2005 21:28:21 -0700 Mime-Version: 1.0 (Apple Message framework v622) Content-Transfer-Encoding: 7bit Message-Id: <7165ecfc8178b3091aee728db7083011@wetware.com> Content-Type: text/plain; charset=US-ASCII; format=flowed To: The Caml Trade , OCNAE Help From: james woodyatt Subject: ANNOUNCE: OCaml NAE releases Cf-0.6 Date: Wed, 1 Jun 2005 21:28:29 -0700 X-Mailer: Apple Mail (2.622) X-Miltered: at nez-perce with ID 429E8AFD.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 429E8AFB.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; woodyatt:01 jhw:01 wetware:01 ocaml:01 everyone--:01 ocaml:01 heap:01 red-black:01 binary:01 associative:01 red-black:01 binary:01 catenable:01 deque:01 parsing:01 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.2 X-Spam-Level: everyone-- Today, my OCaml Network Application Environment (NAE) project is releasing another maintenance update of its core foundation library. As the project page on SourceForge.Net says, OCaml NAE is "a collection of Objective Caml libraries to support the development of concurrent, single-threaded Internet application servers." For downloads and more information, please see: The Cf library was formerly known as the Pagoda Core Foundation, but it was never connected with the Pagoda project on SourceForge and should not be confused with it. An excerpt of the README file and the complete CHANGES record for this release are below. ===== OCaml NAE Core Foundation (cf) library ===== This distribution is the Objective Caml Network Application Environment (NAE) Core Foundation library, which is a collection of miscellaneous extensions to the Objective Caml standard library. Highlighted features include: - Functional streams and stream processors (extended). - Functional bootstrapped skew-binomial heap. - Functional red-black binary tree (associative array). - Functional sets based on red-black binary tree. - Functional real-time catenable deque. - Functional LL(x) parsing using state-exception monad. - Functional lazy deterministic finite automaton (DFA). - Functional lexical analyzer (using lazy DFA and monadic parser). - Functional substring list manipulation (message buffer chains). - Gregorian calendar date manipulation. - Standard time manipulation. - System time in Temps Atomique Internationale (TAI). - Unicode transcoding. - Extended socket interface (supports more options, and UDP w/multicast). - Universal resource identifier (URI) manipulation. - I/O event multiplexing (with Unix.select). Note: see the ISSUES file for a list of open problems in this release. ===== Required Components ===== This library requires the following external components: - Objective Caml (v3.08.3 or newer) - Findlib (tested with v0.8.1 and v1.0.4) Principal development was on Mac OS X 10.3. The final version of this library also compiled successfully and passed all self-tests without warnings on Suse Linux 9.0 for x86-32. Other platforms with POSIX-like environments should require only a minimal porting effort. One major open issue: the extended socket interface is broken under WIN32. (The author invites help porting the library to other environments.) ===== Version 0.6 ===== Highlights of the changes: + More bugs fixed (some critical). --- [Cf_rbtree] Fix bug in [Map.insert] that failed to replace nodes when the key specifies a node that is already in the map. (Thanks to Craig Falls, once again, for finding this bug.) --- [Cf_dfa] Improved lazy DFA module with a better functorial interface, to allow for more efficient symbol maps (to support, e.g. wide character lexers) and to decouple the symbol type from the cursor type, so that Cf_parser.X can be used easily in place of Cf_parser. --- [Cf_dfa, Cf_lexer] Fixed the documentation for the [( $@ )] operator to reflect the actual behavior. When the action parser does not accept the recognized sequence, then no other rule is selected and no other action functions are executed. --- [Cf_lexer] Updated to use the new [Cf_dfa] interface, though it is now deprecated in favor of the new, improved [Cf_lex] module (see below). --- [Cf_uri] Updated to use the new [Cf_lex] in place of the deprecated [Cf_lexer]. --- [various .c files] Rename custom data tags from 'pagoda' to 'ocnae'. + New functions. --- [Cf_rbtree, Cf_set, Cf_map] Add [of_list_incr], [of_list_decr], [of_seq_incr] and [of_seq_decr], which are optimized for lists and sequences known to be in increasing or decreasing order. These functions were derived from code contributed by Brian Hurt (thanks!) and implement a variant on Hinze's algorithm: --- [Cf_set] Add [size] function. --- [Cf_seq] Add [nil] value. Add [flatten] function. Requires Ocaml-3.08 now. --- [Cf_flow] Add [commute_string] function. --- [Cf_parser] Add [of_extended] and [to_extended] functions. Add [req] parser, an efficient shortcut for [alt (p :: err f :: [])]. Add [Error] exception for generic unparameterized errors. Add [altz] parser for match from a sequence (instead of a list) of choices. --- [Cf_scan_parser] Change [scanf] to return an ordinary Cf_parser.t function. Add [scanfx] to return a Cf_parser.X.t function. --- [Cf_regex] New module for regular expression parsing, matching and search. --- [Cf_lex] A new and improved lexical analysis module, with an interface derived from the now deprecated [Cf_lexer]. It offers a more flexible interface to the underlying [Cf_dfa] module, and its [( !~ )] and [( !$ )] operators parse their string arguments as regular subexpressions with the format defined in the new [Cf_regex] module. --- [README] Fixed an embarrassing word-choice bug, i.e. principle vs. principal. -- j h woodyatt markets are only free to the people who own them.