Third alpha release of OCaml 5.5.0

Florian Angeletti <[email protected]> Thu, 26 Mar 2026 14:21:50 +0100 (CET)
Newsgroups gmane.comp.lang.caml.inria
Message-ID <[email protected]>
--=_95ebdf21-03f8-4cd1-b417-366333f3dfcb
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Dear OCaml users,=20

With the progress of the ongoing stabilisation effort for OCaml 5.5.0, I am=
 happy to=20
announce the third alpha release for OCaml 5.5.0.=20

The missing second alpha was unreleased due to an unforeseen interaction be=
tween=20
the relocatable compiler and bootstrapping. This issue is fixed in this thi=
rd alpha.=20

Beyond this important change, compared to the first alpha this new alpha re=
lease=20
contains 2 code generation fixes, 3 type system fixes and one standard libr=
ary=20
fix (see the Changelog below for a full list).=20

Thus, it looks like 5.5.0 is stabilizing quite well and we are planning to =
switch to=20
a beta release in the beginning of April.=20

More precisely, the ongoing progress on stabilising the ecosystem is tracke=
d on=20
the opam readiness for 5.5.0 meta-issue at:=20

https://github.com/ocaml/opam-repository/issues/29463=20

There is also a companion alpha opam repository available for this alpha re=
lease=20

opam repo add alpha git+https://github.com/kit-ty-kate/opam-alpha-repositor=
y.git=20

which contains in-progress alpha releases of opam packages that are being u=
pdated for=20
OCaml 5.5.0 .=20

The final release is still planned for between May and June.=20

If you find any bugs, please report them here:=20

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

If you are interested by the full list of new features and bug fixes, the=
=20
updated change log for OCaml 5.5.0 is available at:=20

https://github.com/ocaml/ocaml/blob/5.5/Changes=20

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


Changes compared to the first alpha=20
-----------------------------------------------=20

## Compiler artefact fixes=20

- More bootstrap-friendly relocatable compiler=20
- A bootstrap to fix compiler-libs related issues reported by js_of_ocaml=
=20

## Code generation bug fixes=20

- #14583(https://github.com/ocaml/ocaml/issues/14583): fix bug in linear sc=
an spilling heuristic that in certain situations=20
could lead to miscompilations.=20
(Nicol=E1s Ojeda B=E4r, review by Vincent Laviron)=20

- #13693(https://github.com/ocaml/ocaml/issues/13693), #14514(https://githu=
b.com/ocaml/ocaml/issues/14514): s390x: fix heap corruption with libasmrun_=
shared.so caused=20
by PLT lazy binding trampoline saving FPRs into OCaml's fiber stack.=20
Replace @PLT calls with GOT-indirect calls in the s390x code emitter.=20
(Zane Hambly, review by David Allsopp and Xavier Leroy)=20

## Type system bug fixes=20

- #14434(https://github.com/ocaml/ocaml/issues/14434), #14652(https://githu=
b.com/ocaml/ocaml/issues/14652): Protect check_counter_example_pat against =
polymorphic types,=20
restoring type soundness.=20
(Stephen Dolan and Jacques Garrigue, report and review by Alistair O'Brien)=
=20

- #14603(https://github.com/ocaml/ocaml/issues/14603), [#14604](https://git=
hub.com/ocaml/ocaml/issues/14604): avoid Ctype.apply failures when mixing=
=20
polymorphic types and unboxed constructors.=20
(Gabriel Scherer and Stefan Muenzel, report by Brandon Stride,=20
review by Florian Angeletti)=20

- #14626(https://github.com/ocaml/ocaml/issues/14626), [#14675](https://git=
hub.com/ocaml/ocaml/issues/14675): take in account module-dependent functio=
ns when=20
determining if an optional argument is non-erasable.=20
(Alistair O'Brien and Florian Angeletti, review by Gabriel Scherer)=20

## Standard library fix=20

- #14635(https://github.com/ocaml/ocaml/issues/14635): Fix a bug in `caml_f=
loatarray_gather` that would cause=20
the result of `Float.Array.sub`, `Float.Array.append`, `Float.Array.concat`=
=20
(when empty) not to be equal to `[||]`.=20
(Marc Lasson, review by Gabriel Scherer)=20

## Documentation update=20

- #13590(https://github.com/ocaml/ocaml/issues/13590): Document automatic c=
ommand-line expansion of `*` and `?` wildcards by=20
the runtime under Windows.=20
(Benjamin Sigonneau, review by Nicol=E1s Ojeda B=E4r)=20


--=_95ebdf21-03f8-4cd1-b417-366333f3dfcb
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>With the progress =
of the ongoing stabilisation effort for OCaml 5.5.0, I am happy to</div><di=
v>announce the third alpha release for OCaml 5.5.0.<br><br>The missing seco=
nd alpha was unreleased due to an unforeseen interaction between<br>the rel=
ocatable compiler and bootstrapping. This issue is fixed in this third alph=
a.<br><br>Beyond this important change, compared to the first alpha this ne=
w alpha release<br>contains 2 code generation fixes, 3 type system fixes an=
d one standard library<br>fix (see the Changelog below for a full list).<br=
><br>Thus, it looks like 5.5.0 is stabilizing quite well and we are plannin=
g to switch to</div><div>a beta release in the beginning of April.<br><br>M=
ore precisely, the ongoing progress on stabilising the ecosystem is tracked=
 on<br>the opam readiness for 5.5.0 meta-issue at:<br><br>&nbsp; https://gi=
thub.com/ocaml/opam-repository/issues/29463<br><br>There is also a companio=
n alpha opam repository available for this alpha release<br><br>&nbsp; &nbs=
p; &nbsp; opam repo add alpha git+https://github.com/kit-ty-kate/opam-alpha=
-repository.git<br><br>which contains in-progress alpha releases of opam pa=
ckages that are being updated for<br>OCaml 5.5.0 .<br><br>The final release=
 is still planned for between May and June.<br><br>If you find any bugs, pl=
ease report them here:<br><br>&nbsp; https://github.com/ocaml/ocaml/issues<=
br><br>If you are interested by the full list of new features and bug fixes=
, the<br>updated change log for OCaml 5.5.0 is available at:<br><br>&nbsp; =
https://github.com/ocaml/ocaml/blob/5.5/Changes<br><br>Happy hacking,<br>Fl=
orian Angeletti for the OCaml team.<br><br><br>Changes compared to the firs=
t alpha<br>-----------------------------------------------<br><br>## Compil=
er artefact fixes<br><br>- More bootstrap-friendly relocatable compiler<br>=
- A bootstrap to fix compiler-libs related issues reported by js_of_ocaml<b=
r><br>## Code generation bug fixes<br><br>- #14583(https://github.com/ocaml=
/ocaml/issues/14583): fix bug in linear scan spilling heuristic that in cer=
tain situations<br>&nbsp; could lead to miscompilations.<br>&nbsp; (Nicol=
=E1s Ojeda B=E4r, review by Vincent Laviron)<br><br>- #13693(https://github=
.com/ocaml/ocaml/issues/13693), #14514(https://github.com/ocaml/ocaml/issue=
s/14514): s390x: fix heap corruption with libasmrun_shared.so caused<br>&nb=
sp; by PLT lazy binding trampoline saving FPRs into OCaml's fiber stack.<br=
>&nbsp; Replace @PLT calls with GOT-indirect calls in the s390x code emitte=
r.<br>&nbsp; (Zane Hambly, review by David Allsopp and Xavier Leroy)<br><br=
>## Type system bug fixes<br><br>- #14434(https://github.com/ocaml/ocaml/is=
sues/14434), #14652(https://github.com/ocaml/ocaml/issues/14652): Protect c=
heck_counter_example_pat against polymorphic types,<br>&nbsp; restoring typ=
e soundness.<br>&nbsp; (Stephen Dolan and Jacques Garrigue, report and revi=
ew by Alistair O'Brien)<br><br>- #14603(https://github.com/ocaml/ocaml/issu=
es/14603), [#14604](https://github.com/ocaml/ocaml/issues/14604): avoid Cty=
pe.apply failures when mixing<br>&nbsp; polymorphic types and unboxed const=
ructors.<br>&nbsp; (Gabriel Scherer and Stefan Muenzel, report by Brandon S=
tride,<br>&nbsp; &nbsp;review by Florian Angeletti)<br><br>- #14626(https:/=
/github.com/ocaml/ocaml/issues/14626), [#14675](https://github.com/ocaml/oc=
aml/issues/14675): take in account module-dependent functions when<br>&nbsp=
; determining if an optional argument is non-erasable.<br>&nbsp; (Alistair =
O'Brien and Florian Angeletti, review by Gabriel Scherer)<br><br>## Standar=
d library fix<br><br>- #14635(https://github.com/ocaml/ocaml/issues/14635):=
 Fix a bug in `caml_floatarray_gather` that would cause<br>&nbsp; the resul=
t of `Float.Array.sub`, `Float.Array.append`, `Float.Array.concat`<br>&nbsp=
; (when empty) not to be equal to `[||]`.<br>&nbsp; (Marc Lasson, review by=
 Gabriel Scherer)<br><br>## Documentation update<br><br>- #13590(https://gi=
thub.com/ocaml/ocaml/issues/13590): Document automatic command-line expansi=
on of `*` and `?` wildcards by<br>&nbsp; the runtime under Windows.<br>&nbs=
p; (Benjamin Sigonneau, review by Nicol=E1s Ojeda B=E4r)<br><br data-mce-bo=
gus=3D"1"></div></div></body></html>
--=_95ebdf21-03f8-4cd1-b417-366333f3dfcb--