From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTPS id 32CE25D5 for ; Thu, 6 Aug 2020 19:46:04 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.75,443,1589234400"; d="scan'208";a="462704809" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 06 Aug 2020 21:46:01 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 0835CE0C02; Thu, 6 Aug 2020 21:46:02 +0200 (CEST) Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id D8376E00D5 for ; Thu, 6 Aug 2020 21:45:59 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=octa@polychoron.fr; spf=Pass smtp.mailfrom=octa@polychoron.fr; spf=Pass smtp.helo=postmaster@quaesituri.org IronPort-PHdr: =?us-ascii?q?9a23=3AffDNzxel5/ToakVEW/wMv2XflGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcS9bR7h7PlgxGXEQZ/co6odzbaP7eawASdZvc3JmUtBWaQEbwUCh8?= =?us-ascii?q?QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6?= =?us-ascii?q?OPn+FJLMgMSrzeCy/IDYbxlViDanbr5+MRS7oR/Su8UKjoduN6k8xxXUqXZUZu?= =?us-ascii?q?pawn9lK0iOlBjm/Mew+5Bj8yVUu/0/8sNLTLv3caclQ7FGFToqK2866tHluhnF?= =?us-ascii?q?VguP+2ATUn4KnRpSAgjK9w/1U5HsuSbnrOV92S2aPcrrTbAoXDmp8qlmRAP0hC?= =?us-ascii?q?oBKjU09nzchM5tg6JBuB+vugJxw4DUbo+WOvRxcKzSctEGSmRORctRSy9MD5mg?= =?us-ascii?q?Y4cTAecMP+BVpJT9qVsUqhu+ABGhCuPryj9PnH/23Lc10+I8Ggza2gwgEMwBsH?= =?us-ascii?q?DKo9XpKKcSUP2+wa7PzTrfc/NZwyzw6JDPchAlofCDQbJwcc3LyUkoEQPJlFuQ?= =?us-ascii?q?qZb8Mj6Ty+8CvHSV4fB6WuKzl24otRtxoj63y8syhYTEiIAYx1TE+ylkz4g4ON?= =?us-ascii?q?21RVN4bNOrDZdduDyXOoVoT848Qmxmtzo2x7MIt5O1YiQHyYkqywDDZvGJcIWF?= =?us-ascii?q?5A/oWuiWITd9nn1lebS/ig698Uih1u38VtS0301QoiVZldnMs2gB1x3V6sidS/?= =?us-ascii?q?ty5F2t2TiV1wzL8O5EO081lavFK5I7xb4wjJUTvELeFSH1gEX7lK+bel859uWs?= =?us-ascii?q?6unreLfrqoWcOoNpkg3zNroiltaiDegmMQUCRXaX9Oem2LH+40H0T7NHheAsnK?= =?us-ascii?q?bDqpDVP8Ebq7a5AwBL1oYj7A6yDy670NsCg3YHN1NFeA6aj4jzOlHCOvf4De2w?= =?us-ascii?q?g1i0kTdrwe7JPqH5D5jNNHTPjbPscLdn50Ne0gY+zc1T64pRCr4bIfLzXkHxtM?= =?us-ascii?q?bfDh88KwG0xProCMln2Y4FQWKPBauZMaPOvl+I4eIvOe6MZIkPtDbzMfgp/+Tu?= =?us-ascii?q?gmMhmV8BYamp2oMaZ2yiEfRjJ0WVeH7sgtYaEWcWpQc+V+zriFiaUTFJfXqyXq?= =?us-ascii?q?Q85is6CI28F4vDSJqt0/S923KwF5hSI2RHEUykEHHydozCVe1fRjiVJ5pPljse?= =?us-ascii?q?VLGnA6Yn2hyquRPmyvIzKeHI8wUAspby39hy/erV0x8oo28nR/+B2n2AGjkn1l?= =?us-ascii?q?gDQCU7ifgm/B5Nj2yb2K09uMR2UNxe4/QQDFUjKJfR1O1mFsrzHAXbcYXQEQr0?= =?us-ascii?q?cpCdGTg0C+kJ7ZoWeU8kRoe6iRTS1CqtGbgT0bKRVsRto/DsmkPpLsM48E7oka?= =?us-ascii?q?wojl0oWMxKbDD0nql75gPTAJTOlQOXjfTzeA=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BaAwAcXSxf/zMHxAVgHAEBAQEBAQcBA?= =?us-ascii?q?RIBAQQEAQFAgUqBey9vVTIsg3ZAj1sGgjmCcoYfhXaKG4FpCwEDAQwjCQECBAE?= =?us-ascii?q?BhEwCCIIkAh0GAQQ0EwIQAQEFAQEBAgEDAwQBbIVcDII3IoMZBgwOCQQLAQUPK?= =?us-ascii?q?xcJFAgCJgICSQENEwgBARCCR0sBglcpC5kYm3p/M4M4gQMBgRaFHIEOKoFchzW?= =?us-ascii?q?DfRp5gQeBEAEngjSDTwKBJRIKBAKDL4JgBI86HwQuphCBVoEWiGGGRopbBQoeg?= =?us-ascii?q?nyBI402jiyUE4Z6gVKVHYFqI4FXTScRO4JpCUcZDYROiVwBF4NOgT6DVoVEPzM?= =?us-ascii?q?CAQEBMgIGAQcBAQMJVwGNEAEBJgQDgThfAQE?= X-IPAS-Result: =?us-ascii?q?A0BaAwAcXSxf/zMHxAVgHAEBAQEBAQcBARIBAQQEAQFAgUq?= =?us-ascii?q?Bey9vVTIsg3ZAj1sGgjmCcoYfhXaKG4FpCwEDAQwjCQECBAEBhEwCCIIkAh0GA?= =?us-ascii?q?QQ0EwIQAQEFAQEBAgEDAwQBbIVcDII3IoMZBgwOCQQLAQUPKxcJFAgCJgICSQE?= =?us-ascii?q?NEwgBARCCR0sBglcpC5kYm3p/M4M4gQMBgRaFHIEOKoFchzWDfRp5gQeBEAEng?= =?us-ascii?q?jSDTwKBJRIKBAKDL4JgBI86HwQuphCBVoEWiGGGRopbBQoegnyBI402jiyUE4Z?= =?us-ascii?q?6gVKVHYFqI4FXTScRO4JpCUcZDYROiVwBF4NOgT6DVoVEPzMCAQEBMgIGAQcBA?= =?us-ascii?q?QMJVwGNEAEBJgQDgThfAQE?= X-IronPort-AV: E=Sophos;i="5.75,443,1589234400"; d="scan'208";a="462704783" X-MGA-submission: =?us-ascii?q?MDGabieXMhdjkwwMXmpCBmNF30SAysmxKEPAQK?= =?us-ascii?q?jNeLC2Pz8Ty+E54fvfmPFBq6gP2CnonQEV6cZYX4QPC7SjnPAY2Ot5yB?= =?us-ascii?q?qCrxjGOjNECBdzhVdHWfhjmNTmNmeXfZL5yWutNi3ULZmma/MJBqz4HA?= =?us-ascii?q?Z2FrbN1hrDWnnMsI2j03mvwQ=3D=3D?= Received: from quaesituri.org ([5.196.7.51]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Aug 2020 21:45:58 +0200 Received: from [192.168.1.202] (amontsouris-158-1-25-124.w92-128.abo.wanadoo.fr [92.128.28.124]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by quaesituri.org (Postfix) with ESMTPSA id A0BF021DA9 for ; Thu, 6 Aug 2020 21:45:57 +0200 (CEST) To: caml-list@inria.fr References: <20200706210536.GA44983@prajna.paris.inria.fr> From: Florian Angeletti Message-ID: <3d9abb84-e55a-22b6-e712-ec297c0369ea@polychoron.fr> Date: Thu, 6 Aug 2020 21:45:57 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: [Caml-list] OCaml 4.11.0, release candidate Reply-To: Florian Angeletti X-Loop: caml-list@inria.fr X-Sequence: 18209 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: Dear OCaml users, The release of OCaml version 4.11.0 is imminent. We have created a release candidate that you can test. For users of the beta releases, this release candidate is exactly the same as the last beta release except for a minor fix for the #show directive in the toplevel. The source code is available at these addresses:  https://github.com/ocaml/ocaml/archive/4.11.0+rc2.tar.gz  https://caml.inria.fr/pub/distrib/ocaml-4.11/ocaml-4.11.0+rc2.tar.gz The compiler can be installed as an OPAM switch with the following commands: $ opam update $ opam switch create ocaml-variants.4.11.0+rc2 --repositories=default,beta=git://github.com/ocaml/ocaml-beta-repository.git or with $ opam update $ opam switch create ocaml-variants.4.11.0+rc2+ --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git where is replaced with one of these: afl, flambda, fp, fp+flambda The opam ecosystem is in good shape for this release candidate. For maximum compatibility, you can use the following opam-alpha-repository: $ opam repo add alpha https://github.com/kit-ty-kate/opam-alpha-repository.git during your tests. This repository integrate not-yet-upstreamed or unreleased fixes to various packages. With this repository all except a handful of packages are compatible with this release candidate. Using opam-alpha-repository: all core tools (see the meta issue https://github.com/ocaml/opam-repository/issues/16539) – including Merlin – work, except for ocaml-lsp-server (which is not officially released yet and only relevant for Windows users). All packages except 7 over the 2134 available packages in opam-repository that were compatible with OCaml 4.10 are also compatible with OCaml 4.11. Given that the release is very close and the state of the community packages stable enough, we would like to encourage people to give it a try before the release, especially for those on non-x86_64 architectures. Happy hacking, Florian Angeletti for the OCaml team OCaml 4.11 changes --------------------------- (Changes that can break existing programs are marked with a "*") ### Language features - #8820, #9166: quoted extensions: {%foo|...|} is lighter syntax for   [%foo {||}], and {%foo bar|...|bar} for [%foo {bar|...|bar}].   (Gabriel Radanne, Leo White, Gabriel Scherer and Pieter Goetschalckx,    request by Bikal Lem) - #6673, #1132, #9617: Relax the handling of explicit polymorphic types   (Leo White, review by Jacques Garrigue and Gabriel Scherer) - #9232: allow any class type paths in #-types,   For instance, "val f: #F(X).t -> unit" is now allowed.   (Florian Angeletti, review by Gabriel Scherer, suggestion by Leo White) - #7364, #2188, #9592, #9609: improvement of the unboxability check for types   with a single constructor. Mutually-recursive type declarations can   now contain unboxed types. This is based on the paper     https://arxiv.org/abs/1811.02300   (Gabriel Scherer and Rodolphe Lepigre,    review by Jeremy Yallop, Damien Doligez and Frédéric Bour) - #1154, #1706: spellchecker hints and type-directed disambiguation   for extensible sum type constructors   (Florian Angeletti, review by Alain Frisch, Gabriel Radanne, Gabriel Scherer   and Leo White) ### Runtime system: - #9096: Print function names in backtraces.   (Stephen Dolan, review by Leo White and Mark Shinwell) - #9119: Make [caml_stat_resize_noexc] compatible with the [realloc]   API when the old block is NULL.   (Jacques-Henri Jourdan, review by Xavier Leroy) - #8920, #9238, #9239, #9254, #9458: New API for statistical memory profiling   in Memprof.Gc. The new version does no longer use ephemerons and allows   registering callbacks for promotion and deallocation of memory   blocks.   The new API no longer gives the block tags to the allocation callback.   (Stephen Dolan and Jacques-Henri Jourdan, review by Damien Doligez    and Gabriel Scherer) - #9233: Restore the bytecode stack after an allocation.   (Stephen Dolan, review by Gabriel Scherer and Jacques-Henri Jourdan) - #9230, #9362: Memprof support for native allocations.   (Jacques-Henri Jourdan and Stephen Dolan, review by Gabriel Scherer) - #9249: restore definition of ARCH_ALIGN_INT64 in m.h if the architecture   requires 64-bit integers to be double-word aligned (autoconf regression)   (David Allsopp, review by Sébastien Hinderer) - #9259: Made `Ephemeron.blit_key` and `Weak.blit` faster. They are now   linear in the size of the range being copied instead of depending on the   total sizes of the ephemerons or weak arrays involved.   (Arseniy Alekseyev, design advice by Leo White, review by François Bobot   and Damien Doligez) - #9279: Memprof optimisation.   (Stephen Dolan, review by Jacques-Henri Jourdan) - #9280: Micro-optimise allocations on amd64 to save a register.   (Stephen Dolan, review by Xavier Leroy) - #9316, #9443, #9463, #9782: Use typing information from Clambda   for mutable Cmm variables.   (Stephen Dolan, review by Vincent Laviron, Guillaume Bury, Xavier Leroy,   and Gabriel Scherer; temporary bug report by Richard Jones) - #9426: build the Mingw ports with higher levels of GCC optimization   (Xavier Leroy, review by Sébastien Hinderer) * #9483: Remove accidental inclusion of in   The only release with the inclusion of stdio.h has been 4.10.0   (Christopher Zimmermann, review by Xavier Leroy and David Allsopp) - #9353: Reimplement `output_value` and the `Marshal.to_*` functions   using a hash table to detect sharing, instead of temporary in-place   modifications.  This is a prerequisite for Multicore OCaml.   (Xavier Leroy and Basile Clément, review by Gabriel Scherer and   Stephen Dolan) - #9282: Make Cconst_symbol have typ_int to fix no-naked-pointers mode.   (Stephen Dolan, review by Mark Shinwell, Xavier Leroy and Vincent Laviron) - #9497: Harmonise behaviour between bytecode and native code for   recursive module initialisation in one particular case (fixes #9494).   (Mark Shinwell, David Allsopp, Vincent Laviron, Xavier Leroy,   Geoff Reedy, original bug report by Arlen Cox) - #8791: use a variable-length encoding when marshalling bigarray dimensions,   avoiding overflow.   (Jeremy Yallop, Stephen Dolan, review by Xavier Leroy) - #9082: The instrumented runtime now records logs in the CTF format.   A new API is available in the runtime to collect runtime statistics,   replacing the previous instrumented runtime macros.   Gc.eventlog_pause and Gc.eventlog_resume were added to allow user to control   instrumentation in a running program.   (Enguerrand Decorne and Stephen Dolan, with help and review from   David Allsopp, Sébastien Hinderer, review by Anil Madhavapeddy,   Nicolás Ojeda Bär, Shakthi Kannan, KC Sivaramakrishnan, Gabriel Scherer,   Guillaume Munch-Maccagnoni, Damien Doligez, Leo White, Daniel Bünzli   and Xavier Leroy) ### Code generation and optimizations: - #8637, #8805, #9247, #9296: Record debug info for each allocation.   (Stephen Dolan and Jacques-Henri Jourdan, review by Damien Doligez,    KC Sivaramakrishnan and Xavier Leroy) - #9193: Make tuple matching optimisation apply to Lswitch and Lstringswitch.   (Stephen Dolan, review by Thomas Refis and Gabriel Scherer) - #9392: Visit registers at most once in Coloring.iter_preferred.   (Stephen Dolan, review by Pierre Chambart and Xavier Leroy) - #9441: Add RISC-V RV64G native-code backend.   (Nicolás Ojeda Bär, review by Xavier Leroy and Gabriel Scherer) ### Standard library: - #9077: Add Seq.cons and Seq.append   (Sébastien Briais, review by Yawar Amin and Florian Angeletti) - #9248: Add Printexc.default_uncaught_exception_handler   (Raphael Sousa Santos, review by Daniel Bünzli) - #9235: Add Array.exists2 and Array.for_all2   (Bernhard Schommer, review by Armaël Guéneau) - #9226: Add Seq.unfold.    (Jeremy Yallop, review by Hezekiah M. Carty, Gabriel Scherer and    Gabriel Radanne) - #8771: Lexing: add set_position and set_filename to change (fake)    the initial tracking position of the lexbuf.    (Konstantin Romanov, Miguel Lumapat, review by Gabriel Scherer,     Sébastien Hinderer, and David Allsopp) - #9059: Added List.filteri function, same as List.filter but   with the index of the element.   (Léo Andrès, review by Alain Frisch) - #8894: Added List.fold_left_map function combining map and fold.   (Bernhard Schommer, review by Alain Frisch and github user @cfcs) - #9237: `Format.pp_update_geometry ppf (fun geo -> {geo with ...})`   for formatter geometry changes that are robust to new geometry fields.   (Gabriel Scherer, review by Josh Berdine and Florian Angeletti) - #7110: Added Printf.ikbprintf and Printf.ibprintf   (Muskan Garg, review by Gabriel Scherer and Florian Angeletti) - #9365: Set.filter_map and Map.filter_map   (Gabriel Scherer, review by Stephen Dolan and Nicolás Ojeda Bär) - #9266: Install pretty-printer for the exception Fun.Finally_raised.   (Guillaume Munch-Maccagnoni, review by Daniel Bünzli, Gabriel Radanne,    and Gabriel Scherer) - #9549, #9557: Make -flarge-toc the default for PowerPC and introduce   -fsmall-toc to enable the previous behaviour.   (David Allsopp, report by Nathaniel Wesley Filardo, review by Xavier Leroy) ### Other libraries: - #9106: Register printer for Unix_error in win32unix, as in unix.   (Christopher Zimmermann, review by David Allsopp) - #9183: Preserve exception backtrace of exceptions raised by top-level phrases   of dynlinked modules.   (Nicolás Ojeda Bär, review by Xavier Clerc and Gabriel Scherer) - #9320, #9550: under Windows, make sure that the Unix.exec* functions   properly quote their argument lists.   (Xavier Leroy, report by André Maroneze, review by Nicolás Ojeda Bär    and David Allsopp) - #9490, #9505: ensure proper rounding of file times returned by   Unix.stat, Unix.lstat, Unix.fstat.   (Xavier Leroy and Guillaume Melquiond, report by David Brown,    review by Gabriel Scherer and David Allsopp) ### Tools: - #6969: Argument -nocwd added to ocamldep   (Muskan Garg, review by Florian Angeletti) - #8676, #9594: turn debugger off in programs launched by the program   being debugged   (Xavier Leroy, report by Michael Soegtrop, review by Gabriel Scherer) - #9057: aid debugging the debugger by preserving backtraces of unhandled   exceptions.   (David Allsopp, review by Gabriel Scherer) - #9276: objinfo: cm[x]a print extra C options, objects and dlls in   the order given on the cli. Follow up to #4949.   (Daniel Bünzli, review by Gabriel Scherer) - #463: objinfo: better errors on object files coming   from a different (older or newer), incompatible compiler version.   (Gabriel Scherer, review by Gabriel Radanne and Damien Doligez) - #9181: make objinfo work on Cygwin and look for the caml_plugin_header   symbol in both the static and the dynamic symbol tables.   (Sébastien Hinderer, review by Gabriel Scherer and David Allsopp) * #9197: remove compatibility logic from #244 that was designed to   synchronize toplevel printing margins with Format.std_formatter,   but also resulted in unpredictable/fragile changes to formatter   margins.   Setting the margins on the desired formatters should now work.   typically on `Format.std_formatter`.   Note that there currently is no robust way to do this from the   toplevel, as applications may redirect toplevel printing. In   a compiler/toplevel driver, one should instead access   `Location.formatter_for_warnings`; it is not currently exposed   to the toplevel.   (Gabriel Scherer, review by Armaël Guéneau) - #9207, #9210: fix ocamlyacc to work correctly with up to 255 entry   points to the grammar.   (Andreas Abel, review by Xavier Leroy) - #9283, #9455, #9457: add a new toplevel directive `#use_output ""` to   run a command and evaluate its output.   (Jérémie Dimino, review by David Allsopp) - #9402: Remove `sudo:false` from .travis.yml   (Hikaru Yoshimura) - #9414: testsuite, ocamltest: keep test artifacts only on failure.   Use KEEP_TEST_DIR_ON_SUCCESS=1 to keep all artifacts.   (Gabriel Scherer, review by Sébastien Hinderer) - #9482, #9492: use diversions (@file) to work around OS limitations   on length of Sys.command argument.   (Xavier Leroy, report by Jérémie Dimino, review by David Allsopp) - #9552: restore ocamloptp build and installation   (Florian Angeletti, review by David Allsopp and Xavier Leroy) ### Manual and documentation: - #8644: fix formatting comment about @raise in stdlib's mli files   (Élie Brami, review by David Allsopp) - #9141: beginning of the ocamltest reference manual   (Sébastien Hinderer, review by Gabriel Scherer and Thomas Refis) - #9228: Various Map documentation improvements: add missing key argument in   the 'merge' example; clarify the relationship between input and output keys   in 'union'; note that find and find_opt return values, not bindings.   (Jeremy Yallop, review by Gabriel Scherer and Florian Angeletti) - #9255, #9300: reference chapter, split the expression grammar   (Florian Angeletti, report by Harrison Ainsworth, review by Gabriel Scherer) - #9325: documented base case for `List.for_all` and `List.exists`   (Glenn Slotte, review by Florian Angeletti) - #9403: added a description for warning 67 and added a "." at the end of   warnings for consistency.   (Muskan Garg, review by Gabriel Scherer and Florian Angeletti) - #7708, #9580: Ensure Stdlib documentation index refers to Stdlib.   (Stephen Dolan, review by Florian Angeletti, report by Hannes Mehnert) - #9610: manual, C FFI: naked pointers are deprecated, detail the   forward-compatible options for handling out-of-heap pointers.   (Xavier Leroy, review by Mark Shinwell, David Allsopp and Florian Angeletti) - #9618: clarify the Format documentation on the margin and maximum indentation   limit   (Florian Angeletti, review by Josh Berdine) - #9541: Add a documentation page for the instrumented runtime;   additional changes to option names in the instrumented runtime.   (Enguerrand Decorne, review by Anil Madhavapeddy, Gabriel Scherer,    Daniel Bünzli, David Allsopp, Florian Angeletti,    and Sébastien Hinderer) ### Compiler user-interface and warnings: - GPR#1664: make -output-complete-obj link the runtime native c libraries when   building shared libraries like `-output-obj`.   (Florian Angeletti, review by Nicolás Ojeda Bär) * #7678, #8631: ocamlc -c and ocamlopt -c pass same switches to the C   compiler when compiling .c files (in particular, this means ocamlopt   passes -fPIC on systems requiring it for shared library support).   (David Allsopp, report by Daniel Bünzli, review by Sébastien Hinderer) - #9074: reworded error message for non-regular structural types   (Florian Angeletti, review by Jacques Garrigue and Leo White,    report by Chas Emerick) - #8938: Extend ocamlopt option "-stop-after" to handle "scheduling" argument.   (Greta Yorsh, review by Florian Angeletti and Sébastien Hinderer) - #8945, #9086: Fix toplevel show directive to work with constructors   (Simon Parry, review by Gabriel Scherer, Jeremy Yallop,   Alain Frisch, Florian Angeletti) - #9107: improved error message for exceptions in module signature errors   (Gabriel Scherer, review by Florian Angeletti) - #9208: -dno-locations option to hide source locations (and debug events)   from intermediate-representation dumps (-dfoo).   (Gabriel Scherer, review by Vincent Laviron) - #9393: Improve recursive module usage warnings   (Leo White, review by Thomas Refis) - #2141: generate .annot files from cmt data; deprecate -annot.   (Nicolás Ojeda Bär, review by Alain Frisch, Gabriel Scherer and Damien   Doligez) - #9486: Fix configuration for the Haiku operating system   (Sylvain Kerjean, review by David Allsopp and Sébastien Hinderer) - #9712: Update the version format to allow "~".   The new format is "major.minor[.patchlevel][(+|~)additional-info]",   for instance "4.12.0~beta1+flambda".   This is a documentation-only change for the 4.11 branch, the new format   will be used starting with the 4.12 branch.   (Florian Angeletti, review by Damien Doligez and Xavier Leroy) ### Internal/compiler-libs changes:  - #463: a new Misc.Magic_number module for user-friendly parsing    and validation of OCaml magic numbers.    (Gabriel Scherer, review by Gabriel Radanne and Damien Doligez) - #1176: encourage better compatibility with older Microsoft C compilers by   using GCC's -Wdeclaration-after-statement when available. Introduce   Caml_inline to stop abuse of the inline keyword on MSVC and to help ensure   that only static inline is used in the codebase (erroneous instance in   runtime/win32.c removed).   (David Allsopp, review by Oliver Andrieu and Xavier Leroy) - #8934: Stop relying on location to track usage   (Thomas Refis, review by Gabriel Radanne) - #8970: separate value patterns (matching on values) from computation patterns   (matching on the effects of a copmutation) in the typedtree.   (Gabriel Scherer, review by Jacques Garrigue and Alain Frisch) - #9060: ensure that Misc.protect_refs preserves backtraces   (Gabriel Scherer, review by Guillaume Munch-Maccagnoni and David Allsopp) - #9021: expose compiler Longident.t parsers   (Florian Angeletti, review by Gabriel Scherer) - #9078: make all compilerlibs/ available to ocamltest.   (Gabriel Scherer, review by Sébastien Hinderer) - #9079: typecore/parmatch: refactor ppat_of_type and refine   the use of backtracking on wildcard patterns   (Florian Angeletti, Jacques Garrigue, Gabriel Scherer,    review by Thomas Refis) - #9081: typedtree, make the pat_env field of pattern data immutable   (Gabriel Scherer, review by Jacques Garrigue, report by Alain Frisch) - #9178, #9182, #9196: refactor label-disambiguation (Typecore.NameChoice)   (Gabriel Scherer, Thomas Refis, Florian Angeletti and Jacques Garrigue,    reviewing each other without self-loops) - #9321, #9322, #9359, #9361, #9417, #9447: refactor the   pattern-matching compiler   (Thomas Refis and Gabriel Scherer, review by Florian Angeletti) - #9211, #9215, #9222: fix Makefile dependencies in   compilerlibs, dynlink, ocamltest.   (Gabriel Scherer, review by Vincent Laviron and David Allsopp) - #9305: Avoid polymorphic compare in Ident   (Leo White, review by Xavier Leroy and Gabriel Scherer) - #7927: refactor val_env met_env par_env to class_env   (Muskan Garg, review by Gabriel Scherer and Florian Angeletti) - #2324, #9613: Replace the caml_int_compare and caml_float_compare   (C functions) with primitives.   (Greta Yorsh, review by Stephen Dolan and Vincent Laviron) - #9246: Avoid rechecking functor applications   (Leo White, review by Jacques Garrigue) * #9411: forbid optional arguments reordering with -nolabels   (Thomas Refis, review by Frédéric Bour and Jacques Garrigue) - #9452: Add locations to docstring attributes   (Leo White, review by Gabriel Scherer) ### Build system: - #9250: Add --disable-ocamltest to configure and disable building for   non-development builds.   (David Allsopp, review by Sébastien Hinderer) ### 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) * #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)