OCaml 4.09.1 released

We have the pleasure of celebrating the anniversary of the first spacewalk,
conducted by Alexei Leonov, by announcing the release of OCaml version 4.09.1 .
This is mainly a bug-fix release, with a handful of configuration fixes and
a GC fix backported from 4.10.0 . See the list of changes below for more details.

It is (or soon will be) available as a set of OPAM switches,
and as a source download here:


Changes in 4.09.1:

  • #9073, #9120: fix incorrect GC ratio multiplier when allocating custom blocks
    with caml_alloc_custom_mem in runtime/custom.c
    (Markus Mottl, review by Gabriel Scherer and Damien Doligez)

  • #8855, #8858: Links for tools not created when installing with
    –disable-installing-byecode-programs (e.g. ocamldep.opt installed, but
    ocamldep link not created)
    (David Allsopp, report by Thomas Leonard)

  • #8947, #9134, #9302: fix/improve support for the BFD library
    (SĂ©bastien Hinderer, review by Damien Doligez and David Allsopp)

  • #8953, #8954: Fix error submessages in the toplevel: do not display
    dummy locations
    (Armaël Guéneau, review by Gabriel Scherer)

  • #8965, #8979: Alpine build failure caused by check-parser-uptodate-or-warn.sh
    (Gabriel Scherer and David Allsopp, report by Anton Kochkov)

  • #8985, #8986: fix generation of the primitives when the locale collation is
    incompatible with C.
    (David Allsopp, review by Nicolás Ojeda Bär, report by Sebastian Rasmussen)

  • #9050, #9076: install missing compilerlibs/ocamlmiddleend archives
    (Gabriel Scherer, review by Florian Angeletti, report by Olaf Hering)

  • #9144, #9180: multiple definitions of global variables in the C runtime,
    causing problems with GCC 10.0 and possibly with other C compilers
    (Xavier Leroy, report by JĂĽrgen Reuter, review by Mark Shinwell)

  • #9180: pass -fno-common option to C compiler when available,
    so as to detect problematic multiple definitions of global variables
    in the C runtime
    (Xavier Leroy, review by Mark Shinwell)

  • #9128: Fix a bug in bytecode mode which could lead to a segmentation
    fault. The bug was caused by the fact that the atom table shared a
    page with some bytecode. The fix makes sure both the atom table and
    the minor heap have their own pages.
    (Jacques-Henri Jourdan, review by Stephen Dolan, Xavier Leroy and
    Gabriel Scherer)