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.3 (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-07-30 (05:33)
From: james woodyatt <jhw@w...>
Subject: [Caml-list] release: cf-0.3 (pagoda core foundation)

I've been slow to follow through on my threats to release an update to 
the Pagoda Core Foundation, and I apologize for that.  My day job 
interrupted— in the immortal words of Sascha in the classic film 
_Casablanca_, "Yvonne, I love you, but he pays me."

Once again, I tuned the existing API somewhat.  Mostly in places where 
I hope few people are likely to tread.  I fixed a few bugs, and I made 
some performance tweaks to some obscure corners of the library, e.g. 
[Cf_gadget].  I also added some new modules (see below).

I upgraded to Ocaml 3.08 recently, and the library works fine with that 
version.  It should still compile with 3.07+2, but I can't promise that 
the next release won't use the cool new classless object feature in 
3.08 (omg! that is totally wizard! thanks, inria!)

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


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

         <>  (new location!)

There is still no programmer's guide.  If I learn that people are using 
this library, then maybe I'll write one.  (All serious development 
offers from commercial publishers will be seriously considered.)

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

Highlighted features include:

- Functional streams and stream processors (extended).
- Functional bootstrapped skew-binomial heap.
- Functional red-black binary tree (associative array).
- Functional sets and maps 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 and passed all self-tests without 
on Suse Linux 9.0 for x86-32.  Other platforms with POSIX-like 
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.3 =====

Highlights of the changes:

+ Rewrite the scheduler in [Cf_gadget] so that it sucks less wind.  The 
   is now built entirely out of mutable structures, and we got rid of 
the 'pin'
   type because we don't represent wires internally as integer keys in a 
+ Added [Cf_journal], a foundation for extensible diagnostic event 
   inspired by Log4j from the Apache Foundation.  (Look for a full suite 
   extensions to be sold separately.)
+ Removed the [?xf] optional exception function from the 
   function.  Use a derived cursor class with an [error] method that can 
   overridden for this purpose.
+ Added [Cf_scan_parser], which scans an input sequence using the 
[Scanf] module
   in the standard library.
+ Minor convenience functions added to [Cf_parser].
+ Other bug fixes.  (See CHANGES file.)

j h woodyatt <>
markets are only free to the people who own them.
To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: