Dear OCaml users, The release of OCaml 4.12.0 is close. The set of new features has been stabilized, and core opam packages already work with this release. After three alpha releases, we have created a first beta version to help you adapt your software to the new features ahead of the release. Compared to the last alpha, this beta contains only three new bug fixes and one change to the standard library. The base compiler can be installed as an opam switch with the following commands opam update opam switch create 4.12.0~beta1 --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 --packages=ocaml-variants.4.12.0~beta1+options, --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git where is a comma separated list of ocaml-option-* packages. For instance, for a flambda and afl enabled switch: opam switch create 4.12.0~beta1+flambda+afl --packages=ocaml-variants.4.12.0~beta1+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: https://github.com/ocaml/ocaml/archive/4.12.0-beta1.tar.gz https://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~beta1.tar.gz If you want to test this version, you may want to install the alpha opam repository https://github.com/kit-ty-kate/opam-alpha-repository with 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. If you find any bugs, please report them here: https://github.com/ocaml/ocaml/issues Happy hacking, -- Florian Angeletti for the OCaml team. Changes from the third alpha release ------------------------------------ ## Postponed features - #9533, #10105, #10127 : Added String.starts_with and String.ends_with. (Bernhard Schommer, review by Daniel Bünzli, Gabriel Scherer and Alain Frisch) ## Additional bug fixes - #9096, #10096: fix a 4.11.0 performance regression in classes/objects declared within a function (Gabriel Scherer, review by Leo White, report by Sacha Ayoun) - #10106, #10112: some expected-type explanations where forgotten after some let-bindings (Gabriel Scherer, review by Thomas Refis and Florian Angeletti, report by Daniil Baturin) - #9326, #10125: Gc.set incorrectly handles the three `custom_*` fields, causing a performance regression (report by Emilio Jesús Gallego Arias, analysis and fix by Stephen Dolan, code by Xavier Leroy, review by Hugo Heuzard and Gabriel Scherer)