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.
Installation Instructions
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:
Fine-Tuned Compiler Configuration
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>
where <option_list>
is a comma-separated list of ocaml-option-*
packages. For instance, for a flambda
and no-flat-float-array
switch:
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
.
Changes Since the Beta Release
Bug Fix
- #12445: missing GC root registrations in runtime/io.c
(Gabriel Scherer, review by Xavier Leroy and Jeremy Yallop)
Configuration Fix (openBSD)
- #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
Sébastien Hinderer)
Tool Fix (ocamlmktop)
- #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 ofTopdirs
in the initial toplevel environment without loadingtopfind
.
Since the opam default.ocamlinit
file loadstopfind
, it is expected
that only scripts run withocaml -noinit
are affected.
For those scripts, accessingTopdirs
now requires thecompiler-libs
directory to be added to the toplevel search path with#directory "+compiler-libs";;
as was already the case for the other modules in the toplevel interface
library.
(Sébastien Hinderer, review by Florian Angeletti, Nicolás Ojeda Bär and
Gabriel Scherer)