Browse thread
[Caml-list] release: cf-0.2 (pagoda core foundation)
- james woodyatt
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ 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) |
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