Skip to content

Commit aa05f69

Browse files
committed
prepare for 3.5
1 parent 30419a2 commit aa05f69

12 files changed

+41
-26
lines changed

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Changelog
22

3+
## 3.5
4+
5+
- add `CCHash.map` and `CCHash.bytes`
6+
- CCIO: add many `Seq.t` based functions
7+
- CCUtf8string: add `{make,empty,of_uchar}`
8+
- add `CCFormat.{const_string,opaque}`
9+
- add `CCOpt.{some,none}`
10+
- CCFormat: expose `ANSI_codes` module
11+
- CCBV: add `equal`, refactor for performance and readability
12+
- CCList: add `{sorted_diff_uniq,sorted_mem,sorted_diff,sorted_remove}`
13+
14+
- fix(bv): index error in union
15+
- test: add some property tests on `Csexp/Canonical_sexp`
16+
- bv: add more tests, including regression for #370
17+
318
## 3.4
419

520
- Add `CCOpt.get_exn_or` and deprecate `CCOpt.get_exn`

containers-data.opam

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
opam-version: "2.0"
2-
version: "3.4"
2+
version: "3.5"
33
author: "Simon Cruanes"
44
maintainer: "[email protected]"
55
synopsis: "A set of advanced datatypes for containers"

containers-thread.opam

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
opam-version: "2.0"
2-
version: "3.4"
2+
version: "3.5"
33
author: "Simon Cruanes"
44
maintainer: "[email protected]"
55
license: "BSD-2"

containers.opam

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
opam-version: "2.0"
22
name: "containers"
3-
version: "3.4"
3+
version: "3.5"
44
author: "Simon Cruanes"
55
maintainer: "[email protected]"
66
license: "BSD-2"

src/core/CCFormat.mli

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,12 +170,12 @@ val some : 'a printer -> 'a option printer
170170
val const_string : string -> 'a printer
171171
(** [const_string s] is a printer that ignores its input and
172172
always prints [s].
173-
@since NEXT_RELEASE *)
173+
@since 3.5 *)
174174

175175
val opaque : 'a printer
176176
(** [opaque] is [const_string "opaque"].
177177
The exact string used is not stable.
178-
@since NEXT_RELEASE *)
178+
@since 3.5 *)
179179

180180
val lazy_force : 'a printer -> 'a lazy_t printer
181181
(** [lazy_force pp out x] forces [x] and prints the result with [pp].
@@ -275,7 +275,7 @@ val with_color_ksf : f:(string -> 'b) -> string -> ('a, t, unit, 'b) format4 ->
275275

276276

277277
(** ANSI escape codes. This contains lower level functions for them.
278-
@since NEXT_RELEASE *)
278+
@since 3.5 *)
279279
module ANSI_codes : sig
280280
type color =
281281
[ `Black

src/core/CCHash.mli

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ val slice : string -> int -> int t
3939

4040
val bytes : bytes t
4141
(** Hash a byte array.
42-
@since NEXT_RELEASE *)
42+
@since 3.5 *)
4343

4444
val string : string t
4545

@@ -61,7 +61,7 @@ val map : ('a -> 'b) -> 'b t -> 'a t
6161
let hash_str_set : Str_set.t CCHash.t = CCHash.(map Str_set.to_seq @@ seq string)
6262
]}
6363
64-
@since NEXT_RELEASE *)
64+
@since 3.5 *)
6565

6666
val if_ : bool -> 'a t -> 'a t -> 'a t
6767
(** Decide which hash function to use depending on the boolean. *)

src/core/CCIO.mli

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ val read_chunks_seq : ?size:int -> in_channel -> string Seq.t
7575
(** Read the channel's content into chunks of size [size].
7676
{b NOTE} the generator must be used within the lifetime of the channel,
7777
see warning at the top of the file.
78-
@since NEXT_RELEASE *)
78+
@since 3.5 *)
7979

8080
val read_line : in_channel -> string option
8181
(** Read a line from the channel. Returns [None] if the input is terminated.
@@ -90,7 +90,7 @@ val read_lines_seq : in_channel -> string Seq.t
9090
(** Read all lines.
9191
{b NOTE} the seq must be used within the lifetime of the channel,
9292
see warning at the top of the file.
93-
@since NEXT_RELEASE *)
93+
@since 3.5 *)
9494

9595
val read_lines_l : in_channel -> string list
9696
(** Read all lines into a list. *)
@@ -130,14 +130,14 @@ val write_gen : ?sep:string -> out_channel -> string gen -> unit
130130
val write_seq : ?sep:string -> out_channel -> string Seq.t -> unit
131131
(** Write the given strings on the output. If provided, add [sep] between
132132
every two strings (but not at the end).
133-
@since NEXT_RELEASE *)
133+
@since 3.5 *)
134134

135135
val write_lines : out_channel -> string gen -> unit
136136
(** Write every string on the output, followed by "\n". *)
137137

138138
val write_lines_seq : out_channel -> string Seq.t -> unit
139139
(** Write every string on the output, followed by "\n".
140-
@since NEXT_RELEASE *)
140+
@since 3.5 *)
141141

142142
val write_lines_l : out_channel -> string list -> unit
143143

src/core/CCList.mli

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ val all_ok : ('a, 'err) result t -> ('a t, 'err) result
500500
val sorted_mem : cmp:('a -> 'a -> int) -> 'a -> 'a list -> bool
501501
(** [sorted_mem ~cmp x l] and [mem x l] give the same result for any sorted list [l],
502502
but potentially more efficiently.
503-
@since NEXT_RELEASE *)
503+
@since 3.5 *)
504504

505505
val sorted_merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
506506
(** [sorted_merge ~cmp l1 l2] merges elements from both sorted list using
@@ -514,7 +514,7 @@ val sorted_diff : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
514514
It is the left inverse of [sorted_merge]; that is,
515515
[sorted_diff ~cmp (sorted_merge ~cmp l1 l2) l2]
516516
is always equal to [l1] for sorted lists [l1] and [l2].
517-
@since NEXT_RELEASE *)
517+
@since 3.5 *)
518518

519519
val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
520520
(** [sort_uniq ~cmp l] sorts the list [l] using the given comparison function [cmp]
@@ -533,7 +533,7 @@ val sorted_diff_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
533533
for example, [sorted_diff_uniq ~cmp [1;1;1;2;2] [1;2;2;2]] would be [[1]].
534534
[sorted_diff_uniq ~cmp l1 l2] and [uniq_succ ~eq (sorted_diff ~cmp l1 l2)]
535535
always give the same result for sorted [l1] and [l2] and compatible [cmp] and [eq].
536-
@since NEXT_RELEASE *)
536+
@since 3.5 *)
537537

538538
val is_sorted : cmp:('a -> 'a -> int) -> 'a list -> bool
539539
(** [is_sorted ~cmp l] returns [true] iff [l] is sorted (according to given order).
@@ -554,7 +554,7 @@ val sorted_remove : cmp:('a -> 'a -> int) -> ?all:bool -> 'a -> 'a list -> 'a li
554554
is equal to [l] for any sorted list [l].
555555
@param all if true then all occurrences of [x] will be removed. Otherwise, only the first
556556
[x] will be removed (if any). Default [false] (only the first will be removed).
557-
@since NEXT_RELEASE *)
557+
@since 3.5 *)
558558

559559
val uniq_succ : eq:('a -> 'a -> bool) -> 'a list -> 'a list
560560
(** [uniq_succ ~eq l] removes duplicate elements that occur one next to the other.

src/core/CCListLabels.mli

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ val all_ok : ('a, 'err) result t -> ('a t, 'err) result
503503
val sorted_mem : cmp:(('a -> 'a -> int) [@keep_label]) -> 'a -> 'a list -> bool
504504
(** [sorted_mem ~cmp x l] and [mem x l] give the same result for any sorted list [l],
505505
but potentially more efficiently.
506-
@since NEXT_RELEASE *)
506+
@since 3.5 *)
507507

508508
val sorted_merge : cmp:(('a -> 'a -> int) [@keep_label]) -> 'a list -> 'a list -> 'a list
509509
(** [sorted_merge ~cmp l1 l2] merges elements from both sorted list using
@@ -517,7 +517,7 @@ val sorted_diff : cmp:(('a -> 'a -> int) [@keep_label]) -> 'a list -> 'a list ->
517517
It is the left inverse of [sorted_merge]; that is,
518518
[sorted_diff ~cmp (sorted_merge ~cmp l1 l2) l2]
519519
is always equal to [l1] for sorted lists [l1] and [l2].
520-
@since NEXT_RELEASE *)
520+
@since 3.5 *)
521521

522522
val sort_uniq : cmp:(('a -> 'a -> int) [@keep_label]) -> 'a list -> 'a list
523523
(** [sort_uniq ~cmp l] sorts the list [l] using the given comparison function [cmp]
@@ -536,7 +536,7 @@ val sorted_diff_uniq : cmp:(('a -> 'a -> int) [@keep_label]) -> 'a list -> 'a li
536536
for example, [sorted_diff_uniq ~cmp [1;1;1;2;2] [1;2;2;2]] would be [[1]].
537537
[sorted_diff_uniq ~cmp l1 l2] and [uniq_succ ~eq (sorted_diff ~cmp l1 l2)]
538538
always give the same result for sorted [l1] and [l2] and compatible [cmp] and [eq].
539-
@since NEXT_RELEASE *)
539+
@since 3.5 *)
540540

541541
val is_sorted : cmp:(('a -> 'a -> int) [@keep_label]) -> 'a list -> bool
542542
(** [is_sorted ~cmp l] returns [true] iff [l] is sorted (according to given order).
@@ -557,7 +557,7 @@ val sorted_remove : cmp:(('a -> 'a -> int) [@keep_label]) -> ?all:bool -> 'a ->
557557
is equal to [l] for any sorted list [l].
558558
@param all if true then all occurrences of [x] will be removed. Otherwise, only the first
559559
[x] will be removed (if any). Default [false] (only the first will be removed).
560-
@since NEXT_RELEASE *)
560+
@since 3.5 *)
561561

562562
val uniq_succ : eq:(('a -> 'a -> bool) [@keep_label]) -> 'a list -> 'a list
563563
(** [uniq_succ ~eq l] removes duplicate elements that occur one next to the other.

src/core/CCOpt.mli

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ val return : 'a -> 'a t
3636

3737
val some : 'a -> 'a t
3838
(** Alias to {!return}.
39-
@since NEXT_RELEASE *)
39+
@since 3.5 *)
4040

4141
val none : 'a t
4242
(** Alias to {!None}.
43-
@since NEXT_RELEASE *)
43+
@since 3.5 *)
4444

4545
val (>|=) : 'a t -> ('a -> 'b) -> 'b t
4646
(** [o >|= f] is the infix version of {!map}. *)

0 commit comments

Comments
 (0)