@@ -21,19 +21,12 @@ cross-module dependencies).
21
21
22
22
containers.data:: with additional data structures that don't have an
23
23
equivalent in the standard library;
24
- containers.io:: (deprecated)
25
24
containers.iter:: with list-like and tree-like iterators;
26
- containers.string:: (in directory `string`) with
27
- a few packed modules that deal with strings (Levenshtein distance,
28
- KMP search algorithm, and a few naive utils). Again, modules are independent
29
- and sometimes parametric on the string and char types (so they should
30
- be able to deal with your favorite unicode library).
31
25
32
26
- A sub-library with complicated abstractions, `containers.advanced` (with
33
27
a LINQ-like query module, batch operations using GADTs, and others).
34
28
- Utilities around the `unix` library in `containers.unix` (mainly to spawn
35
29
sub-processes)
36
- - A bigstring module using `bigarray` in `containers.bigarray` (*deprecated* )
37
30
- A lightweight S-expression printer and streaming parser in `containers.sexp`
38
31
39
32
Some of the modules have been moved to their own repository (e.g. `sequence` ,
@@ -103,9 +96,10 @@ sequence:: `'a sequence = (unit -> 'a) -> unit` is also an iterator type.
103
96
It is easier to define on data structures than `gen`, but it a bit less
104
97
powerful. The opam library https://github.com/c-cube/sequence[sequence]
105
98
can be used to consume and produce values of this type.
106
- error:: `'a or_error = [`Error of string | `Ok of 'a]` is a error type
107
- that is used in other libraries, too. The reference module in containers
108
- is `CCError`.
99
+ error:: (DEPRECATED) `'a or_error = [`Error of string | `Ok of 'a]` is a error type
100
+ that is used in other libraries, too. It is now deprecated and
101
+ replaced with `('a, string) Result.result`, supported in
102
+ `CCResult`.
109
103
klist:: `'a klist = unit -> [`Nil | `Cons of 'a * 'a klist]` is a lazy list
110
104
without memoization, used as a persistent iterator. The reference
111
105
module is `CCKList` (in `containers.iter`).
@@ -125,7 +119,8 @@ Documentation http://cedeela.fr/~simon/software/containers[here].
125
119
- `CCHeap`, a purely functional heap structure
126
120
- `CCVector`, a growable array (pure OCaml, no C) with mutability annotations
127
121
- `CCList`, functions on lists, including tail-recursive implementations of `map` and `append` and many other things
128
- - `CCArray`, utilities on arrays and slices
122
+ - `CCArray`, utilities on arrays
123
+ - `CCArray_slice`, array slices
129
124
- `CCHashtbl`, `CCMap` extensions of the standard modules `Hashtbl` and `Map`
130
125
- `CCInt`
131
126
- `CCString` (basic string operations)
@@ -136,9 +131,8 @@ Documentation http://cedeela.fr/~simon/software/containers[here].
136
131
- `CCFloat`
137
132
- `CCOrd` (combinators for total orderings)
138
133
- `CCRandom` (combinators for random generators)
139
- - `CCPrint` (printing combinators)
140
134
- `CCHash` (hashing combinators)
141
- - `CCError ` (monadic error handling, very useful)
135
+ - `CCResult ` (monadic error handling, very useful)
142
136
- `CCIO`, basic utilities for IO (channels, files)
143
137
- `CCInt64,` utils for `int64`
144
138
- `CCChar`, utils for `char`
@@ -147,7 +141,6 @@ Documentation http://cedeela.fr/~simon/software/containers[here].
147
141
=== Containers.data
148
142
149
143
- `CCBitField`, bitfields embedded in integers
150
- - `CCBloom`, a bloom filter
151
144
- `CCCache`, memoization caches, LRU, etc.
152
145
- `CCFlatHashtbl`, a flat (open-addressing) hashtable functorial implementation
153
146
- `CCTrie`, a prefix tree
@@ -163,19 +156,13 @@ Documentation http://cedeela.fr/~simon/software/containers[here].
163
156
with batch operations
164
157
- `CCIntMap`, map specialized for integer keys based on Patricia Trees,
165
158
with fast merges
166
- - `CCHashconsedSet`, a set structure with sharing of sub-structures
167
159
- `CCGraph`, a small collection of graph algorithms
168
160
- `CCBitField`, a type-safe implementation of bitfields that fit in `int`
169
161
- `CCWBTree`, a weight-balanced tree, implementing a map interface
170
162
- `CCRAL`, a random-access list structure, with `O(1)` cons/hd/tl and `O(ln(n))`
171
163
access to elements by their index.
172
164
- `CCImmutArray`, immutable interface to arrays
173
165
174
- === Containers.io
175
-
176
- *deprecated*, `CCIO` is now a <<core,core>> module. You can still install it and
177
- depend on it but it contains no useful module.
178
-
179
166
=== Containers.unix
180
167
181
168
- `CCUnix`, utils for `Unix`
@@ -193,20 +180,6 @@ Iterators:
193
180
- `CCKList`, a persistent iterator structure (akin to a lazy list, without memoization)
194
181
- `CCKTree`, an abstract lazy tree structure
195
182
196
- === String
197
-
198
- In the module `Containers_string`:
199
- - `Levenshtein`: edition distance between two strings
200
- - `KMP`: Knuth-Morris-Pratt substring algorithm
201
- - `Parse`: simple parser combinators
202
-
203
- === Advanced
204
-
205
- In the module `Containers_advanced`:
206
- - `CCLinq`, high-level query language over collections
207
- - `CCCat`, a few categorical structures
208
- - `CCBatch`, to combine operations on collections into one traversal
209
-
210
183
=== Thread
211
184
212
185
In the library `containers.thread`, for preemptive system threads:
@@ -229,7 +202,7 @@ The library has moved to https://github.com/c-cube/containers-misc .
229
202
230
203
== Documentation
231
204
232
- In general, see http://c-cube.github.io/ocaml-containers/ or
205
+ In general, see http://c-cube.github.io/ocaml-containers/ or
233
206
http://cedeela.fr/~simon/software/containers
234
207
235
208
by version:
@@ -258,7 +231,7 @@ branch `stable` it is not necessary.
258
231
To build and run tests (requires `oUnit` and https://github.com/vincent-hugot/iTeML[qtest]):
259
232
260
233
$ opam install oUnit qtest
261
- $ ./configure --enable-tests --enable-unix --enable-bigarray
234
+ $ ./configure --enable-tests --enable-unix
262
235
$ make test
263
236
264
237
To build the small benchmarking suite (requires https://github.com/chris00/ocaml-benchmark[benchmark]):
0 commit comments