The release of OCaml 5.1.0 is imminent.
As a final step, we are publishing a release candidate to check that everything is in order before the release in the upcoming week(s).
If you find any bugs, please report them on OCaml’s issue tracker.
Compared to the beta release, this release contains one safe runtime fix, and two configuration tweaks.
The full change log for OCaml 5.1.0 is available on GitHub
A short summary of the changes since the beta release is also available below.
The base compiler can be installed as an opam switch with the following commands on opam 2.1 and later:
opam update opam switch create 5.1.0~rc1
The source code for the release candidate is also directly available on:
If you want to tweak the configuration of the compiler, you can switch to the option variant with:
opam update opam switch create <switch_name> ocaml-variants.5.1.0~rc1+options <option_list>
<option_list> is a comma-separated list of
ocaml-option-* packages. For instance, for a
opam switch create 5.1.0~rc1+flambda+nffa ocaml-variants.5.1.0~rc1+options ocaml-option-flambda ocaml-option-no-flat-float-array
All available options can be listed with
opam search ocaml-option.
- #12445: missing GC root registrations in runtime/io.c
(Gabriel Scherer, review by Xavier Leroy and Jeremy Yallop)
- #12372: Pass option -no-execute-only to the linker for OpenBSD >= 7.3
so that code sections remain readable, as needed for closure marshaling.
(Xavier Leroy and Anil Madhavapeddy, review by Anil Madhavapeddy and
- #11745, +#12358: Debugger and toplevels: embed printer types rather than
reading their representations from topdirs.cmi at runtime.
This change also removes the ocamlmktop initialization module introduced
in #11382 which was no longer useful.
This change breaks toplevel scripts relying on the visibility of
in the initial toplevel environment without loading
Since the opam default
topfind, it is expected
that only scripts run with
ocaml -noinitare affected.
For those scripts, accessing
Topdirsnow requires the
directory to be added to the toplevel search path with
as was already the case for the other modules in the toplevel interface
(Sébastien Hinderer, review by Florian Angeletti, Nicolás Ojeda Bär and