OCaml 4.13.0, first release candidate

The release of OCaml 4.13.0 is imminent. As a last test that everything is in order, we are publishing a first release candidate for OCaml 4.13.0.

Compared to the last beta release, this release candidate includes one small fix
for flambda, another for the compiler-libs, one regression fix when compiling C
files with ocamlc or ocamlopt, and a handful of configuration and build system
improvements (in particular on Windows). See the changelog below for more details.

If you find any bugs, please report them here:

Issues · ocaml/ocaml · GitHub

The release of OCaml 4.13.0 is currently planned for mid-September.
An assembler generation bug was discovered this morning, we might release
another release candidate next week once this bug is fixed.

Happy hacking,
Florian Angeletti for the OCaml team.

Installation instructions

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

opam update
opam switch create 4.13.0~rc1 --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.13.0~rc1+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.13.0~rc1+flambda+nffa --packages=ocaml-variants.4.13.0~rc1+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 beta release is also available at these addresses:

https://github.com/ocaml/ocaml/archive/4.13.0-rc1.tar.gz
https://caml.inria.fr/pub/distrib/ocaml-4.13/ocaml-4.13.0~rc1.tar.gz

Changes since the first beta

Bug fixes

  • #10593: Fix untyping of patterns without named existential quantifiers. This
    bug was only present in the beta version of OCaml 4.13.0.
    (Ulysse GĂ©rard, review by Florian Angeletti)

  • #10603, #10611: Fix if condition marked as inconstant in flambda
    (Vincent Laviron and Pierre Chambart, report by Marcello Seri)

Regression fix

  • #9960, #10619(new in rc1): extend ocamlc/ocamlopt’s -o option to work when
    compiling C files
    (SĂ©bastien Hinderer, reported by Daniel BĂĽnzli, review by
    Florian Angeletti and Gabriel Scherer)

Internal configuration and build system

  • #10471: Fix detection of arm32 architectures with musl in configure.
    (Louis Gesbert, review by David Allsopp)

  • #10451: Replace the use of iconv with a C utility to convert $(LIBDIR) to a
    C string constant on Windows when building the runtime. Hardens the generation
    of the constant on Unix for paths with backslashes, double-quotes and
    newlines.
    (David Allsopp, review by Florian Angeletti and SĂ©bastien Hinderer)

  • #10511: Cygwin ports now correctly configure when flexdll is not available.
    (David Allsopp, review by Florian Angeletti)

  • #10584, #10856: Standard Library documentation build no longer fails if
    optional libraries have been disabled.
    (David Allsopp, report by Yuri Victorovich review by Florian Angeletti)

Manual

  • #10605: manual, name few css classes to ease styling and maintainability.
    (Florian Angeletti, review by Wiktor Kuchta and Gabriel Scherer)
8 Likes