All Releases

OCaml 4.07.1

This page describes OCaml version 4.07.1, released on 2018-10-04.

Opam Switches

This release is available as multiple OPAM switches:

  • 4.07.1 — Official 4.07.1 release
  • 4.07.1+32bit - Official 4.07.1 release compiled in 32-bit mode
  • 4.07.1+afl — Official 4.07.1 release with afl-fuzz instrumentation
  • 4.07.1+default-unsafe-string — Official 4.07.1 release without safe strings by default
  • 4.07.1+flambda — Official 4.07.1 release with flambda activated
  • 4.07.1+flambda+no-flat-float-arrays — Official 4.07.1 release with flambda activated and flat float arrays disabled
  • 4.07.1+force-safe-string — Official 4.07.1 release with -safe-string enabled
  • 4.07.1+fp — Official 4.07.1 release with frame-pointers
  • 4.07.1+fp+flambda — Official 4.07.1 release with frame-pointers and flambda activated

What's new

This is a bug-fix release, please consult the changelog.

Source distribution

  • Source tarball (.tar.gz) for compilation under Unix (including Linux and MacOS X) and Microsoft Windows (including Cygwin).
  • Also available in .zip format.
  • OPAM is a source-based distribution of OCaml and many companion libraries and tools. Compilation and installation are automated by powerful package managers.
  • The official development repo is hosted on GitHub.

The INSTALL file of the distribution provides detailed compilation and installation instructions -- see also the Windows release notes for instructions on how to build under Windows.

Alternative Compilers

Additionally, the following projects allow you to compile OCaml code to targets traditionally associated with other languages:

User's manual

The user's manual for OCaml can be:


This is the changelog.

(Changes that can break existing programs are marked with a "*")

Bug fixes:

  • MPR#7815, GPR#1896: major GC crash with first-fit policy (Stephen Dolan and Damien Doligez, report by Joris Giovannangeli)
  • MPR#7818, GPR#2051: Remove local aliases in functor argument types, to prevent the aliasing of their target. (Jacques Garrigue, report by mandrykin, review by Leo White)
  • MPR#7820, GPR#1897: Fix Array.of_seq. This function used to apply a circular permutation of one cell to the right on the sequence. (Thierry Martinez, review by Nicolás Ojeda Bär)

  • MPR#7821, GPR#1908: make sure that the compilation of extension constructors doesn't cause the compiler to load more cmi files (Jérémie Dimino)

  • MPR#7824, GPR#1914: subtype_row: filter out absent fields when row is closed (Leo White and Thomas Refis, report by talex, review by Jacques Garrigue)

  • GPR#1915: is too permissive for certain class declarations. (Alban Reynaud with Gabriel Scherer, review by Jeremy Yallop)

  • MPR#7833, MPR#7835, MPR#7822, GPR#1997: Track newtype level again (Leo White, reports by Jerome Simeon, Thomas Refis and Florian Angeletti, review by Jacques Garrigue)

  • MPR#7838: -principal causes assertion failure in type checker (Jacques Garrigue, report by Markus Mottl, review by Thomas Refis)