The release of OCaml 4.14.0 is imminent.
As a last test that everything is in order, we are publishing a second release
candidate for OCaml 4.14.0.
We are directly jumping to the second release candidate due to a
type system regression discovered during the release process of the first
release candidate.
Compared to the last beta, this release candidate includes a regression fix when
typing recursive constraints, two backend fixes (one for the frame-pointer mode
and the other one for the RISC-V architecture), one configuration fix
for musl/arm64, and the manual chapter for the TMC transformation.
If you find any bugs, please report them here:
The full release of OCaml 4.14.0 is currently planned for next week.
Installation instructions
The base compiler can be installed as an opam switch with the following commands
opam update
opam switch create 4.14.0~rc2 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
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> --packages=ocaml-variants.4.14.0~rc2+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
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 4.14.0~rc2+flambda+nffa --packages=ocaml-variants.4.14.0~rc2+options,ocaml-option-flambda,ocaml-option-no-flat-float-array --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
All available options can be listed with opam search ocaml-option
.
The source code for the release candidate is also available at these addresses:
https://github.com/ocaml/ocaml/archive/4.14.0-rc2.tar.gz
https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.0~rc2.tar.gz
Changes since the last beta
Type system regression fix
-
#11101, #11109: A recursive type constraint fails on 4.14
(Jacques Garrigue, report and review by Florian Angeletti)
Backend fixes
-
#10688: Move frame descriptor table from
rodata
todata
section on
RISC-V. Improves support for building DLLs and PIEs. In particular, this
applies to all binaries in distributions that build PIEs by default (eg
Gentoo and Alpine).
(Alex Fan, review by Gabriel Scherer) -
#11031: Exception handlers restore the rbp register when using frame-pointers
on amd64.
(Fabrice Buoro, with help from Stephen Dolan, Tom Kelly and Mark Shinwell,
review by Xavier Leroy)
Configuration fix
-
#11025, #11036: Do not pass -no-pie to the C compiler on musl/arm64
(omni, Kate Deplaix and Antonio Nuno Monteiro, review by Xavier Leroy)