From d6f7f1570ef08771205714ab47bde3262c2335c2 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Wed, 11 Oct 2017 09:29:31 +0200 Subject: [PATCH] prepare for 1.4 --- CHANGELOG.adoc | 20 ++++++++++++++++++++ HOWTO.adoc | 2 +- _oasis | 2 +- src/core/CCArray.mli | 2 +- src/core/CCFormat.mli | 8 ++++---- src/core/CCMap.ml | 2 +- src/core/CCMap.mli | 2 +- src/core/CCRef.mli | 2 +- src/data/CCWBTree.ml | 2 +- src/data/CCWBTree.mli | 2 +- 10 files changed, 32 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 92ce2c9d..badb978e 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -1,5 +1,25 @@ = Changelog +== 1.4 + +- add `CCMap.union` +- add `CCRef.swap` +- add `CCArray.swap` +- change signature of `CCWBTree.get_rank` +- add `CCWBTree.get_rank{,_exn}` + +- more efficient `List.map` Using efficient chunking algorithm +- Fix `CCVector.append_array` (empty vector case) +- `CCFQueue.take_back_exn` raised InvalidArg instead of Empty on an empty queue +- faster `CCString.{prefix,suffix}` +- speed improvements and benchmarks for `CCString.{prefix,suffix}` + +- add ocp-indent file +- fix `CCFun.tap` example in doc +- specify behavior of `CCFQueue.take_{front,back}_l` in some corner cases +- More tests for CCVector.append and CCVector.append_array +- assertions and cleanup in `CCPool` + == 1.3 - deprecate `CCBool.negate` diff --git a/HOWTO.adoc b/HOWTO.adoc index 599a3e7c..ea0f84d9 100644 --- a/HOWTO.adoc +++ b/HOWTO.adoc @@ -10,7 +10,7 @@ can be removed. . `make update_next_tag` (to update `@since` comments; be careful not to change symlinks) . check status of modules (`{b status: foo}`) and update if required; removed deprecated functions, etc. -. update `CHANGELOG.md` (see its end to find the right git command) +. update `CHANGELOG.adoc` (see its end to find the right git command) . commit the changes . `git checkout stable` . `git merge master` diff --git a/_oasis b/_oasis index 7547035f..99dfa6f1 100644 --- a/_oasis +++ b/_oasis @@ -1,6 +1,6 @@ OASISFormat: 0.4 Name: containers -Version: 1.3 +Version: 1.4 Homepage: https://github.com/c-cube/ocaml-containers Authors: Simon Cruanes License: BSD-2-clause diff --git a/src/core/CCArray.mli b/src/core/CCArray.mli index 90dbb2b3..d0b5e4f9 100644 --- a/src/core/CCArray.mli +++ b/src/core/CCArray.mli @@ -25,7 +25,7 @@ val compare : 'a ord -> 'a t ord val swap : 'a t -> int -> int -> unit (** [swap arr i j] swaps elements at indices [i] and [j]. - @since NEXT_RELEASE *) + @since 1.4 *) val get : 'a t -> int -> 'a diff --git a/src/core/CCFormat.mli b/src/core/CCFormat.mli index 29360823..65830791 100644 --- a/src/core/CCFormat.mli +++ b/src/core/CCFormat.mli @@ -162,7 +162,7 @@ val some : 'a printer -> 'a option printer "what is your @{favorite color@}? @{blue@}! No, @{red@}! Ahhhhhhh@.";; ]} - {b status: experimental} + {b status: unstable} @since 0.15 *) val set_color_tag_handling : t -> unit @@ -177,13 +177,13 @@ val set_color_default : bool -> unit val with_color : string -> 'a printer -> 'a printer (** [with_color "Blue" pp] behaves like the printer [pp], but with the given style. - {b status: experimental} + {b status: unstable} @since 0.16 *) val with_colorf : string -> t -> ('a, t, unit, unit) format4 -> 'a (** [with_colorf "Blue" out "%s %d" "yolo" 42] will behave like {!Format.fprintf}, but wrapping the content with the given style - {b status: experimental} + {b status: unstable} @since 0.16 *) val with_color_sf : string -> ('a, t, unit, string) format4 -> 'a @@ -193,7 +193,7 @@ val with_color_sf : string -> ('a, t, unit, string) format4 -> 'a {[ CCFormat.with_color_sf "red" "%a" CCFormat.Dump.(list int) [1;2;3] |> print_endline;; ]} - {b status: experimental} + {b status: unstable} @since 0.21 *) val with_color_ksf : f:(string -> 'b) -> string -> ('a, t, unit, 'b) format4 -> 'a diff --git a/src/core/CCMap.ml b/src/core/CCMap.ml index 1f2a5d55..8caa6a11 100644 --- a/src/core/CCMap.ml +++ b/src/core/CCMap.ml @@ -32,7 +32,7 @@ module type S = sig val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t (** Union of both maps, using the function to combine bindings that belong to both inputs - @since NEXT_RELEASE *) + @since 1.4 *) val of_seq : (key * 'a) sequence -> 'a t diff --git a/src/core/CCMap.mli b/src/core/CCMap.mli index 15e3c24a..5804b5a6 100644 --- a/src/core/CCMap.mli +++ b/src/core/CCMap.mli @@ -35,7 +35,7 @@ module type S = sig val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t (** Union of both maps, using the function to combine bindings that belong to both inputs - @since NEXT_RELEASE *) + @since 1.4 *) val of_seq : (key * 'a) sequence -> 'a t (** Same as {!of_list} *) diff --git a/src/core/CCRef.mli b/src/core/CCRef.mli index ed7fc05a..c5d4750c 100644 --- a/src/core/CCRef.mli +++ b/src/core/CCRef.mli @@ -33,7 +33,7 @@ val get_then_incr : int t -> int val swap : 'a t -> 'a t -> unit (** Swap values. - @since NEXT_RELEASE *) + @since 1.4 *) val compare : 'a ord -> 'a t ord diff --git a/src/data/CCWBTree.ml b/src/data/CCWBTree.ml index 7277707e..f3ac3336 100644 --- a/src/data/CCWBTree.ml +++ b/src/data/CCWBTree.ml @@ -86,7 +86,7 @@ module type S = sig (** [get_rank k m] looks for the rank of [k] in [m], i.e. the index of [k] in the sorted list of bindings of [m]. [let (`At n) = get_rank k m in nth_exn n m = get m k] should hold. - @since NEXT_RELEASE *) + @since 1.4 *) val add : key -> 'a -> 'a t -> 'a t diff --git a/src/data/CCWBTree.mli b/src/data/CCWBTree.mli index 40f89b55..767735db 100644 --- a/src/data/CCWBTree.mli +++ b/src/data/CCWBTree.mli @@ -51,7 +51,7 @@ module type S = sig (** [get_rank k m] looks for the rank of [k] in [m], i.e. the index of [k] in the sorted list of bindings of [m]. [let (`At n) = get_rank k m in nth_exn n m = get m k] should hold. - @since NEXT_RELEASE *) + @since 1.4 *) val add : key -> 'a -> 'a t -> 'a t