OCaml 4.12.0, first beta release

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 <switch_name> --packages=ocaml-variants.4.12.0~beta1+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~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:


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.

If you find any bugs, please report them here:
Issues · ocaml/ocaml · GitHub

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 were 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)


Consider using aria-label with inline html for the release note links to make the links easier to read (https://www.w3.org/WAI/WCAG21/Techniques/aria/ARIA8.html)

1 Like

Only because the PR and issue titles can be redundant and make the text a lot longer.

why not just spelling it out inside the <a></a>?

I might be mistaken, but it doesn’t seem useful to override the text of the links for screen reader here?

I am not sure either. I am relatively new to the topic. I understand that some readers offer three ways of navigating by headings, by list of link texts, and by landmarks. The numbers might be obvious in the link text, given the page, or they might need some elaboration. I saw some web advice mention that a link text should try to capture some of the target page’s title.

Looking at screen reader software release notes, the number without aria-label is used, so disregard my note. nvda/changes.t2tconf at master · nvaccess/nvda · GitHub

Thanks for taking the time of checking this.