File tree 10 files changed +31
-15
lines changed
10 files changed +31
-15
lines changed Original file line number Diff line number Diff line change 1
1
# Changelog
2
2
3
+ ## 3.9
4
+
5
+ - feat: add ` Containers_cbor ` module
6
+ - feat(CCInt32): add popcount function
7
+ - feat(CCInt64): add ` popcount ` operation
8
+ - CCBV:
9
+ * more extensive test suite
10
+ * use ` bytes ` underneath, not an array of integers
11
+ - add ` containers_testlib ` , removing qtest and ounit.
12
+
13
+ - fix: handle uppercase in string/hex
14
+
3
15
## 3.8
4
16
5
17
- add ` Containers_bencode ` for lightweight (de)ser
Original file line number Diff line number Diff line change 1
1
opam-version: "2.0"
2
- version: "3.8 "
2
+ version: "3.9 "
3
3
author: "Simon Cruanes"
4
4
5
5
synopsis: "A set of advanced datatypes for containers"
@@ -14,7 +14,8 @@ depends: [
14
14
"dune" { >= "2.0" }
15
15
"containers" { = version }
16
16
"seq"
17
- "qcheck-core" { with-test }
17
+ (("ocaml" {with-test & < "4.08"} & "qcheck-core" {>= "0.17" & with-test})
18
+ | ("ocaml" {with-test & >= "4.08"} & "qcheck-core" {>= "0.18" & with-test}))
18
19
"iter" { with-test }
19
20
"gen" { with-test }
20
21
#"mdx" { with-test & >= "1.5.0" & < "2.0.0" }
Original file line number Diff line number Diff line change 1
1
opam-version: "2.0"
2
- version: "3.8 "
2
+ version: "3.9 "
3
3
author: "Simon Cruanes"
4
4
5
5
license: "BSD-2-Clause"
@@ -16,7 +16,8 @@ depends: [
16
16
"dune-configurator"
17
17
"containers" { = version }
18
18
"iter" { with-test }
19
- "qcheck-core" { with-test }
19
+ (("ocaml" {with-test & < "4.08"} & "qcheck-core" {>= "0.17" & with-test})
20
+ | ("ocaml" {with-test & >= "4.08"} & "qcheck-core" {>= "0.18" & with-test}))
20
21
"uutf" { with-test }
21
22
"odoc" { with-doc }
22
23
]
Original file line number Diff line number Diff line change 1
1
opam-version: "2.0"
2
2
name: "containers"
3
- version: "3.8 "
3
+ version: "3.9 "
4
4
author: "Simon Cruanes"
5
5
6
6
license: "BSD-2-Clause"
@@ -16,7 +16,8 @@ depends: [
16
16
"dune-configurator"
17
17
"seq" # compat
18
18
"either" # compat
19
- "qcheck-core" { >= "0.14" & with-test }
19
+ (("ocaml" {with-test & < "4.08"} & "qcheck-core" {>= "0.17" & with-test})
20
+ | ("ocaml" {with-test & >= "4.08"} & "qcheck-core" {>= "0.18" & with-test}))
20
21
"yojson" { with-test }
21
22
"iter" { with-test }
22
23
"gen" { with-test }
Original file line number Diff line number Diff line change 8
8
{b note} this is only available on OCaml >= 4.08. Below that, the module
9
9
is empty.
10
10
11
- @since NEXT_RELEASE
11
+ @since 3.9
12
12
*)
13
13
14
14
type t =
Original file line number Diff line number Diff line change 9
9
(rule
10
10
(alias runtest)
11
11
(deps t_appendix_a.exe appendix_a.json)
12
+ (package containers)
12
13
(action
13
14
(run ./t_appendix_a.exe ./appendix_a.json)))
Original file line number Diff line number Diff line change @@ -35,13 +35,13 @@ val map : f:('a -> 'b) -> 'b t -> 'a t
35
35
36
36
val always_eq : _ t
37
37
(* * Always returns true. All values are equal.
38
- @since NEXT_RELEASE *)
38
+ @since 3.9 *)
39
39
40
40
val never_eq : _ t
41
41
(* * Always returns false. No values are, so this
42
42
is not even reflexive (i.e. [x=x] is false).
43
43
Be careful!
44
- @since NEXT_RELEASE *)
44
+ @since 3.9 *)
45
45
46
46
module Infix : sig
47
47
val ( > |= ) : 'b t -> ('a -> 'b) -> 'a t
Original file line number Diff line number Diff line change @@ -43,7 +43,7 @@ val pow : t -> t -> t
43
43
44
44
val popcount : t -> int
45
45
(* * Number of bits set to 1.
46
- @since NEXT_RELEASE *)
46
+ @since 3.9 *)
47
47
48
48
val floor_div : t -> t -> t
49
49
(* * [floor_div x n] is integer division rounding towards negative infinity.
Original file line number Diff line number Diff line change @@ -32,7 +32,7 @@ val hash : t -> int
32
32
33
33
val popcount : t -> int
34
34
(* * Number of bits set to 1.
35
- @since NEXT_RELEASE *)
35
+ @since 3.9 *)
36
36
37
37
val sign : t -> int
38
38
(* * [sign x] return [0] if [x = 0], [-1] if [x < 0] and [1] if [x > 0].
Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ val create : size:int -> bool -> t
26
26
val init : int -> (int -> bool ) -> t
27
27
(* * [init len f] initializes a bitvector of length [len], where bit [i]
28
28
is true iff [f i] is.
29
- @since NEXT_RELEASE *)
29
+ @since 3.9 *)
30
30
31
31
val copy : t -> t
32
32
(* * Copy of bitvector. *)
@@ -55,7 +55,7 @@ val resize_minimize_memory : t -> int -> unit
55
55
(* * Same as {!resize}, but this can also shrink the underlying
56
56
array if this reduces the size.
57
57
@raise Invalid_argument on negative sizes.
58
- @since NEXT_RELEASE *)
58
+ @since 3.9 *)
59
59
60
60
val is_empty : t -> bool
61
61
(* * Are there any true bits? *)
@@ -71,7 +71,7 @@ val reset : t -> int -> unit
71
71
72
72
val set_bool : t -> int -> bool -> unit
73
73
(* * Set or reset [i]-th bit.
74
- @since NEXT_RELEASE *)
74
+ @since 3.9 *)
75
75
76
76
val flip : t -> int -> unit
77
77
(* * Flip i-th bit, extending the bitvector if needed. *)
@@ -81,7 +81,7 @@ val clear : t -> unit
81
81
82
82
val clear_and_shrink : t -> unit
83
83
(* * Set every bit to 0, and set length to 0.
84
- @since NEXT_RELEASE *)
84
+ @since 3.9 *)
85
85
86
86
val iter : t -> (int -> bool -> unit ) -> unit
87
87
(* * Iterate on all bits. *)
You can’t perform that action at this time.
0 commit comments