mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
prepare for 1.4
This commit is contained in:
parent
66a8dfc396
commit
d6f7f1570e
10 changed files with 32 additions and 12 deletions
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
2
_oasis
2
_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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ val some : 'a printer -> 'a option printer
|
|||
"what is your @{<White>favorite color@}? @{<blue>blue@}! No, @{<red>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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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} *)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue