With the progress of the ongoing stabilisation effort for OCaml 5.5.0, we are happy to announce a third alpha release for OCaml 5.5.0.
The missing second alpha was unreleased due to an unforeseen interaction between the relocatable compiler and bootstrapping. This issue is fixed in this third alpha.
Beyond this important change, compared to the first alpha this new alpha release contains
- two code generation fixes
- three type system fixes
- one standard library fix
(see the Changelog below for a full list).
Overall, it looks like 5.5.0 is stabilizing quite well and alpha versions of most development tools are available. Thus we are planning to switch to a beta release in the beginning of April.
More precisely, the ongoing progress on stabilising the ecosystem is tracked on the 5.5.0 readiness meta-issueon opam.
There is also a companion alpha opam repository available for this alpha release
$ opam repo add alpha git+https://github.com/kit-ty-kate/opam-alpha-repository.git
which contains in-progress alpha releases of opam packages that are being updated for
OCaml 5.5.0 .
The final release is still planned for between May and June.
If you find any bugs, please report them on the issue tracker.
If you are interested by the full list of new features and bug fixes, the
updated changelog for OCaml 5.5.0 is available.
Happy hacking,
Florian Angeletti for the OCaml team
Changes compared to the first alpha
Compiler artefact fixes
- More bootstrap-friendly relocatable compiler
- A bootstrap to fix compiler-libs related issues reported by js_of_ocaml
Code generation bug fixes
-
#14583: fix bug in linear scan spilling heuristic that in certain situations
could lead to miscompilations.
(Nicolás Ojeda Bär, review by Vincent Laviron) -
#13693, #14514: s390x: fix heap corruption with libasmrun_shared.so caused
by PLT lazy binding trampoline saving FPRs into OCaml’s fiber stack.
Replace PLT calls with GOT-indirect calls in the s390x code emitter.
(Zane Hambly, review by David Allsopp and Xavier Leroy)
Type system bug fixes
-
#14434, #14652: Protect check_counter_example_pat against polymorphic types,
restoring type soundness.
(Stephen Dolan and Jacques Garrigue, report and review by Alistair O’Brien) -
#14603, #14604: avoid Ctype.apply failures when mixing
polymorphic types and unboxed constructors.
(Gabriel Scherer and Stefan Muenzel, report by Brandon Stride,
review by Florian Angeletti) -
#14626, #14675: take in account module-dependent functions when
determining if an optional argument is non-erasable.
(Alistair O’Brien and Florian Angeletti, review by Gabriel Scherer)
Standard library fix
- #14635: Fix a bug in
caml_floatarray_gatherthat would cause
the result ofFloat.Array.sub,Float.Array.append,Float.Array.concat
(when empty) not to be equal to[||].
(Marc Lasson, review by Gabriel Scherer)
Documentation update
- #13590: Document automatic command-line expansion of
*and?wildcards by
the runtime under Windows.
(Benjamin Sigonneau, review by Nicolás Ojeda Bär)