fix and update README

This commit is contained in:
Simon Cruanes 2015-09-22 14:40:39 +02:00
parent 79d5b061dd
commit 375f457552

View file

@ -1,4 +1,4 @@
= ocaml-containers = = OCaml-containers =
:toc: macro :toc: macro
:source-highlighter: pygments :source-highlighter: pygments
@ -7,21 +7,21 @@ image::media/logo.png[logo]
What is _containers_? What is _containers_?
- A usable, reasonably well-designed library that extends OCaml's standard - A usable, reasonably well-designed library that extends OCaml's standard
library (in `core/`, packaged under `containers` in ocamlfind. Modules library (in 'src/core/', packaged under `containers` in ocamlfind. Modules
are totally independent and are prefixed with `CC` (for "containers-core" are totally independent and are prefixed with `CC` (for "containers-core"
or "companion-cube" because I'm megalomaniac). This part should be or "companion-cube" because I'm megalomaniac). This part should be
usable and should work. For instance, `CCList` contains functions and usable and should work. For instance, `CCList` contains functions and
lists including safe versions of `map` and `append`. It also lists including safe versions of `map` and `append`. It also
provides a drop-in replacement to the standard library, in the module provides a drop-in replacement to the standard library, in the module
`Containers` (intended to be opened, replaces some stdlib modules `Containers` (intended to be opened, replaces some stdlib modules
with extended ones) with extended ones).
- Several small additional libraries that complement it: - Several small additional libraries that complement it:
* `containers.data` with additional data structures that don't have an containers.data:: with additional data structures that don't have an
equivalent in the standard library; equivalent in the standard library;
* `containers.io` (deprecated) containers.io:: (deprecated)
* `containers.iter` with list-like and tree-like iterators; containers.iter:: with list-like and tree-like iterators;
* `containers.string` (in directory `string`) with containers.string:: (in directory `string`) with
a few packed modules that deal with strings (Levenshtein distance, a few packed modules that deal with strings (Levenshtein distance,
KMP search algorithm, and a few naive utils). Again, modules are independent KMP search algorithm, and a few naive utils). Again, modules are independent
and sometimes parametric on the string and char types (so they should and sometimes parametric on the string and char types (so they should
@ -33,12 +33,6 @@ What is _containers_?
sub-processes) sub-processes)
- A bigstring module using `bigarray` in `containers.bigarray` - A bigstring module using `bigarray` in `containers.bigarray`
- A lightweight S-expression printer and streaming parser in `containers.sexp` - A lightweight S-expression printer and streaming parser in `containers.sexp`
- A library using [Lwt](https://github.com/ocsigen/lwt/), `containers.lwt`.
Currently only contains experimental, unstable stuff.
- 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.
Some of the modules have been moved to their own repository (e.g. `sequence`, Some of the modules have been moved to their own repository (e.g. `sequence`,
`gen`, `qcheck`) and are on opam for great fun and profit. `gen`, `qcheck`) and are on opam for great fun and profit.
@ -49,7 +43,7 @@ toc::[]
== Change Log == Change Log
See https://github.com/c-cube/ocaml-containers/blob/master/CHANGELOG.md[this file]. See link:CHANGELOG.md[this file].
== Finding help == Finding help
@ -91,8 +85,9 @@ CC-SA3 http://en.wikipedia.org/wiki/File:Hypercube.svg[wikimedia].
== Contents == Contents
The design is mostly centered around polymorphism rather than functors. Such The library contains a <<core,Core part>> that mostly extends the stdlib
structures comprise (some modules in 'misc/', some other in 'core/'): and adds a few very common structures (heap, vector), and sub-libraries
that deal with either more specific things, or require additional dependencies.
[[core]] [[core]]
=== Core Modules (extension of the standard library) === Core Modules (extension of the standard library)
@ -220,7 +215,7 @@ The library has moved to https://github.com/c-cube/containers-misc .
== Build == Build
You will need OCaml `>=` 4.01.0. You will need OCaml `>=` 4.00.0.
=== Via opam === Via opam
@ -235,13 +230,13 @@ branch `stable` it is not necessary.
$ make $ make
To build and run tests (requires `oUnit`, `qtest`, and `qcheck`): To build and run tests (requires `oUnit` and https://github.com/vincent-hugot/iTeML[qtest]):
$ opam install oUnit qtest qcheck $ opam install oUnit qtest
$ ./configure --enable-tests $ ./configure --enable-tests --enable-unix --enable-bigarray
$ make test $ make test
To build the small benchmarking suite (requires `benchmark`): To build the small benchmarking suite (requires https://github.com/chris00/ocaml-benchmark[benchmark]):
$ opam install benchmark $ opam install benchmark
$ make bench $ make bench
@ -258,3 +253,4 @@ A few guidelines:
- add tests if possible (using `qtest`). - add tests if possible (using `qtest`).
Powered by image:http://oasis.forge.ocamlcore.org/oasis-badge.png[alt="OASIS", style="border: none;", link="http://oasis.forge.ocamlcore.org/"] Powered by image:http://oasis.forge.ocamlcore.org/oasis-badge.png[alt="OASIS", style="border: none;", link="http://oasis.forge.ocamlcore.org/"]