The release of OCaml 4.12.0 is on the horizon. We have created a new beta
version to help you adapt your software to the new features ahead of the release.
Compared to the first beta release, this new release contains one fix for the
Thread library (for a race condition on Windows), and experimentally re-enables
building the compiler on illumos and Oracle Solaris.
We are expecting this beta to be the last one before the release.
If you find any bugs, please report them here:
Issues · ocaml/ocaml · GitHub
– Florian Angeletti for the OCaml team.
The base compiler can be installed as an opam switch with the following commands
opam update opam switch create 4.12.0~beta2 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
If you want to tweak the configuration of the compiler, you can pick configuration options with
opam update opam switch create <switch_name> --packages=ocaml-variants.4.12.0~beta2+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 afl enabled switch:
opam switch create 4.12.0~beta2+flambda+afl --packages=ocaml-variants.4.12.0~beta2+options,ocaml-option-flambda,ocaml-option-afl --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 is available at these addresses:
If you want to test this version, you may want to install the alpha opam repository
opam repo add alpha git://github.com/kit-ty-kate/opam-alpha-repository.git
This alpha repository contains various packages patched with fixes in the
process of being upstreamed. Once the repository installed, these patched
packages will take precedence over the non-patched version.
Changes from the first beta
- [additional fixes] 9757, 9846, +10161: check proper ownership when operating over mutexes.
Now, unlocking a mutex held by another thread or not locked at all
reliably raises a Sys_error exception. Before, it was undefined
behavior, but the documentation did not say so.
Likewise, locking a mutex already locked by the current thread
reliably raises a Sys_error exception. Before, it could
deadlock or succeed (and do recursive locking), depending on the OS.
(Xavier Leroy, report by Guillaume Munch-Maccagnoni, review by
Guillaume Munch-Maccagnoni, David Allsopp, and Stephen Dolan)
10063: (Re-)enable building on illumos (SmartOS, OmniOS, …) and
Oracle Solaris; x86_64/GCC and 64-bit SPARC/Sun PRO C compilers.
(partially revert 2024).
(Tõivo Leedjärv and Konstantin Romanov,
review by Gabriel Scherer, Sébastien Hinderer and Xavier Leroy)
9755: Manual: post-processing the html generated by ocamldoc and
hevea. Improvements on design and navigation, including a mobile
version, and a quick-search functionality for the API.
(San Vũ Ngọc, review by David Allsopp and Florian Angeletti)