prepare for 1.3

This commit is contained in:
Simon Cruanes 2017-07-29 18:08:58 +02:00
parent acb286d8e8
commit bedf9ecc1e
10 changed files with 38 additions and 20 deletions

View file

@ -1,5 +1,23 @@
= Changelog = Changelog
== 1.3
- deprecate `CCBool.negate`
- add `CCString.compare_natural` (closes #146)
- add callbacks in `CCCache.with_cache{,_rec}` (closes #140)
- tail-rec `CCList.split` (by @bikalgurung, see #138)
- change `CCRingBuffer.peek_{front,back}` to return options (closes #127)
- add `CCRingBuffer.is_full`
- add `CCArray.find_map{,_i}`, deprecated older names (closes #129)
- add `CCList.{keep,all}_{some,ok}` (closes #124)
- large refactor of `CCSimple_queue` (close #125)
- add `CCSimple_queue` to containers.data
- small change for consistency in `CCIntMap`
- bugfix in `CCRingBuffer.skip`, and corresponding tests
- cleanup and refactor of `CCRingBuffer` (see #126). Add strong tests.
- add rich testsuite to `CCIntMap`, based on @jmid's work
== 1.2 == 1.2
- make many modules extensions of stdlib (close #109) - make many modules extensions of stdlib (close #109)

2
_oasis
View file

@ -1,6 +1,6 @@
OASISFormat: 0.4 OASISFormat: 0.4
Name: containers Name: containers
Version: 1.2 Version: 1.3
Homepage: https://github.com/c-cube/ocaml-containers Homepage: https://github.com/c-cube/ocaml-containers
Authors: Simon Cruanes Authors: Simon Cruanes
License: BSD-2-clause License: BSD-2-clause

View file

@ -94,21 +94,21 @@ val sort_ranking : ('a -> 'a -> int) -> 'a t -> int array
val find_map : ('a -> 'b option) -> 'a t -> 'b option val find_map : ('a -> 'b option) -> 'a t -> 'b option
(** [find_map f a] returns [Some y] if there is an element [x] such (** [find_map f a] returns [Some y] if there is an element [x] such
that [f x = Some y], else it returns [None] that [f x = Some y], else it returns [None]
@since NEXT_RELEASE @since 1.3
*) *)
val find : ('a -> 'b option) -> 'a t -> 'b option val find : ('a -> 'b option) -> 'a t -> 'b option
(** Alias to {!find_map} (** Alias to {!find_map}
@deprecated since NEXT_RELEASE *) @deprecated since 1.3 *)
val find_map_i : (int -> 'a -> 'b option) -> 'a t -> 'b option val find_map_i : (int -> 'a -> 'b option) -> 'a t -> 'b option
(** Like {!find_map}, but also pass the index to the predicate function. (** Like {!find_map}, but also pass the index to the predicate function.
@since NEXT_RELEASE *) @since 1.3 *)
val findi : (int -> 'a -> 'b option) -> 'a t -> 'b option val findi : (int -> 'a -> 'b option) -> 'a t -> 'b option
(** Alias to {!find_map_i} (** Alias to {!find_map_i}
@since 0.3.4 @since 0.3.4
@deprecated since NEXT_RELEASE *) @deprecated since 1.3 *)
val find_idx : ('a -> bool) -> 'a t -> (int * 'a) option 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],

View file

@ -12,7 +12,7 @@ val equal : t -> t -> bool
val negate : t -> t val negate : t -> t
(** Negation on booleans (functional version of [not]) (** Negation on booleans (functional version of [not])
@deprecate since NEXT_RELEASE, simply use {!not} instead *) @deprecate since 1.3, simply use {!not} instead *)
type 'a printer = Format.formatter -> 'a -> unit type 'a printer = Format.formatter -> 'a -> unit

View file

@ -253,22 +253,22 @@ val filter_map : ('a -> 'b option) -> 'a t -> 'b t
val keep_some : 'a option t -> 'a t val keep_some : 'a option t -> 'a t
(** [filter_some l] retains only elements of the form [Some x]. (** [filter_some l] retains only elements of the form [Some x].
Same as [filter_map CCFun.id] Same as [filter_map CCFun.id]
@since NEXT_RELEASE *) @since 1.3 *)
val keep_ok : ('a, _) Result.result t -> 'a t val keep_ok : ('a, _) Result.result t -> 'a t
(** [filter_some l] retains only elements of the form [Some x]. (** [filter_some l] retains only elements of the form [Some x].
Same as [filter_map CCFun.id] Same as [filter_map CCFun.id]
@since NEXT_RELEASE *) @since 1.3 *)
val all_some : 'a option t -> 'a t option val all_some : 'a option t -> 'a t option
(** [all_some l] returns [Some l'] if all elements of [l] are of the form [Some x], (** [all_some l] returns [Some l'] if all elements of [l] are of the form [Some x],
or [None] otherwise. or [None] otherwise.
@since NEXT_RELEASE *) @since 1.3 *)
val all_ok : ('a, 'err) Result.result t -> ('a t, 'err) Result.result val all_ok : ('a, 'err) Result.result t -> ('a t, 'err) Result.result
(** [all_ok l] returns [Ok l'] if all elements of [l] are of the form [Ok x], (** [all_ok l] returns [Ok l'] if all elements of [l] are of the form [Ok x],
or [Error e] otherwise (with the first error met). or [Error e] otherwise (with the first error met).
@since NEXT_RELEASE *) @since 1.3 *)
val sorted_merge : ?cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list val sorted_merge : ?cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
(** Merges elements from both sorted list *) (** Merges elements from both sorted list *)

View file

@ -581,7 +581,7 @@ val compare_versions : string -> string -> int
val compare_natural : string -> string -> int val compare_natural : string -> string -> int
(** Natural Sort Order, comparing chunks of digits as natural numbers. (** Natural Sort Order, comparing chunks of digits as natural numbers.
https://en.wikipedia.org/wiki/Natural_sort_order https://en.wikipedia.org/wiki/Natural_sort_order
@since NEXT_RELEASE *) @since 1.3 *)
(*$T (*$T
compare_natural "foo1" "foo2" < 0 compare_natural "foo1" "foo2" < 0

View file

@ -37,7 +37,7 @@ type ('a, 'b) callback = in_cache:bool -> 'a -> 'b -> unit
Should never raise. Should never raise.
@param in_cache is [true] if the value was in cache, [false] @param in_cache is [true] if the value was in cache, [false]
if the value was just produced. if the value was just produced.
@since NEXT_RELEASE *) @since 1.3 *)
val with_cache : ?cb:('a, 'b) callback -> ('a, 'b) t -> ('a -> 'b) -> 'a -> 'b val with_cache : ?cb:('a, 'b) callback -> ('a, 'b) t -> ('a -> 'b) -> 'a -> 'b
(** [with_cache c f] behaves like [f], but caches calls to [f] in the (** [with_cache c f] behaves like [f], but caches calls to [f] in the

View file

@ -94,7 +94,7 @@ module type S = sig
val is_full : t -> bool val is_full : t -> bool
(** true if pushing an element would erase another element. (** true if pushing an element would erase another element.
@since NEXT_RELEASE *) @since 1.3 *)
val blit_from : t -> Array.t -> int -> int -> unit val blit_from : t -> Array.t -> int -> int -> unit
(** [blit_from buf from_buf o len] copies the slice [o, ... o + len - 1] from (** [blit_from buf from_buf o len] copies the slice [o, ... o + len - 1] from
@ -162,7 +162,7 @@ module type S = sig
val peek_front_exn : t -> Array.elt val peek_front_exn : t -> Array.elt
(** First value from front of [t], without modification. (** First value from front of [t], without modification.
@raise Empty if buffer is empty. @raise Empty if buffer is empty.
@since NEXT_RELEASE *) @since 1.3 *)
val peek_back : t -> Array.elt option val peek_back : t -> Array.elt option
(** Get the last value from back of [t], without modification. *) (** Get the last value from back of [t], without modification. *)
@ -170,7 +170,7 @@ module type S = sig
val peek_back_exn : t -> Array.elt val peek_back_exn : t -> Array.elt
(** Get the last value from back of [t], without modification. (** Get the last value from back of [t], without modification.
@raise Empty if buffer is empty. @raise Empty if buffer is empty.
@since NEXT_RELEASE *) @since 1.3 *)
val take_back : t -> Array.elt option val take_back : t -> Array.elt option
(** Take and remove the last value from back of [t], if any *) (** Take and remove the last value from back of [t], if any *)

View file

@ -13,7 +13,7 @@
@since 0.9 @since 0.9
Change in the API to provide only a bounded buffer Change in the API to provide only a bounded buffer
@since NEXT_RELEASE @since 1.3
*) *)
(** {2 Underlying Array} *) (** {2 Underlying Array} *)
@ -95,7 +95,7 @@ module type S = sig
val is_full : t -> bool val is_full : t -> bool
(** true if pushing an element would erase another element. (** true if pushing an element would erase another element.
@since NEXT_RELEASE *) @since 1.3 *)
val blit_from : t -> Array.t -> int -> int -> unit val blit_from : t -> Array.t -> int -> int -> unit
(** [blit_from buf from_buf o len] copies the slice [o, ... o + len - 1] from (** [blit_from buf from_buf o len] copies the slice [o, ... o + len - 1] from
@ -163,7 +163,7 @@ module type S = sig
val peek_front_exn : t -> Array.elt val peek_front_exn : t -> Array.elt
(** First value from front of [t], without modification. (** First value from front of [t], without modification.
@raise Empty if buffer is empty. @raise Empty if buffer is empty.
@since NEXT_RELEASE *) @since 1.3 *)
val peek_back : t -> Array.elt option val peek_back : t -> Array.elt option
(** Get the last value from back of [t], without modification. *) (** Get the last value from back of [t], without modification. *)
@ -171,7 +171,7 @@ module type S = sig
val peek_back_exn : t -> Array.elt val peek_back_exn : t -> Array.elt
(** Get the last value from back of [t], without modification. (** Get the last value from back of [t], without modification.
@raise Empty if buffer is empty. @raise Empty if buffer is empty.
@since NEXT_RELEASE *) @since 1.3 *)
val take_back : t -> Array.elt option val take_back : t -> Array.elt option
(** Take and remove the last value from back of [t], if any *) (** Take and remove the last value from back of [t], if any *)

View file

@ -4,7 +4,7 @@
(** {1 Functional queues (fifo)} *) (** {1 Functional queues (fifo)} *)
(** Simple implementation of functional queues (** Simple implementation of functional queues
@since NEXT_RELEASE *) @since 1.3 *)
type 'a sequence = ('a -> unit) -> unit type 'a sequence = ('a -> unit) -> unit
type 'a printer = Format.formatter -> 'a -> unit type 'a printer = Format.formatter -> 'a -> unit