OCaml 4.14.0, first beta release

The release of OCaml 4.14.0 is close.

The set of new features has been stabilized, and most opam packages already
work with this release. After two alpha releases, we have created a first
beta version to help you update your softwares and libraries ahead of the
release.

If you find any bugs, please report them at:

Issues · ocaml/ocaml · GitHub

The full release of OCaml 4.14.0 is currently expected for the middle of March.

Compared to the last alpha, we have a last minute correction for one of the new
function in the Seq module, some documentation improvements, few configuration
and internal tweaks.

Installation instructions

The base compiler can be installed as an opam switch with the following commands

opam update
opam switch create 4.14.0~beta1 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git

With opam 2.1, the previous command line can be simplified to

opam update
opam switch create 4.14.0~beta1

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~beta1+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git

or with opam 2.1:

opam update
opam switch create <switch_name> ocaml-variants.4.14.0~beta1+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 4.14.0~beta1+flambda+nffa ocaml-variants.4.14.0~beta1+options ocaml-option-flambda ocaml-option-no-flat-float-array

All available options can be listed with opam search ocaml-option.

The source code for the beta is also available at these addresses:

https://github.com/ocaml/ocaml/archive/4.14.0-beta1.tar.gz
https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.0~beta1.tar.gz

Changes compared to the last alpha

The full list of changes for OCaml 4.14 is available at ocaml/Changes at 4.14 · ocaml/ocaml · GitHub

Standard library

  • [additional fixes] 10583, +10998: Add over 40 new functions in Seq.
    (François Pottier and Simon Cruanes, review by Nicolás Ojeda Bär,
    Daniel Bünzli, Naëla Courant, Craig Ferguson, Wiktor Kuchta,
    Xavier Leroy, Guillaume Munch-Maccagnoni, Raphaël Proust, Gabriel Scherer
    and Thierry Martinez)

Documentation

  • 10397: Document exceptions raised by Unix module functions on Windows
    (Martin Jambon, review by Daniel Bünzli, David Alsopp, Damien Doligez,
    Xavier Leroy, and Florian Angeletti)

  • 10794: Clarify warning 57 (Ambiguous or-pattern variables under guard)
    (Wiktor Kuchta, review by Gabriel Scherer)

Build system

  • 10828 Build native-code compilers on OpenBSD/aarch64
    (Christopher Zimmermann)

  • 10835 Disable DT_TEXTREL warnings on x86 32 bit architecture by passing
    -Wl,-z,notext in mksharedlib and mkmaindll. Fixes relocation issues, reported
    in 9800, making local patches in Debian, Alpine, and FreeBSD superfluous.
    (Hannes Mehnert with Kate Deplaix and Stéphane Glondu, review by Xavier Leroy)

Code generation

  • 10719: Ensure that build_apply respects Lambda.max_arity
    (Stephen Dolan, review by Xavier Leroy)

Internal/compiler-libs

  • [additional fixes] 10718, +11012: Add “Shape” information to the cmt files. Shapes are an
    abstraction of modules that can be used by external tooling to perform
    definition-aware operations.
    (Ulysse Gérard, Thomas Refis and Leo White, review by Florian Angeletti)
11 Likes