Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] release: cf-0.1 (pagoda core foundation)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-04-17 (04:40)
From: james woodyatt <jhw@w...>
Subject: [Caml-list] release: cf-0.1 (pagoda core foundation)

I am releasing an update to the Core Foundation library of my Pagoda 
project (which contains other foundation libraries yet unreleased).  
The big deal is that I fixed the Cf library so it builds and works on 
Suse Linux 9.0 as well as Mac OS X 10.3, and the socket extensions now 
contain support for UDP (both IPv4 and IPv6, as well as both unicast 
and multicast).  The license is *still* the 2-clause BSD-style (I *do* 
live in San Francisco, you know— the neighborhood has a reputation to 

As before, the new distribution is available at either of the following 


And the online documentation (generated by ocamldoc) can be found here:


There is still no programmer's guide.  If people start using this 
library, then maybe I'll write one.  As far as I can tell, nobody else 
is using this library yet.  (If the terms of the BSD license are a 
problem for you, then I'm willing to negotiate.)

----- README -----

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 IPv6 and UDP w/multicast).
- Universal resource identifier (URI) manipulation.
- Extensions for I/O event multiplexing (with

Note: see the ISSUES file for a list of open problems in this release.

===== New for Version 0.1 =====

Highlights of the changes:

+ Compile and pass self-tests on Suse Linux 9.0.
+ Unified [sequence] and [accumulate] monad functions in [Cf_seq].
+ Added [Cf_exnopt] module with a simple convenience type.
+ New monadic constructors for [Cf_seq] and [Cf_flow] types.
+ Moderate overhaul of [Cf_gadget] (fix bugs, design problems).
+ Fix portability bugs in [Cf_socket] and cognates.
+ Add support for UDP, IP multicast and network interface selection.
+ Fix bug in [Cf_poll.idle] event polling (and give a timestamp).
+ Slightly better self-tests for [Cf_socket].

Note: see the CHANGES file for technical details about these changes.

===== Required Components =====

This library requires the following external components:

- Objective Caml (v3.07+2 or newer)
- Findlib (tested with v0.8.1 and v1.0.4)

Principle development was on Mac OS X 10.3.  The final version of this
library also compiled successfully without warnings and self-tests on
Suse Linux 9.0 on 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 
(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 <>
   San Francisco, CA

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: