===== 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 International (TAI).
- Unicode transcoding.
- Universal resource identifier (URI) manipulation.

Additionally, the following noteworthy features are provided for compatibility
with earlier versions of this library.  Further development of these features
is expected to move to a new, separate [Nx] library.  These features are not
expected to improve in the [Cf] library for the version 0.x series, and they
will be removed in the 1.x series.

- Extended socket interface (supports more options, and UDP w/multicast).
- 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.10.0 or newer)
- Findlib (tested with v1.1.2p1)

Principal development was on Mac OS X 10.4 w/ XCode 2.4.1 using GCC 4.0.  Other
platforms with POSIX-like environments should require 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.)

===== Building =====

No 'configure' script is provided.  Compile the library with:

    $ make default

Compile both bytecode and native versions with:

    $ make default opt

Execute tests for byte and native versions with:

    $ make test test.opt

Install the library with ocamlfind using:

    $ make install

Uninstall the library with ocamlfind using:

    $ make uninstall

Make the reference documentation with ocamldoc using:

    $ make doc


--j h woodyatt <jhw@conjury.org>
  San Francisco, CA
