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.2 (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-05-02 (00:42)
From: james woodyatt <jhw@w...>
Subject: [Caml-list] release: cf-0.2 (pagoda core foundation)

I know it's been less than a month, but Jean-Christophe Filliātre 
brought to my attention that the implementation of red-black binary 
trees in Cf exhibit underwhelming performance characteristics (with 
specifically very bad performance for [Cf_set.subset] and 
[Cf_set.intersect]).  And since the red-black binary trees are used in 
several other modules, I decided to tune up their performance.

I couldn't resist tuning the API a bit as well, so if you're a user of 
this library and my changing the API is a bummer for you, then let me 
say this: You Should Have Told Me You Were Using The Library.  (Since I 
don't know of anyone else using this library yet, I continue to
feel free to change the API without notice to suit my tastes 

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.

===== Pagoda Core Foundation (cf) library =====

This directory contains the Pagoda Core Foundation library, which is a
collection of miscellaneous extensions to the Objective Caml standard

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.
- I/O event multiplexing (with

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.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.)

===== Version 0.2 =====

Highlights of the changes:

+ Major overhaul of [Cf_rbtree] to address serious performance issues 
   improve performance of [Cf_dfa], [Cf_lexer], [Cf_poll] and 
+ Defined [Cf_set.T] and [Cf_map.T] module types for use in abstracting 
   underlying algorithm behind sets and maps.
+ Added [Cf_seq.constrain] (and [Cf_seq.constrain2] for consistency).
+ Defined [Cf_heap.T] and [Cf_pqueue.T] module types for use in 
   the use of skew-binomial heaps as either a heap or a priority queue.
   Reimplemented the interface to [Cf_sbheap] so it is consistent with 
   new [Cf_rbtree] interface.

j h woodyatt <>
that's my village calling... no doubt, they want their idiot back.

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