OCaml 4.11.0 released

Bug fixes:

  • #7520, #9547: Odd behaviour of refutation cases with polymorphic variants
    (Jacques Garrigue, report by Leo White, reviews by Gabriel Scherer and Leo)

  • #7562, #9456: ocamlopt-generated code crashed on Alpine Linux on
    ppc64le, arm, and i386. Fixed by turning PIE off for musl-based Linux
    systems except amd64 (x86_64) and s390x.
    (Xavier Leroy, review by Gabriel Scherer)

  • #7683, #1499: Fixes one case where the evaluation order in native-code
    may not match the one in bytecode.
    (Nicolás Ojeda Bär, report by Pierre Chambart, review by Gabriel Scherer)

  • #7696, #6608: Record expression deleted when all fields specified
    (Jacques Garrigue, report by Jeremy Yallop)

  • #7741, #9645: Failure to report escaping type variable
    (Jacques Garrigue, report by Gabriel Radanne, review by Gabriel Scherer)

  • #7817, #9546: Unsound inclusion check for polymorphic variant
    (Jacques Garrigue, report by Mikhail Mandrykin, review by Gabriel Scherer)

  • #7897, #9537: Fix warning 38 for rebound extension constructors
    (Leo White, review by Florian Angeletti)

  • #7917, #9426: Use GCC option -fexcess-precision=standard when available,
    avoiding a problem with x87 excess precision in Float.round.
    (Xavier Leroy, review by Sébastien Hinderer)

  • #9011: Allow linking .cmxa files with no units on MSVC by not requiring the
    .lib file to be present.
    (David Allsopp, report by Dimitry Bely, review by Xavier Leroy)

  • #9064: Relax the level handling when unifying row fields
    (Leo White, review by Jacques Garrigue)

  • #9097: Do not emit references to dead labels introduced by #2321 (spacetime).
    (Greta Yorsh, review by Mark Shinwell)

  • #9163: Treat loops properly in un_anf
    (Leo White, review by Mark Shinwell, Pierre Chambart and Vincent Laviron)

  • #9189, #9281: fix a conflict with Gentoo build system
    by removing an one-letter Makefile variable.
    (Florian Angeletti, report by Ralph Seichter, review by David Allsopp
    and Damien Doligez)

  • #9225: Do not drop bytecode debug info after C calls.
    (Stephen Dolan, review by Gabriel Scherer and Jacques-Henri Jourdan)

  • #9231: Make sure a debug event (and the corresponding debug
    information) is inserted after every primitive that can appear in a
    collected call stack, and make sure ocamlc preserves such events
    even if they are at tail position.
    (Jacques-Henri Jourdan, review by Gabriel Scherer)

  • #9244: Fix some missing usage warnings
    (Leo White, review by Florian Angeletti)

  • #9274, avoid reading cmi file while printing types
    (Florian Angeletti, review by Gabriel Scherer)

  • #9307, #9345: reproducible env summaries for reproducible compilation
    (Florian Angeletti, review by Leo White)

  • #9309, #9318: Fix exhaustivity checking with empty types
    (Florian Angeletti, Stefan Muenzel and Thomas Refis, review by Gabriel Scherer
    and Thomas Refis)

  • #9335: actually have --disable-stdlib-manpages not build the manpages
    (implementation conflicted with #8837 which wasn’t picked up in review)
    (David Allsopp, review by Florian Angeletti and Sébastien Hinderer)

  • #9343: Re-enable -short-paths for some error messages
    (Leo White, review by Florian Angeletti)

  • #9355, #9356: ocamldebug, fix a fatal error when printing values
    whose type involves a functor application.
    (Florian Angeletti, review by Gabriel Scherer, report by Cyril Six)

  • #9367: Make bytecode and native-code backtraces agree.
    (Stephen Dolan, review by Gabriel Scherer)

  • #9375, #9477: add forgotten substitution when compiling anonymous modules
    (Thomas Refis, review by Frédéric Bour, report by Andreas Hauptmann)

  • #9384, #9385: Fix copy scope bugs in substitutions
    (Leo White, review by Thomas Refis, report by Nick Roberts)

  • [breaking change] #9388: Prohibit signature local types with constraints
    (Leo White, review by Jacques Garrigue)
  • #9406, #9409: fix an error with packed module types from missing
    cmis.
    (Florian Angeletti, report by Thomas Leonard, review by Gabriel Radanne
    and Gabriel Scherer)

  • #9415: Treat open struct as include struct in toplevel
    (Leo White, review by Thomas Refis)

  • #9416: Avoid warning 58 in flambda ocamlnat
    (Leo White, review by Florian Angeletti)

  • #9420: Fix memory leak when caml_output_value_to_block raises an exception
    (Xavier Leroy, review by Guillaume Munch-Maccagnoni)

  • #9428: Fix truncated exception backtrace for C->OCaml callbacks
    on Power and Z System
    (Xavier Leroy, review by Nicolás Ojeda Bär)

  • #9623, #9642: fix typing environments in Typedecl.transl_with_constraint
    (Gabriel Scherer, review by Jacques Garrigue and Leo White,
    report by Hugo Heuzard)

  • #9695, #9702: no error when opening an alias to a missing module
    (Jacques Garrigue, report and review by Gabriel Scherer)

  • #9714, #9724: Add a terminator to the caml_domain_state structure
    to better ensure that members are correctly spaced.
    (Antonin Décimo, review by David Allsopp and Xavier Leroy)