prepare for 3.17
Some checks failed
format / format (push) Has been cancelled
Build and Test / build (push) Has been cancelled

This commit is contained in:
Simon Cruanes 2026-01-12 20:16:42 -05:00
parent d4fdff884f
commit 5461dcc07a
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
6 changed files with 63 additions and 34 deletions

View file

@ -1,4 +1,15 @@
## 3.17
- feat: add `CCAtomic.update_cas`
- feat: add `Pvec.flat_map`
- faster `List.take_drop` thanks to a trick by nojb
- move to ocamlformat 0.27, format code
- test: enrich pvec test
- Patch CBor roundtrip property to hold for nan's too (thanks @jmid)
## 3.16

View file

@ -1,6 +1,6 @@
# This file is generated by dune, edit dune-project instead
opam-version: "2.0"
version: "3.15"
version: "3.17"
synopsis: "A set of advanced datatypes for containers"
maintainer: ["c-cube"]
authors: ["c-cube"]

View file

@ -1,6 +1,6 @@
# This file is generated by dune, edit dune-project instead
opam-version: "2.0"
version: "3.15"
version: "3.17"
synopsis:
"A modular, clean and powerful extension of the OCaml standard library"
maintainer: ["c-cube"]

View file

@ -1,41 +1,59 @@
(lang dune 3.0)
(name containers)
(generate_opam_files true)
(version 3.15)
(version 3.17)
(authors c-cube)
(maintainers c-cube)
(license BSD-2-Clause)
(homepage "https://github.com/c-cube/ocaml-containers/")
(source (github c-cube/ocaml-containers))
(source
(github c-cube/ocaml-containers))
(package
(name containers)
(synopsis "A modular, clean and powerful extension of the OCaml standard library")
(tags (stdlib containers iterators list heap queue))
(synopsis
"A modular, clean and powerful extension of the OCaml standard library")
(tags
(stdlib containers iterators list heap queue))
(depends
(ocaml (>= 4.08))
(ocaml
(>= 4.08))
either
dune-configurator
(qcheck-core (and (>= 0.18) :with-test))
(qcheck-core
(and
(>= 0.18)
:with-test))
(yojson :with-test)
(iter :with-test)
(gen :with-test)
(csexp :with-test)
(uutf :with-test)
(odoc :with-doc))
(depopts
base-unix
base-threads))
(depopts base-unix base-threads))
(package
(name containers-data)
(synopsis "A set of advanced datatypes for containers")
(tags (containers RAL function vector okasaki))
(tags
(containers RAL function vector okasaki))
(depends
(ocaml (>= 4.08))
(containers (= :version))
(qcheck-core (and (>= 0.18) :with-test))
(ocaml
(>= 4.08))
(containers
(= :version))
(qcheck-core
(and
(>= 0.18)
:with-test))
(iter :with-test)
(gen :with-test)
(mdx :with-test)

View file

@ -52,7 +52,7 @@ let[@inline never] decr r =
[let res, x = f !atomic in atomic := x; res]
done atomically. [f] might be called multiple times and must be as cheap
as possible.
@since NEXT_RELEASE *)
@since 3.17 *)
let update_cas (type res) (self : 'a t) (f : 'a -> res * 'a) : res =
let exception Ret of res in
let backoff = ref 1 in

View file

@ -87,7 +87,7 @@ val map : ('a -> 'b) -> 'a t -> 'b t
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
(** A basic, fairly slow [flat_map] operation like {!CCList.flat_map}.
It exists for convenience but is not where this data structure shines.
@since NEXT_RELEASE *)
@since 3.17 *)
val choose : 'a t -> 'a option
(** Return an element. It is unspecified which one is returned. *)