update of README

This commit is contained in:
Simon Cruanes 2013-03-05 11:48:49 +01:00
parent 151156fb43
commit 9ce511156e

View file

@ -2,7 +2,24 @@ ocaml-containers
================ ================
A bunch of containers,written in different occasions. Probably not very high A bunch of containers,written in different occasions. Probably not very high
quality, since not all containers are tested. quality, since not all containers are tested (yet).
The design is centerred around polymorphism rather than functors. Such
structures comprise:
- `PHashtbl`, a polymorphic hashtable (with open addressing)
- `SplayTree`, a polymorphic splay heap implementation
- `Heap`, an imperative heap based on `SplayTree`
- `Graph`, a polymorphic imperative directed graph (on top of `PHashtbl`)
- `Hashset`, a polymorphic imperative set on top of `PHashtbl`
Other structures (not touched for months, may not work properly) are:
- `Cache`, a low level memoization cache for pairs of keys
- `Vector`, a growable array (pure OCaml, no C)
- `Deque`, an imperative double ended FIFO (double-linked list)
- `FlatHashtbl`, a deprecated open addressing hashtable with
a functorial interface (replaced by PHashtbl)
## Use ## Use
@ -11,6 +28,8 @@ files to your own project. The last solution has the benefits that you
don't have additional dependencies nor build complications (and it may enable don't have additional dependencies nor build complications (and it may enable
more inlining). I therefore recommand it for its simplicity. more inlining). I therefore recommand it for its simplicity.
If you have comments, requests, or bugfixes, please share them! :-)
## Build ## Build
You need the library `sequence`. With opam, type `opam install sequence`. You need the library `sequence`. With opam, type `opam install sequence`.
@ -21,11 +40,16 @@ Then:
To build and run tests (requires `oUnit`): To build and run tests (requires `oUnit`):
$ opam install oUnit
$ make tests $ make tests
$ ./tests.native $ ./tests.native
To build the small benchmarking suite (requires `Bench`):
$ opam install bench
$ make bench
$ ./benchs.native
## License ## License
This code is free, under the BSD license. The module `leftistheap` is due This code is free, under the BSD license.
to [Jean-Christophe Filliâtre](https://www.lri.fr/~filliatr/), under
the GPL license.