diff --git a/CHANGELOG.md b/CHANGELOG.md index 70bd329a..141915f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,6 @@ - new `CCIO` module, much simpler, but incompatible interface - renamed `CCIO` to `advanced.CCMonadIO` -- `CCError.t` now has two type arguments (thanks to @hcarty) #### other changes @@ -14,12 +13,13 @@ - `CCVector.{top,top_exn}` - `CCFun.compose_binop` (binary composition) - `CCList.init` +- `CCError.map2` has a more general type (thanks to @hcarty) - new module `CCCache` * moved from `misc` * add `CCache`.{size,iter} * incompatible interface (functor -> values), much simpler to use - `lwt/Lwt_actor` stub, for erlang-style concurrency (albeit much much more naive) -- `misc/Mixtbl` +- `misc/Mixtbl` added from its old repository - more benchmarks, with a more general system to select/run them - more efficient versions of `CCList.{flatten,append,flat_map}`, some functions are now tailrec diff --git a/Makefile b/Makefile index baeea3fc..a2f236e3 100644 --- a/Makefile +++ b/Makefile @@ -57,6 +57,7 @@ push_doc: doc scp -r containers_string.docdir/* cedeela.fr:~/simon/root/software/containers/string/ scp -r containers_advanced.docdir/* cedeela.fr:~/simon/root/software/containers/advanced scp -r containers_misc.docdir/* cedeela.fr:~/simon/root/software/containers/misc/ + scp -r containers_lwt.docdir/* cedeela.fr:~/simon/root/software/containers/lwt/ DONTTEST=myocamlbuild.ml setup.ml $(wildcard **/*.cppo*) QTESTABLE=$(filter-out $(DONTTEST), \ diff --git a/README.md b/README.md index 98a05766..6776c4a2 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,9 @@ ocaml-containers modules of the stdlib. 4. A sub-library with complicated abstractions, `containers.advanced` (with a LINQ-like query module, batch operations using GADTs, and others) -5. Random stuff, with *NO* *GUARANTEE* of even being barely usable or tested, +5. A library using [Lwt](https://github.com/ocsigen/lwt/), `containers.lwt`. + Currently only contains experimental, unstable stuff. +6. Random stuff, with *NO* *GUARANTEE* of even being barely usable or tested, in other dirs (mostly `misc` but also `lwt` and `threads`). It's where I tend to write code when I want to test some idea, so half the modules (at least) are unfinished or don't really work. @@ -50,11 +52,6 @@ If you have comments, requests, or bugfixes, please share them! :-) This code is free, under the BSD license. -## Documentation - -The API documentation can be -found [here](http://cedeela.fr/~simon/software/containers). - ## Contents The design is mostly centered around polymorphism rather than functors. Such @@ -62,6 +59,12 @@ structures comprise (some modules in `misc/`, some other in `core/`): ### Core Structures +the core library, `containers`, now depends on +[cppo](https://github.com/mjambon/cppo) and `base-bytes` (provided +by ocamlfind). + +Documentation [here](http://cedeela.fr/~simon/software/containers). + - `CCHeap`, a purely functional heap structure. - `CCFQueue`, a purely functional double-ended queue structure - `CCBV`, mutable bitvectors @@ -72,9 +75,10 @@ structures comprise (some modules in `misc/`, some other in `core/`): - `CCList`, functions on lists, including tail-recursive implementations of `map` and `append` and many other things - `CCArray`, utilities on arrays and slices - `CCMultimap` and `CCMultiset`, functors defining persistent structures -- `CCHashtbl`, an extension of the standard hashtbl module +- `CCHashtbl`, `CCMap` extensions of the standard modules `Hashtbl` and `Map` - `CCFlatHashtbl`, a flat (open-addressing) hashtable functorial implementation - `CCKTree`, an abstract lazy tree structure (similar to what `CCKlist` is to lists) +- `CCTrie`, a prefix tree - small modules (basic types, utilities): - `CCInt` - `CCString` (basic string operations) @@ -87,6 +91,9 @@ structures comprise (some modules in `misc/`, some other in `core/`): - `CCPrint` (printing combinators) - `CCHash` (hashing combinators) - `CCError` (monadic error handling, very useful) +- `CCSexp`, a small S-expression library +- `CCIO`, basic utilities for IO +- `CCCache`, memoization caches, LRU, etc. ### String diff --git a/_oasis b/_oasis index 0ba9e705..528e8d56 100644 --- a/_oasis +++ b/_oasis @@ -148,6 +148,14 @@ Document containers_advanced XOCamlbuildPath: . XOCamlbuildLibraries: containers.advanced +Document containers_lwt + Title: Containers_lwt docs + Type: ocamlbuild (0.3) + BuildTools+: ocamldoc + Install: true + XOCamlbuildPath: . + XOCamlbuildLibraries: containers.lwt + Executable run_benchs Path: benchs/ Install: false diff --git a/lwt/lwt_actor.mli b/lwt/lwt_actor.mli index 6eca78c8..56c6aaa6 100644 --- a/lwt/lwt_actor.mli +++ b/lwt/lwt_actor.mli @@ -26,7 +26,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. (** {1 Small Actor system for Lwt} -Let's draw inspiration from Erlang. Just a tiny bit. +Let's draw inspiration from Erlang. Just a tiny bit. Currently +this module is unstable and experimental. + {b NOTE}: this module is not thread-safe at all. *)