Dear OCaml users, We have the pleasure of celebrating the anniversary of the first flight of Ariane 4 by announcing the release of OCaml version 4.14.4. (The release of OCaml 5.5.0 is planned later this week.) This release is a collection of safe bug fixes and security fixes for the standard library, cherry-picked from the OCaml 5 branch. The 4.14 branch is expected to receive episodic updates until at least the end of 2026. However, the end of its extended maintenance period is on the horizon. Consequently, please mention to us any obstacle remaining to your migration to OCaml 5. In the meanwhile, do not hesitate to report any bugs on the OCaml issue tracker at - https://github.com/ocaml/ocaml/issues. See the list of changes below for more details. Happy hacking, Florian Angeletti for the OCaml team. Installation Instructions ------------------------------- The base compiler can be installed as an opam switch with the following commands: opam update opam switch create 4.14.4 The source code for the release candidate is also directly available on: * GitHub: https://github.com/ocaml/ocaml/archive/4.14.4.tar.gz * Inria archive: https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.4.tar.gz Changes in OCaml 4.14.4 (15 June 2026) ------------------------------------------------------- ### Build system: - #12372(https://github.com/ocaml/ocaml/issues/12372), #14572(https://github.com/ocaml/ocaml/issues/14572): Pass option -no-execute-only to the linker for OpenBSD >= 7.3 so that code sections remain readable, as needed for closure marshaling. Originally backported in 4.14.2, but the flag was accidentally not passed when linking the .so versions of the OCaml runtime libraries or when linking .cmxs files. (Xavier Leroy and Anil Madhavapeddy, review by Anil Madhavapeddy and Sébastien Hinderer) ### Bug fixes: - #14599(https://github.com/ocaml/ocaml/issues/14599), #14606(https://github.com/ocaml/ocaml/issues/14606): on ARM64 platforms, ocamlopt was under-estimating the sizes of some instructions. This could lead to overflows in relative branch offsets, reported as errors by the assembler. (Xavier Leroy, review by Vincent Laviron, report by Raphaël Proust) - #14607(https://github.com/ocaml/ocaml/issues/14607): Fix linking with libasmrun_shared.so on Risc-V (undefined symbol declared riscv.o) (David Allsopp, review by Nicolás Ojeda Bär) - #14661(https://github.com/ocaml/ocaml/issues/14661): Build dllthreads.so with pthreads flags (removed in #13018(https://github.com/ocaml/ocaml/issues/13018)). For normal programs there's no semantic difference, because ocamlrun and ocamlc.opt are always linked with pthreads, but it was a regression to require programs wishing to dlopen dllthreads.so to have already linked with pthreads themselves. (David Allsopp, review by Gabriel Scherer) - #14655(https://github.com/ocaml/ocaml/issues/14655), #14691(https://github.com/ocaml/ocaml/issues/14691), CVE-2026-34353, OSEC-2026-04: check for size overflow in caml_ba_reshape (Stephen Dolan, review by Xavier Leroy) - #14853(https://github.com/ocaml/ocaml/issues/14853), CVE-2026-41083, OSEC-2026-05: fix quoting of filenames passed to Filename.quote_command on Windows. (David Allsopp, report by Andrew Nesbitt, review by Florian Angeletti)