Version franēaise
Home     About     Download     Resources     Contact us    
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: -- (:)
From: james woodyatt <jhw@w...>
Subject: [Caml-list] release: cf-0.2 (pagoda core foundation)
everyone--

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

As before, the new distribution is available at either of the following 
URL's:

	<http://www.wetware.com/jhw/src/pagoda/cf-0.2.tar.bz2>
	<http://www.wetware.com/jhw/src/pagoda/cf-0.2.tar.gz>

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

	<http://www.wetware.com/jhw/src/pagoda/doc/>

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
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 IPv6 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.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 
WIN32.
(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 
(should
   improve performance of [Cf_dfa], [Cf_lexer], [Cf_poll] and 
[Cf_gadget]).
+ Defined [Cf_set.T] and [Cf_map.T] module types for use in abstracting 
the
   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 
abstracting
   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 
the
   new [Cf_rbtree] interface.


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

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners