OCaml 4.14.4 released

Florian Angeletti <[email protected]> Mon, 15 Jun 2026 21:47:58 +0200 (CEST)
Newsgroups gmane.comp.lang.caml.inria
Message-ID <[email protected]>
--=_88c36d82-c841-42f9-b311-a64ab105e5bc
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Dear OCaml users,=20

We have the pleasure of celebrating the anniversary of the first flight of=
=20
Ariane 4 by announcing the release of OCaml version 4.14.4.=20

(The release of OCaml 5.5.0 is planned later this week.)=20

This release is a collection of safe bug fixes and security fixes for the=
=20
standard library, cherry-picked from the OCaml 5 branch.=20

The 4.14 branch is expected to receive episodic updates until at least the =
end=20
of 2026.=20

However, the end of its extended maintenance period is on the horizon.=20
Consequently, please mention to us any obstacle remaining to your migration=
 to=20
OCaml 5.=20

In the meanwhile, do not hesitate to report any bugs on the OCaml issue=20
tracker at=20

- https://github.com/ocaml/ocaml/issues.=20

See the list of changes below for more details.=20

Happy hacking,=20
Florian Angeletti for the OCaml team.=20


Installation Instructions=20
-------------------------------=20

The base compiler can be installed as an opam switch with the following com=
mands:=20

opam update=20
opam switch create 4.14.4=20

The source code for the release candidate is also directly available on:=20
* GitHub: https://github.com/ocaml/ocaml/archive/4.14.4.tar.gz=20
* Inria archive: https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.4.=
tar.gz=20


Changes in OCaml 4.14.4 (15 June 2026)=20
-------------------------------------------------------=20

### Build system:=20

- #12372(https://github.com/ocaml/ocaml/issues/12372),=20
#14572(https://github.com/ocaml/ocaml/issues/14572): Pass option -no-execut=
e-only to the linker for OpenBSD >=3D 7.3=20
so that code sections remain readable, as needed for closure marshaling.=20
Originally backported in 4.14.2, but the flag was accidentally not passed w=
hen=20
linking the .so versions of the OCaml runtime libraries or when linking .cm=
xs=20
files.=20
(Xavier Leroy and Anil Madhavapeddy, review by Anil Madhavapeddy and=20
S=E9bastien Hinderer)=20

### Bug fixes:=20

- #14599(https://github.com/ocaml/ocaml/issues/14599), #14606(https://githu=
b.com/ocaml/ocaml/issues/14606):=20
on ARM64 platforms, ocamlopt was under-estimating the sizes of some instruc=
tions.=20
This could lead to overflows in relative branch offsets, reported as errors=
 by the assembler.=20
(Xavier Leroy, review by Vincent Laviron, report by Rapha=EBl Proust)=20

- #14607(https://github.com/ocaml/ocaml/issues/14607): Fix linking with lib=
asmrun_shared.so on Risc-V (undefined symbol=20
declared riscv.o)=20
(David Allsopp, review by Nicol=E1s Ojeda B=E4r)=20

- #14661(https://github.com/ocaml/ocaml/issues/14661): Build dllthreads.so =
with pthreads flags (removed in #13018(https://github.com/ocaml/ocaml/issue=
s/13018)). For=20
normal programs there's no semantic difference, because ocamlrun and=20
ocamlc.opt are always linked with pthreads, but it was a regression to requ=
ire=20
programs wishing to dlopen dllthreads.so to have already linked with pthrea=
ds=20
themselves.=20
(David Allsopp, review by Gabriel Scherer)=20

- #14655(https://github.com/ocaml/ocaml/issues/14655), #14691(https://githu=
b.com/ocaml/ocaml/issues/14691), CVE-2026-34353, OSEC-2026-04: check for si=
ze overflow in=20
caml_ba_reshape=20
(Stephen Dolan, review by Xavier Leroy)=20

- #14853(https://github.com/ocaml/ocaml/issues/14853), CVE-2026-41083, OSEC=
-2026-05: fix quoting of filenames passed to=20
Filename.quote_command on Windows.=20
(David Allsopp, report by Andrew Nesbitt, review by Florian Angeletti)=20


--=_88c36d82-c841-42f9-b311-a64ab105e5bc
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<html><body><div style=3D"font-family: arial, helvetica, sans-serif; font-s=
ize: 12pt; color: #000000"><div>Dear OCaml users,<br><br>We have the pleasu=
re of celebrating the anniversary of the first flight of<br>Ariane 4 by ann=
ouncing the release of OCaml version 4.14.4.<br><br>(The release of OCaml 5=
.5.0 is planned later this week.)<br><br>This release is a collection of sa=
fe bug fixes and security fixes for the<br>standard library, cherry-picked =
from the OCaml 5 branch.<br><br>The 4.14 branch is expected to receive epis=
odic updates until at least the end<br>of 2026.<br><br>However, the end of =
its extended maintenance period is on the horizon.<br>Consequently, please =
mention to us any obstacle remaining to your migration to<br>OCaml 5.<br><b=
r>In the meanwhile, do not hesitate to report any bugs on the OCaml issue<b=
r>tracker at<br><br>- https://github.com/ocaml/ocaml/issues.<br><br>See the=
 list of changes below for more details.<br><br>Happy hacking,<br>Florian A=
ngeletti for the OCaml team.<br><br><br>Installation Instructions<br>------=
-------------------------<br><br>The base compiler can be installed as an o=
pam switch with the following commands:<br><br>&nbsp; &nbsp; opam update<br=
>&nbsp; &nbsp; opam switch create 4.14.4<br><br>The source code for the rel=
ease candidate is also directly available on:<br>* GitHub: https://github.c=
om/ocaml/ocaml/archive/4.14.4.tar.gz<br>* Inria archive: https://caml.inria=
.fr/pub/distrib/ocaml-4.14/ocaml-4.14.4.tar.gz<br><br><br>Changes in OCaml =
4.14.4 (15 June 2026)<br>--------------------------------------------------=
-----<br><br>### Build system:<br><br>- #12372(https://github.com/ocaml/oca=
ml/issues/12372), <br>&nbsp; #14572(https://github.com/ocaml/ocaml/issues/1=
4572): Pass option -no-execute-only to the linker for OpenBSD &gt;=3D 7.3<b=
r>&nbsp; so that code sections remain readable, as needed for closure marsh=
aling.<br>&nbsp; Originally backported in 4.14.2, but the flag was accident=
ally not passed when<br>&nbsp; linking the .so versions of the OCaml runtim=
e libraries or when linking .cmxs<br>&nbsp; files.<br>&nbsp; (Xavier Leroy =
and Anil Madhavapeddy, review by Anil Madhavapeddy and<br>&nbsp; S=E9bastie=
n Hinderer)<br><br>### Bug fixes:<br><br>- #14599(https://github.com/ocaml/=
ocaml/issues/14599), #14606(https://github.com/ocaml/ocaml/issues/14606): <=
br>&nbsp; on ARM64 platforms, ocamlopt was under-estimating the sizes of so=
me instructions. <br>&nbsp; This could lead to overflows in relative branch=
 offsets, reported as errors by the assembler.<br>&nbsp; (Xavier Leroy, rev=
iew by Vincent Laviron, report by Rapha=EBl Proust)<br><br>- #14607(https:/=
/github.com/ocaml/ocaml/issues/14607): Fix linking with libasmrun_shared.so=
 on Risc-V (undefined symbol<br>&nbsp; declared riscv.o)<br>&nbsp; (David A=
llsopp, review by Nicol=E1s Ojeda B=E4r)<br><br>- #14661(https://github.com=
/ocaml/ocaml/issues/14661): Build dllthreads.so with pthreads flags (remove=
d in #13018(https://github.com/ocaml/ocaml/issues/13018)). For<br>&nbsp; no=
rmal programs there's no semantic difference, because ocamlrun and<br>&nbsp=
; ocamlc.opt are always linked with pthreads, but it was a regression to re=
quire<br>&nbsp; programs wishing to dlopen dllthreads.so to have already li=
nked with pthreads<br>&nbsp; themselves.<br>&nbsp; (David Allsopp, review b=
y Gabriel Scherer)<br><br>- #14655(https://github.com/ocaml/ocaml/issues/14=
655), #14691(https://github.com/ocaml/ocaml/issues/14691), CVE-2026-34353, =
OSEC-2026-04: check for size overflow in<br>&nbsp; caml_ba_reshape<br>&nbsp=
; (Stephen Dolan, review by Xavier Leroy)<br><br>- #14853(https://github.co=
m/ocaml/ocaml/issues/14853), CVE-2026-41083, OSEC-2026-05: fix quoting of f=
ilenames passed to<br>&nbsp; Filename.quote_command on Windows.<br>&nbsp; (=
David Allsopp, report by Andrew Nesbitt, review by Florian Angeletti)<br><b=
r></div></div></body></html>
--=_88c36d82-c841-42f9-b311-a64ab105e5bc--