From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: "lwn" <lwn@lwn.net>, caml-list@inria.fr
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 14 Jul 2026 09:16:04 +0200 [thread overview]
Message-ID: <m2ldbe2g97.fsf@petitepomme.net> (raw)
[-- Attachment #1.1.1: Type: text/plain, Size: 9968 bytes --]
Hello
Here is the latest OCaml Weekly News, for the week of July 07 to 14,
2026.
Table of Contents
─────────────────
opam 2.5.2
ocaml-wire: a Binary wire format DSL with EverParse 3D output
Caqti 3.0.0
ocgtk 0.1: OCaml bindings for GTK 4 (preview release)
Old CWN
opam 2.5.2
══════════
Archive: <https://discuss.ocaml.org/t/ann-opam-2-5-2/18338/1>
Kate announced
──────────────
Hi everyone,
opam 2.5.2 is now available. This release is fixing:
• a security issue ([OSEC-2026-10])
• a regression from 2.5.1 preventing cross-compiled packages that use
dune from installing properly ([ocaml/dune#14393])
We invite everyone to upgrade to 2.5.2 as soon as possible.
If you depend on the older opam package of your preferred
distribution, maintainers of distributions such as Debian Stable have
been notified and we expect backporting of the relevant fixes to be
available there very soon.
You can read our [blog post] for relevant links and details.
[OSEC-2026-10]
<https://github.com/ocaml/security-advisories/blob/main/advisories/2026/OSEC-2026-10.md>
[ocaml/dune#14393] <https://github.com/ocaml/dune/issues/14393>
[blog post] <https://opam.ocaml.org/blog/opam-2-5-2/>
Try it!
╌╌╌╌╌╌╌
The upgrade instructions are unchanged:
For Unix systems
┌────
│ bash -c "sh <(curl -fsSL https://opam.ocaml.org/install.sh) --version 2.5.2"
└────
or from PowerShell for Windows systems
┌────
│ Invoke-Expression "& { $(Invoke-RestMethod https://opam.ocaml.org/install.ps1) } -Version 2.5.2"
└────
Please report any issues to the [bug-tracker].
Happy hacking, <> <> The opam team <> <> :camel:
[bug-tracker] <https://github.com/ocaml/opam/issues>
ocaml-wire: a Binary wire format DSL with EverParse 3D output
═════════════════════════════════════════════════════════════
Archive:
<https://discuss.ocaml.org/t/ann-ocaml-wire-a-binary-wire-format-dsl-with-everparse-3d-output/18009/4>
Continuing this thread, Thomas Gazagnaire announced
───────────────────────────────────────────────────
I'm happy to announce that `ocaml-wire' 1.0.0 is now on opam,
installable with `opam install wire'.
This release brings a round of robustness fixes and API cleanups to
the previous version (hence the 1.0.0 tag). It also adds a lot of
differential testing between the OCaml parsers/serialisers and the
generated verified C parsers. Both are run on randomly generated
schemas and random input bytes, and the test checks that they agree on
what they accept or reject, and on the values they decode. Wherever
they disagreed there was a bug, and those all seem to be fixed now.
But how can these be interpreted as signed integers or
floats? Is this left to the layers above?
EverParse 3D has no signed or floating-point types, only unsigned
integers, so to the C validator an int8 is a UINT8 and a float64 is a
UINT64. The OCaml decoder does the reinterpretation, two's complement
for the signed types and IEEE 754 for the floats, and for a plain
field both sides accept every bit pattern. A constraint on the field
(that the user would have added via the DSL) has to survive that
projection. A signed ordering constraint has to be rewritten through
the two's-complement identity before it reaches the C validator,
because a naive unsigned comparison disagrees on bytes with the sign
bit set (byte 200 is the signed value -56, accepted by OCaml and
rejected by the naive C bound). Float finiteness (`is_finite',
`is_nan') compiles to a test on the exponent bits, and a float
ordering constraint, which has no faithful unsigned form, is rejected
up front. The differential fuzzing is what surfaced those sign-bit
disagreements and all of this has been hardened between 0.9 and 1.0.
Zero-copy reads got safer too. `Codec.validate' now enforces every
check `Codec.decode' does (enum membership, bounds, padding, `where'
clauses), so validating untrusted input before a batch of zero-copy
`Codec.get' calls no longer trusts bytes the decoder would have
rejected (again, caught thanks to differential testing).
The generated `.3d' files also turned out to be quite readable as
protocol descriptions, and a whole codec family now projects to a
single .3d that doubles as a spec and compiles to a standalone
verified C parser with no FFI. The TCP/IP stack is a good one to
compare: the [OCaml definitions] and the [generated 3d file].
[OCaml definitions]
<https://github.com/parsimoni-labs/ocaml-wire/blob/main/examples/net/net.ml>
[generated 3d file]
<https://github.com/parsimoni-labs/ocaml-wire/blob/main/examples/net/Net.3d>
Caqti 3.0.0
═══════════
Archive: <https://discuss.ocaml.org/t/ann-caqti-3-0-0/18335/1>
Petter A. Urkedal announced
───────────────────────────
I am happy to announce the release of [Caqti] 3.0.0. This release
bundles some breaking changes including switching to hierarchical
modules. The Caqti 3 API is mainly a reorganization of the
`caqti.template' preview library and some remaining modules from the
Caqti 2 API.
Release notes:
• The `caqti' library now holds the Caqti 3 API and `caqti.classic'
contains a Caqti 2 compatibility wrapper. Users of the Caqti 2 API
must now add `caqti.classic' to their link lines. Early adopters of
the Caqti 3 API must replace `caqti.template' with `caqti' and
adjust some module paths. Switching to the new API is recommended,
but may be done incrementally for existing applications.
• Fixed initial comma when formatting rows, affecting
`Caqti_type.pp_value' (Caqti 2) and `Caqti.Template.Row.pp' (Caqti
3).
• Put on hold deprecation of the `caqti-dynload' package due to [issue
#140].
• Foreign key constraints are now enabled for SQLite by default.
It's good if opam-released projects add `caqti.classic' to their link
lines before their next release (or switch API) and raise the lower
bound on caqti to 2.3.0 (cf [the previous announcement]) if necessary.
[Caqti] <https://github.com/paurkedal/ocaml-caqti/>
[issue #140] <https://github.com/paurkedal/ocaml-caqti/issues/140>
[the previous announcement]
<https://discuss.ocaml.org/t/ann-caqti-2-3-0/17985>
ocgtk 0.1: OCaml bindings for GTK 4 (preview release)
═════════════════════════════════════════════════════
Archive:
<https://discuss.ocaml.org/t/ann-ocgtk-0-1-ocaml-bindings-for-gtk-4-preview-release/17944/6>
Continuing this thread, Chris Armstrong announced
─────────────────────────────────────────────────
*ocgtk 0.1-preview2 is now available on opam*
This release significantly increases the amount of generated
functionality, covering the vast majority of classes snd methods
available in it’s generated libraries (GTK, Gio, Pango, Cairo, GDK,
GDKpixbuf, Graphene)
Notable changes
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
◊ Extended Signals support
Signsls with multiple parameters and non boolean return parameters are
now supported, giving coverage to about 2/3 of supported signal types
◊ GValue support
GValue is now properly supported as a prerequisite for proper signals
support
◊ Extended primitives support
Full coverage of integer types, list types, better array handling,
GError mapping to result types and better GObject equality and
hashing. All extend the coverage of supported methods that can be
generated.
◊ Memory management
A significant effort has gone into hunting down memory management
bugs, especially with boxed record types, which now use a consistent
GLib mechanism for handling references to them.
◊ Extended operating system and compiler versions support
Most dependencies of ocgtk have been removed as they were only
necessary for code generation, allowing us to extend support to
Windows (MSYS2 only) and Ocaml versions going back to 4.14.
◊ Other improvements
• Better handling of mutually dependent classes and interfaces by
shortening their internal module name
• constructor generation for classes: with this, we can do away with
aliasing classes at the top level, presenting only their class types
and constructors, also making unused code elimination better and
reducing compilation bottlenecks
The next release will focus on improved API documentation generation
and gaps in record support and other primitives (constants, functions,
callbacks, etc).
Old CWN
═══════
If you happen to miss a CWN, you can [send me a message] and I'll mail
it to you, or go take a look at [the archive] or the [RSS feed of the
archives].
If you also wish to receive it every week by mail, you may subscribe
to the [caml-list].
[Alan Schmitt]
[send me a message] <mailto:alan.schmitt@polytechnique.org>
[the archive] <https://alan.petitepomme.net/cwn/>
[RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss>
[caml-list] <https://sympa.inria.fr/sympa/info/caml-list>
[Alan Schmitt] <https://alan.petitepomme.net/>
[-- Attachment #1.1.2: Type: text/html, Size: 20663 bytes --]
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 568 bytes --]
next reply other threads:[~2026-07-14 7:16 UTC|newest]
Thread overview: 301+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-14 7:16 Alan Schmitt [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-07-07 13:29 Alan Schmitt
2026-06-30 13:25 Alan Schmitt
2026-06-23 10:07 Alan Schmitt
2026-06-16 10:51 Alan Schmitt
2026-06-09 7:39 Alan Schmitt
2026-06-02 9:01 Alan Schmitt
2026-05-26 7:36 Alan Schmitt
2026-05-19 8:52 Alan Schmitt
2026-05-12 7:28 Alan Schmitt
2026-05-05 9:35 Alan Schmitt
2026-04-28 7:59 Alan Schmitt
2026-04-21 9:34 Alan Schmitt
2026-04-14 9:50 Alan Schmitt
2026-04-07 9:32 Alan Schmitt
2026-03-31 6:10 Alan Schmitt
2026-03-24 9:58 Alan Schmitt
2026-03-17 14:39 Alan Schmitt
2026-03-10 13:30 Alan Schmitt
2026-03-03 13:54 Alan Schmitt
2026-02-24 13:36 Alan Schmitt
2026-02-17 13:47 Alan Schmitt
2026-02-10 10:36 Alan Schmitt
2026-02-03 10:04 Alan Schmitt
2026-01-27 12:41 Alan Schmitt
2026-01-20 9:19 Alan Schmitt
2026-01-13 8:27 Alan Schmitt
2026-01-06 13:14 Alan Schmitt
2025-12-30 9:33 Alan Schmitt
2025-12-23 11:00 Alan Schmitt
2025-12-16 13:30 Alan Schmitt
2025-12-09 15:04 Alan Schmitt
2025-12-02 10:39 Alan Schmitt
2025-11-25 13:49 Alan Schmitt
2025-11-18 14:01 Alan Schmitt
2025-11-11 9:49 Alan Schmitt
2025-11-04 13:21 Alan Schmitt
2025-10-28 13:30 Alan Schmitt
2025-10-21 9:17 Alan Schmitt
2025-10-14 9:56 Alan Schmitt
2025-10-07 12:22 Alan Schmitt
2025-09-30 13:12 Alan Schmitt
2025-09-23 13:23 Alan Schmitt
2025-09-16 11:52 Alan Schmitt
2025-09-09 12:30 Alan Schmitt
2025-09-02 12:23 Alan Schmitt
2025-08-26 12:34 Alan Schmitt
2025-08-19 12:20 Alan Schmitt
2025-08-12 15:32 Alan Schmitt
2025-08-05 8:17 Alan Schmitt
2025-07-29 9:36 Alan Schmitt
2025-07-22 12:07 Alan Schmitt
2025-07-15 17:14 Alan Schmitt
2025-07-08 12:45 Alan Schmitt
2025-07-01 11:16 Alan Schmitt
2025-06-24 14:02 Alan Schmitt
2025-06-17 6:44 Alan Schmitt
2025-06-10 13:36 Alan Schmitt
2025-06-03 9:19 Alan Schmitt
2025-05-27 9:22 Alan Schmitt
2025-05-20 11:52 Alan Schmitt
2025-05-13 9:40 Alan Schmitt
2025-05-06 7:24 Alan Schmitt
2025-04-29 8:39 Alan Schmitt
2025-04-22 11:50 Alan Schmitt
2025-04-15 9:51 Alan Schmitt
2025-04-08 13:14 Alan Schmitt
2025-04-01 9:12 Alan Schmitt
2025-03-25 8:06 Alan Schmitt
2025-03-18 10:18 Alan Schmitt
2025-03-11 15:00 Alan Schmitt
2025-03-04 14:01 Alan Schmitt
2025-02-25 10:36 Alan Schmitt
2025-02-18 14:33 Alan Schmitt
2025-02-11 7:17 Alan Schmitt
2025-02-04 12:05 Alan Schmitt
2025-01-28 13:24 Alan Schmitt
2025-01-21 15:47 Alan Schmitt
2025-01-14 8:20 Alan Schmitt
2025-01-07 17:26 Alan Schmitt
2024-12-31 8:03 Alan Schmitt
2024-12-24 8:55 Alan Schmitt
2024-12-17 13:05 Alan Schmitt
2024-12-10 13:48 Alan Schmitt
2024-12-03 14:44 Alan Schmitt
2024-11-26 8:30 Alan Schmitt
2024-11-19 6:52 Alan Schmitt
2024-11-12 15:00 Alan Schmitt
2024-11-05 13:22 Alan Schmitt
2024-10-29 13:30 Alan Schmitt
2024-10-22 12:42 Alan Schmitt
2024-10-15 13:31 Alan Schmitt
2024-10-08 10:56 Alan Schmitt
2024-10-01 13:37 Alan Schmitt
2024-09-24 13:18 Alan Schmitt
2024-09-17 14:02 Alan Schmitt
2024-09-10 13:55 Alan Schmitt
2024-09-03 8:24 Alan Schmitt
2024-08-27 9:02 Alan Schmitt
2024-08-20 9:29 Alan Schmitt
2024-08-13 13:21 Alan Schmitt
2024-08-06 9:00 Alan Schmitt
2024-07-30 13:26 Alan Schmitt
2024-07-23 13:30 Alan Schmitt
2024-07-16 6:24 Alan Schmitt
2024-07-09 9:19 Alan Schmitt
2024-07-02 7:30 Alan Schmitt
2024-06-25 13:58 Alan Schmitt
2024-06-18 13:05 Alan Schmitt
2024-06-11 15:04 Alan Schmitt
2024-06-04 13:26 Alan Schmitt
2024-05-28 9:07 Alan Schmitt
2024-05-21 13:07 Alan Schmitt
2024-05-14 13:25 Alan Schmitt
2024-05-07 7:30 Alan Schmitt
2024-04-30 7:22 Alan Schmitt
2024-04-23 12:17 Alan Schmitt
2024-04-16 12:00 Alan Schmitt
2024-04-09 9:15 Alan Schmitt
2024-04-02 14:31 Alan Schmitt
2024-03-26 6:32 Alan Schmitt
2024-03-19 15:09 Alan Schmitt
2024-03-12 10:31 Alan Schmitt
2024-03-05 14:50 Alan Schmitt
2024-02-27 13:53 Alan Schmitt
2024-02-20 9:12 Alan Schmitt
2024-02-13 8:42 Alan Schmitt
2024-02-06 15:14 Alan Schmitt
2024-01-30 14:16 Alan Schmitt
2024-01-23 9:45 Alan Schmitt
2024-01-16 10:01 Alan Schmitt
2024-01-09 13:40 Alan Schmitt
2024-01-02 8:59 Alan Schmitt
2023-12-26 10:12 Alan Schmitt
2023-12-19 10:10 Alan Schmitt
2023-12-12 10:20 Alan Schmitt
2023-12-05 10:13 Alan Schmitt
2023-11-28 9:09 Alan Schmitt
2023-11-21 7:47 Alan Schmitt
2023-11-14 13:42 Alan Schmitt
2023-11-07 10:31 Alan Schmitt
2023-10-31 10:43 Alan Schmitt
2023-10-24 9:17 Alan Schmitt
2023-10-17 7:46 Alan Schmitt
2023-10-10 7:48 Alan Schmitt
2023-10-03 13:00 Alan Schmitt
2023-09-19 8:54 Alan Schmitt
2023-09-12 13:21 Alan Schmitt
2023-09-05 9:00 Alan Schmitt
2023-08-29 13:04 Alan Schmitt
2023-08-22 9:20 Alan Schmitt
2023-08-15 16:33 Alan Schmitt
2023-08-08 8:53 Alan Schmitt
2023-08-01 7:13 Alan Schmitt
2023-07-25 8:45 Alan Schmitt
2023-07-11 8:45 Alan Schmitt
2023-07-04 9:18 Alan Schmitt
2023-06-27 8:38 Alan Schmitt
2023-06-20 9:52 Alan Schmitt
2023-06-13 7:09 Alan Schmitt
2023-06-06 14:22 Alan Schmitt
2023-05-30 15:43 Alan Schmitt
2023-05-23 9:41 Alan Schmitt
2023-05-16 13:05 Alan Schmitt
2023-05-09 11:49 Alan Schmitt
2023-05-02 8:01 Alan Schmitt
2023-04-25 9:25 Alan Schmitt
2023-04-18 8:50 Alan Schmitt
2023-04-11 12:41 Alan Schmitt
2023-04-04 8:45 Alan Schmitt
2023-03-28 7:21 Alan Schmitt
2023-03-21 10:07 Alan Schmitt
2023-03-14 9:52 Alan Schmitt
2023-03-07 9:02 Alan Schmitt
2023-02-28 14:38 Alan Schmitt
2023-02-21 10:19 Alan Schmitt
2023-02-14 8:12 Alan Schmitt
2023-02-07 8:16 Alan Schmitt
2023-01-31 6:44 Alan Schmitt
2023-01-24 8:57 Alan Schmitt
2023-01-17 8:37 Alan Schmitt
2022-11-29 14:53 Alan Schmitt
2022-09-27 7:17 Alan Schmitt
2022-09-20 14:01 Alan Schmitt
2022-09-13 8:40 Alan Schmitt
2022-08-23 8:06 Alan Schmitt
2022-08-16 8:51 Alan Schmitt
2022-08-09 8:02 Alan Schmitt
2022-08-02 9:51 Alan Schmitt
2022-07-26 17:54 Alan Schmitt
2022-07-19 8:58 Alan Schmitt
2022-07-12 7:59 Alan Schmitt
2022-07-05 7:42 Alan Schmitt
2022-06-28 7:37 Alan Schmitt
2022-06-21 8:06 Alan Schmitt
2022-06-14 9:29 Alan Schmitt
2022-06-07 10:15 Alan Schmitt
2022-05-31 12:29 Alan Schmitt
2022-05-24 8:04 Alan Schmitt
2022-05-17 7:12 Alan Schmitt
2022-05-10 12:30 Alan Schmitt
2022-05-03 9:11 Alan Schmitt
2022-04-26 6:44 Alan Schmitt
2022-04-19 5:34 Alan Schmitt
2022-04-12 8:10 Alan Schmitt
2022-04-05 11:50 Alan Schmitt
2022-03-29 7:42 Alan Schmitt
2022-03-22 13:01 Alan Schmitt
2022-03-15 9:59 Alan Schmitt
2022-03-01 13:54 Alan Schmitt
2022-02-22 12:43 Alan Schmitt
2022-02-08 13:16 Alan Schmitt
2022-02-01 13:00 Alan Schmitt
2022-01-25 12:44 Alan Schmitt
2022-01-11 8:20 Alan Schmitt
2022-01-04 7:56 Alan Schmitt
2021-12-28 8:59 Alan Schmitt
2021-12-21 9:11 Alan Schmitt
2021-12-14 11:02 Alan Schmitt
2021-11-30 10:51 Alan Schmitt
2021-11-16 8:41 Alan Schmitt
2021-11-09 10:08 Alan Schmitt
2021-11-02 8:50 Alan Schmitt
2021-10-19 8:23 Alan Schmitt
2021-09-28 6:37 Alan Schmitt
2021-09-21 9:09 Alan Schmitt
2021-09-07 13:23 Alan Schmitt
2021-08-24 13:44 Alan Schmitt
2021-08-17 6:24 Alan Schmitt
2021-08-10 16:47 Alan Schmitt
2021-07-27 8:54 Alan Schmitt
2021-07-20 12:58 Alan Schmitt
2021-07-06 12:33 Alan Schmitt
2021-06-29 12:24 Alan Schmitt
2021-06-22 9:04 Alan Schmitt
2021-06-01 9:23 Alan Schmitt
2021-05-25 7:30 Alan Schmitt
2021-05-11 14:47 Alan Schmitt
2021-05-04 8:57 Alan Schmitt
2021-04-27 14:26 Alan Schmitt
2021-04-20 9:07 Alan Schmitt
2021-04-06 9:42 Alan Schmitt
2021-03-30 14:55 Alan Schmitt
2021-03-23 9:05 Alan Schmitt
2021-03-16 10:31 Alan Schmitt
2021-03-09 10:58 Alan Schmitt
2021-02-23 9:51 Alan Schmitt
2021-02-16 13:53 Alan Schmitt
2021-02-02 13:56 Alan Schmitt
2021-01-26 13:25 Alan Schmitt
2021-01-19 14:28 Alan Schmitt
2021-01-12 9:47 Alan Schmitt
2021-01-05 11:22 Alan Schmitt
2020-12-29 9:59 Alan Schmitt
2020-12-22 8:48 Alan Schmitt
2020-12-15 9:51 Alan Schmitt
2020-12-01 8:54 Alan Schmitt
2020-11-03 15:15 Alan Schmitt
2020-10-27 8:43 Alan Schmitt
2020-10-20 8:15 Alan Schmitt
2020-10-06 7:22 Alan Schmitt
2020-09-29 7:02 Alan Schmitt
2020-09-22 7:27 Alan Schmitt
2020-09-08 13:11 Alan Schmitt
2020-09-01 7:55 Alan Schmitt
2020-08-18 7:25 Alan Schmitt
2020-07-28 16:57 Alan Schmitt
2020-07-21 14:42 Alan Schmitt
2020-07-14 9:54 Alan Schmitt
2020-07-07 10:04 Alan Schmitt
2020-06-30 7:00 Alan Schmitt
2020-06-16 8:36 Alan Schmitt
2020-06-09 8:28 Alan Schmitt
2020-05-19 9:52 Alan Schmitt
2020-05-12 7:45 Alan Schmitt
2020-05-05 7:45 Alan Schmitt
2020-04-28 12:44 Alan Schmitt
2020-04-21 8:58 Alan Schmitt
2020-04-14 7:28 Alan Schmitt
2020-04-07 7:51 Alan Schmitt
2020-03-31 9:54 Alan Schmitt
2020-03-24 9:31 Alan Schmitt
2020-03-17 11:04 Alan Schmitt
2020-03-10 14:28 Alan Schmitt
2020-03-03 8:00 Alan Schmitt
2020-02-25 8:51 Alan Schmitt
2020-02-18 8:18 Alan Schmitt
2020-02-04 8:47 Alan Schmitt
2020-01-28 10:53 Alan Schmitt
2020-01-21 14:08 Alan Schmitt
2020-01-14 14:16 Alan Schmitt
2020-01-07 13:43 Alan Schmitt
2019-12-31 9:18 Alan Schmitt
2019-12-17 8:52 Alan Schmitt
2019-12-10 8:21 Alan Schmitt
2019-12-03 15:42 Alan Schmitt
2019-11-26 8:33 Alan Schmitt
2019-11-12 13:21 Alan Schmitt
2019-11-05 6:55 Alan Schmitt
2019-10-15 7:28 Alan Schmitt
2019-09-03 7:35 Alan Schmitt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2ldbe2g97.fsf@petitepomme.net \
--to=alan.schmitt@polytechnique.org \
--cc=caml-list@inria.fr \
--cc=lwn@lwn.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox