* ANNOUNCE: OCaml NAE releases Cf-0.6
@ 2005-06-02 4:28 james woodyatt
0 siblings, 0 replies; only message in thread
From: james woodyatt @ 2005-06-02 4:28 UTC (permalink / raw)
To: The Caml Trade, OCNAE Help
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:
<http://sf.net/projects/ocnae/>
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:
<http://citeseer.ist.psu.edu/hinze99constructing.html>
--- [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 <jhw@wetware.com>
markets are only free to the people who own them.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-06-02 4:28 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-02 4:28 ANNOUNCE: OCaml NAE releases Cf-0.6 james woodyatt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox