mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 03:05:28 -05:00
preparing version 0.10
This commit is contained in:
parent
136df67606
commit
0efc342177
12 changed files with 37 additions and 22 deletions
25
CHANGELOG.md
25
CHANGELOG.md
|
|
@ -1,5 +1,20 @@
|
|||
# Changelog
|
||||
|
||||
## 0.10
|
||||
|
||||
- add `containers_misc.Puf.iter`
|
||||
- add `CCString.{lines,unlines,concat_gen}`
|
||||
- `CCUnix` (with a small subprocess API)
|
||||
- add `CCList.{sorted_merge_uniq, uniq_succ}`
|
||||
- breaking: fix documentation of `CCList.sorted_merge` (different semantics)
|
||||
- `CCPersistentArray` (credit to @gbury and Jean-Christophe Filliâtre)
|
||||
- `CCIntMap` (big-endian patricia trees) in containers.data
|
||||
- bugfix in `CCFQueue.add_seq_front`
|
||||
- add `CCFQueue.{rev, --}`
|
||||
- add `App_parse` in `containers_string`, experimental applicative parser combinators
|
||||
- remove `containers.pervasives`, add the module `Containers` to core
|
||||
- bugfix in `CCFormat.to_file`
|
||||
|
||||
## 0.9
|
||||
|
||||
- add `Float`, `Ref`, `Set`, `Format` to `CCPervasives`
|
||||
|
|
@ -178,7 +193,7 @@
|
|||
- renamed threads/future to threads/CCFuture
|
||||
- big upgrade of `RAL` (random access lists)
|
||||
- `CCList.Ref` to help use references on lists
|
||||
- `CCKList`: group,uniq,sort,sort_uniq,repeat and cycle, infix ops, applicative,product
|
||||
- `CCKList`: `group,uniq,sort,sort_uniq,repeat` and `cycle`, infix ops, applicative,product
|
||||
- `CCTrie.above/below`: ranges of items
|
||||
- more functions in `CCPair`
|
||||
- `CCCat`: funny (though useless) definitions inspired from Haskell
|
||||
|
|
@ -192,7 +207,7 @@
|
|||
- conversions for `CCString`
|
||||
- `CCHashtbl`: open-addressing table (Robin-Hood hashing)
|
||||
- registered printers for `CCError`.guard,wrap1,etc.
|
||||
- monadic operator in `CCList`: map_m_par
|
||||
- monadic operator in `CCList`: `map_m_par`
|
||||
- simple interface to `PrintBox` now more powerful
|
||||
- constructors for 1 or 2 elements fqueues
|
||||
- bugfixes in BTree (insertion should work now)
|
||||
|
|
@ -206,7 +221,7 @@
|
|||
- `CCopt.pure`
|
||||
- updated `CCPersistentHashtbl` with new functions; updated doc, simplified code
|
||||
- move `CCString` into core/, since it deals with a basic type; also add some features to `CCString` (Sub and Split modules to deal with slices and splitting by a string)
|
||||
- `CCArray.blit`, .Sub.to_slice; some bugfixes
|
||||
- `CCArray.blit`, `.Sub.to_slice`; some bugfixes
|
||||
- applicative and lifting operators for `CCError`
|
||||
- `CCError.map2`
|
||||
- more combinators in `CCError`
|
||||
|
|
@ -219,9 +234,9 @@
|
|||
- `CCOpt.sequence_l`
|
||||
- mplus instance for `CCOpt`
|
||||
- monad instance for `CCFun`
|
||||
- updated description in _oasis
|
||||
- updated description in `_oasis`
|
||||
- `CCTrie`, a compressed functorial persistent trie structure
|
||||
- fix `CCPrint.unit`, add `CCPrint.silent`
|
||||
- fix type mismatch
|
||||
|
||||
note: git log --no-merges previous_version..HEAD --pretty=%s
|
||||
note: `git log --no-merges previous_version..HEAD --pretty=%s`
|
||||
|
|
|
|||
2
HOWTO.md
2
HOWTO.md
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
## Make a release
|
||||
|
||||
1. `make test-all`
|
||||
1. `make test`
|
||||
2. update version in `_oasis`
|
||||
3. `make update_next_tag` (to update `@since` comments; be careful not to change symlinks)
|
||||
4. update `CHANGELOG.md` (see its end to find the right git command)
|
||||
|
|
|
|||
2
_oasis
2
_oasis
|
|
@ -1,6 +1,6 @@
|
|||
OASISFormat: 0.4
|
||||
Name: containers
|
||||
Version: 0.9
|
||||
Version: 0.10
|
||||
Homepage: https://github.com/c-cube/ocaml-containers
|
||||
Authors: Simon Cruanes
|
||||
License: BSD-2-clause
|
||||
|
|
|
|||
|
|
@ -126,14 +126,14 @@ val sort_uniq : ?cmp:('a -> 'a -> int) -> 'a list -> 'a list
|
|||
val sorted_merge_uniq : ?cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
|
||||
(** [sorted_merge_uniq l1 l2] merges the sorted lists [l1] and [l2] and
|
||||
removes duplicates
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
val uniq_succ : ?eq:('a -> 'a -> bool) -> 'a list -> 'a list
|
||||
(** [uniq_succ l] removes duplicate elements that occur one next to the other.
|
||||
Examples:
|
||||
[uniq_succ [1;2;1] = [1;2;1]]
|
||||
[uniq_succ [1;1;2] = [1;2]]
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
(** {2 Indices} *)
|
||||
|
||||
|
|
|
|||
|
|
@ -115,23 +115,23 @@ val suffix : suf:string -> string -> bool
|
|||
|
||||
val lines : string -> string list
|
||||
(** [lines s] returns a list of the lines of [s] (splits along '\n')
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
val lines_gen : string -> string gen
|
||||
(** [lines_gen s] returns a generator of the lines of [s] (splits along '\n')
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
val concat_gen : sep:string -> string gen -> string
|
||||
(** [concat_gen ~sep g] concatenates all strings of [g], separated with [sep].
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
val unlines : string list -> string
|
||||
(** [unlines l] concatenates all strings of [l], separated with '\n'
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
val unlines_gen : string gen -> string
|
||||
(** [unlines_gen g] concatenates all strings of [g], separated with '\n'
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
(*$Q
|
||||
Q.printable_string (fun s -> unlines (lines s) = s)
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ Changed [Opt] to [Option] to better reflect that this module is about the
|
|||
Renamed from [CCPervasives] in [containers.pervasives], to [Containers]
|
||||
in the core library [containers]
|
||||
|
||||
@since NEXT_RELEASE
|
||||
@since 0.10
|
||||
*)
|
||||
|
||||
module Array = struct
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ val append : 'a t -> 'a t -> 'a t
|
|||
|
||||
val rev : 'a t -> 'a t
|
||||
(** Reverse the queue, O(n) complexity
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
val map : ('a -> 'b) -> 'a t -> 'b t
|
||||
(** Map values *)
|
||||
|
|
@ -146,5 +146,5 @@ val of_klist : 'a klist -> 'a t
|
|||
|
||||
val (--) : int -> int -> int t
|
||||
(** [a -- b] is the integer range from [a] to [b], both included.
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
(** {1 Map specialized for Int keys}
|
||||
|
||||
{b status: unstable}
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
type 'a t
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ From the paper by Jean-Christophe Filliâtre,
|
|||
"A persistent Union-Find data structure", see
|
||||
{{: https://www.lri.fr/~filliatr/ftp/publis/puf-wml07.ps} the ps version}
|
||||
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
type 'a t
|
||||
(** The type of persistent arrays *)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
Playing stuff, don't use (yet?).
|
||||
|
||||
{b status: experimental}
|
||||
@since NEXT_RELEASE
|
||||
@since 0.10
|
||||
*)
|
||||
|
||||
module type MONAD = sig
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
]}
|
||||
|
||||
{b status: experimental}
|
||||
@since NEXT_RELEASE
|
||||
@since 0.10
|
||||
*)
|
||||
|
||||
type ('a,'b) result = [`Error of 'b | `Ok of 'a]
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
Some useful functions built on top of Unix.
|
||||
|
||||
{b status: unstable}
|
||||
@since NEXT_RELEASE *)
|
||||
@since 0.10 *)
|
||||
|
||||
type 'a or_error = [`Ok of 'a | `Error of string]
|
||||
type 'a gen = unit -> 'a option
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue