mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
Merge branch 'br-2.4.1'
This commit is contained in:
commit
83251c9efa
7 changed files with 13 additions and 17 deletions
|
|
@ -1,5 +1,9 @@
|
||||||
= Changelog
|
= Changelog
|
||||||
|
|
||||||
|
== 2.4.1
|
||||||
|
|
||||||
|
- revert some compatibility-breaking changes in label modules
|
||||||
|
|
||||||
== 2.4
|
== 2.4
|
||||||
|
|
||||||
=== breaking:
|
=== breaking:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
opam-version: "2.0"
|
opam-version: "2.0"
|
||||||
name: "containers"
|
name: "containers"
|
||||||
version: "2.4"
|
version: "2.4.1"
|
||||||
author: "Simon Cruanes"
|
author: "Simon Cruanes"
|
||||||
maintainer: "simon.cruanes.2007@m4x.org"
|
maintainer: "simon.cruanes.2007@m4x.org"
|
||||||
synopsis: "A modular, clean and powerful extension of the OCaml standard library"
|
synopsis: "A modular, clean and powerful extension of the OCaml standard library"
|
||||||
|
|
|
||||||
|
|
@ -110,12 +110,10 @@ val reverse_in_place : 'a t -> unit
|
||||||
(** [reverse_in_place a] reverses the array [a] in place. *)
|
(** [reverse_in_place a] reverses the array [a] in place. *)
|
||||||
|
|
||||||
val sorted : ('a -> 'a -> int) -> 'a t -> 'a array
|
val sorted : ('a -> 'a -> int) -> 'a t -> 'a array
|
||||||
(* FIXME: better label this ~cmp ?? *)
|
|
||||||
(** [sorted f a] makes a copy of [a] and sorts it with [f].
|
(** [sorted f a] makes a copy of [a] and sorts it with [f].
|
||||||
@since 1.0 *)
|
@since 1.0 *)
|
||||||
|
|
||||||
val sort_indices : ('a -> 'a -> int) -> 'a t -> int array
|
val sort_indices : ('a -> 'a -> int) -> 'a t -> int array
|
||||||
(* FIXME: better label this ~cmp ?? *)
|
|
||||||
(** [sort_indices f a] returns a new array [b], with the same length as [a],
|
(** [sort_indices f a] returns a new array [b], with the same length as [a],
|
||||||
such that [b.(i)] is the index at which the [i]-th element of [sorted f a]
|
such that [b.(i)] is the index at which the [i]-th element of [sorted f a]
|
||||||
appears in [a]. [a] is not modified.
|
appears in [a]. [a] is not modified.
|
||||||
|
|
@ -125,7 +123,6 @@ val sort_indices : ('a -> 'a -> int) -> 'a t -> int array
|
||||||
@since 1.0 *)
|
@since 1.0 *)
|
||||||
|
|
||||||
val sort_ranking : ('a -> 'a -> int) -> 'a t -> int array
|
val sort_ranking : ('a -> 'a -> int) -> 'a t -> int array
|
||||||
(* FIXME: better label this ~cmp ?? *)
|
|
||||||
(** [sort_ranking f a] returns a new array [b], with the same length as [a],
|
(** [sort_ranking f a] returns a new array [b], with the same length as [a],
|
||||||
such that [b.(i)] is the index at which the [i]-th element of [a] appears
|
such that [b.(i)] is the index at which the [i]-th element of [a] appears
|
||||||
in [sorted f a]. [a] is not modified.
|
in [sorted f a]. [a] is not modified.
|
||||||
|
|
|
||||||
|
|
@ -108,12 +108,10 @@ val reverse_in_place : 'a t -> unit
|
||||||
(** [reverse_in_place a] reverses the array [a] in place. *)
|
(** [reverse_in_place a] reverses the array [a] in place. *)
|
||||||
|
|
||||||
val sorted : f:('a -> 'a -> int) -> 'a t -> 'a array
|
val sorted : f:('a -> 'a -> int) -> 'a t -> 'a array
|
||||||
(* FIXME: better label this ~cmp ?? *)
|
|
||||||
(** [sorted ~f a] makes a copy of [a] and sorts it with [~f].
|
(** [sorted ~f a] makes a copy of [a] and sorts it with [~f].
|
||||||
@since 1.0 *)
|
@since 1.0 *)
|
||||||
|
|
||||||
val sort_indices : f:('a -> 'a -> int) -> 'a t -> int array
|
val sort_indices : f:('a -> 'a -> int) -> 'a t -> int array
|
||||||
(* FIXME: better label this ~cmp ?? *)
|
|
||||||
(** [sort_indices ~f a] returns a new array [b], with the same length as [a],
|
(** [sort_indices ~f a] returns a new array [b], with the same length as [a],
|
||||||
such that [b.(i)] is the index at which the [i]-th element of [sorted ~f a]
|
such that [b.(i)] is the index at which the [i]-th element of [sorted ~f a]
|
||||||
appears in [a]. [a] is not modified.
|
appears in [a]. [a] is not modified.
|
||||||
|
|
@ -123,7 +121,6 @@ val sort_indices : f:('a -> 'a -> int) -> 'a t -> int array
|
||||||
@since 1.0 *)
|
@since 1.0 *)
|
||||||
|
|
||||||
val sort_ranking : f:('a -> 'a -> int) -> 'a t -> int array
|
val sort_ranking : f:('a -> 'a -> int) -> 'a t -> int array
|
||||||
(* FIXME: better label this ~cmp ?? *)
|
|
||||||
(** [sort_ranking ~f a] returns a new array [b], with the same length as [a],
|
(** [sort_ranking ~f a] returns a new array [b], with the same length as [a],
|
||||||
such that [b.(i)] is the index at which the [i]-th element of [a] appears
|
such that [b.(i)] is the index at which the [i]-th element of [a] appears
|
||||||
in [sorted ~f a]. [a] is not modified.
|
in [sorted ~f a]. [a] is not modified.
|
||||||
|
|
|
||||||
|
|
@ -377,9 +377,9 @@ val find_idx : ('a -> bool) -> 'a t -> (int * 'a) option
|
||||||
(** [find_idx p x] returns [Some (i,x)] where [x] is the [i]-th element of [l],
|
(** [find_idx p x] returns [Some (i,x)] where [x] is the [i]-th element of [l],
|
||||||
and [p x] holds. Otherwise returns [None]. *)
|
and [p x] holds. Otherwise returns [None]. *)
|
||||||
|
|
||||||
val remove : eq:('a -> 'a -> bool) -> 'a -> 'a t -> 'a t
|
val remove : eq:('a -> 'a -> bool) -> key:'a -> 'a t -> 'a t
|
||||||
(* FIXME: the original CCList.mli uses ~x instead of ~key !! *)
|
(* FIXME: the original CCList.mli uses ~x instead of ~key !! *)
|
||||||
(** [remove key l] removes every instance of [key] from [l]. Tail-recursive.
|
(** [remove ~key l] removes every instance of [key] from [l]. Tail-recursive.
|
||||||
@param eq equality function.
|
@param eq equality function.
|
||||||
@since 0.11 *)
|
@since 0.11 *)
|
||||||
|
|
||||||
|
|
@ -589,9 +589,8 @@ module Assoc : sig
|
||||||
@since 0.16 *)
|
@since 0.16 *)
|
||||||
|
|
||||||
val update :
|
val update :
|
||||||
eq:('a->'a->bool) -> ('b option -> 'b option) -> 'a -> ('a,'b) t -> ('a,'b) t
|
eq:('a->'a->bool) -> f:('b option -> 'b option) -> 'a -> ('a,'b) t -> ('a,'b) t
|
||||||
(* FIXME: the original no labels mli kept the ~f label ! *)
|
(** [update k ~f l] updates [l] on the key [k], by calling [f (get l k)]
|
||||||
(** [update k f l] updates [l] on the key [k], by calling [f (get l k)]
|
|
||||||
and removing [k] if it returns [None], mapping [k] to [v'] if it
|
and removing [k] if it returns [None], mapping [k] to [v'] if it
|
||||||
returns [Some v'].
|
returns [Some v'].
|
||||||
@since 0.16 *)
|
@since 0.16 *)
|
||||||
|
|
|
||||||
|
|
@ -375,7 +375,7 @@ val find_idx : f:('a -> bool) -> 'a t -> (int * 'a) option
|
||||||
(** [find_idx p x] returns [Some (i,x)] where [x] is the [i]-th element of [l],
|
(** [find_idx p x] returns [Some (i,x)] where [x] is the [i]-th element of [l],
|
||||||
and [p x] holds. Otherwise returns [None]. *)
|
and [p x] holds. Otherwise returns [None]. *)
|
||||||
|
|
||||||
val remove : eq:(('a -> 'a -> bool) [@keep_label]) -> key:'a -> 'a t -> 'a t
|
val remove : eq:(('a -> 'a -> bool) [@keep_label]) -> key:('a [@keep_label]) -> 'a t -> 'a t
|
||||||
(* FIXME: the original CCList.mli uses ~x instead of ~key !! *)
|
(* FIXME: the original CCList.mli uses ~x instead of ~key !! *)
|
||||||
(** [remove ~key l] removes every instance of [key] from [l]. Tail-recursive.
|
(** [remove ~key l] removes every instance of [key] from [l]. Tail-recursive.
|
||||||
@param eq equality function.
|
@param eq equality function.
|
||||||
|
|
@ -587,8 +587,7 @@ module Assoc : sig
|
||||||
@since 0.16 *)
|
@since 0.16 *)
|
||||||
|
|
||||||
val update :
|
val update :
|
||||||
eq:(('a->'a->bool) [@keep_label]) -> f:('b option -> 'b option) -> 'a -> ('a,'b) t -> ('a,'b) t
|
eq:(('a->'a->bool) [@keep_label]) -> f:(('b option -> 'b option) [@keep_label]) -> 'a -> ('a,'b) t -> ('a,'b) t
|
||||||
(* FIXME: the original no labels mli kept the ~f label ! *)
|
|
||||||
(** [update k ~f l] updates [l] on the key [k], by calling [f (get l k)]
|
(** [update k ~f l] updates [l] on the key [k], by calling [f (get l k)]
|
||||||
and removing [k] if it returns [None], mapping [k] to [v'] if it
|
and removing [k] if it returns [None], mapping [k] to [v'] if it
|
||||||
returns [Some v'].
|
returns [Some v'].
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ let search_all pat s =
|
||||||
List.rev (search_rest [] 0)
|
List.rev (search_rest [] 0)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(* replase first occurence of pat with subst in s *)
|
(* replace first occurrence of pat with subst in s *)
|
||||||
let replace_first pat subst s =
|
let replace_first pat subst s =
|
||||||
let pos = search pat s 0 in
|
let pos = search pat s 0 in
|
||||||
let patl = String.length pat
|
let patl = String.length pat
|
||||||
|
|
@ -43,7 +43,7 @@ let replace_first pat subst s =
|
||||||
Bytes.unsafe_to_string buf
|
Bytes.unsafe_to_string buf
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(* replase first occurence of pat with subst in s *)
|
(* replace all occurrences of pat with subst in s *)
|
||||||
let replace_all pat subst s =
|
let replace_all pat subst s =
|
||||||
let pos = search_all pat s in
|
let pos = search_all pat s in
|
||||||
let patl = String.length pat
|
let patl = String.length pat
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue