OCaml 5.1.0 - First Release Candidate
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.
See full backstage
Changes Since the Beta
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-onlyto 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.cmiat runtime. This change also removes the ocamlmktop initialisation module introduced in #11382 which was no longer useful. This change breaks toplevel scripts relying on the visibility ofTopdirsin the initial toplevel environment without loadingtopfind. Since the opam default.ocamlinitfile loadstopfind, it is expected that only scripts run withocaml -noinitare affected. For those scripts, accessingTopdirsnow requires thecompiler-libsdirectory 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)