From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from Hermes.metastack.local (172.16.0.8) by Hermes.metastack.local (172.16.0.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Mailbox Transport; Fri, 1 Dec 2023 09:26:27 +0000 Received: from Hermes.metastack.local (172.16.0.8) by Hermes.metastack.local (172.16.0.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Fri, 1 Dec 2023 09:26:27 +0000 Received: from exchange.romulus.metastack.com (172.16.0.21) by Hermes.metastack.local (172.16.0.8) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.2507.32 via Frontend Transport; Fri, 1 Dec 2023 09:26:27 +0000 Received: from romulus.metastack.com ([172.16.0.20]) by exchange.romulus.metastack.com (8.14.2/8.14.2) with ESMTP id 3B19QVMT026873 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 1 Dec 2023 09:26:32 GMT Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by romulus.metastack.com (8.14.2/8.14.2) with ESMTP id 3B19QO8F026857 for ; Fri, 1 Dec 2023 09:26:25 GMT Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 01 Dec 2023 10:26:23 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 2F105E0CD2; Fri, 1 Dec 2023 10:26:23 +0100 (CET) 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 427EFE0AF1 for ; Fri, 1 Dec 2023 10:26:16 +0100 (CET) Received: from zcs-store1.inria.fr ([128.93.142.28]) by mail2-relais-roc.national.inria.fr with ESMTP; 01 Dec 2023 10:26:16 +0100 From: Florian Angeletti To: caml-list Subject: [Caml-list] First release candidate of OCaml 5.1.1 Thread-Topic: First release candidate of OCaml 5.1.1 Thread-Index: /UG4z7Ft1wqIPPZH9rFkYUwv3zqBag== Sender: "caml-list-request@inria.fr" X-MS-Exchange-MessageSentRepresentingType: 2 Date: Fri, 1 Dec 2023 09:26:16 +0000 Message-ID: <149603083.31473502.1701422776054.JavaMail.zimbra@inria.fr> Keywords: Sent to dra-news@metastack.com,Marked bulk,MetaStack - Lists,MetaStack List-Help: List-Subscribe: List-Unsubscribe: Reply-To: Florian Angeletti Content-Language: en-GB X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Exchange-Organization-AuthSource: Hermes.metastack.local X-MS-Has-Attach: X-Auto-Response-Suppress: All X-MS-Exchange-Organization-Network-Message-Id: 7dd4d008-55ac-49f3-cd1b-08dbf24f9810 X-MS-TNEF-Correlator: X-MS-Exchange-Organization-RecordReviewCfmType: 0 x-scanned-by: MIMEDefang 2.65 on 62.31.23.242 x-originating-ip: [128.93.64.106] received-spf: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@sympa.inria.fr) identity=helo; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@sympa.inria.fr"; x-conformance=spf_only x-ironport-av: E=Sophos;i="6.04,241,1695679200"; d="scan'208,217";a="139604713" x-loop: caml-list@inria.fr x-no-archive: yes Content-Type: text/html; charset="iso-8859-1" Content-ID: <0F69C9CD79858D4A9F8D1738ABE84B5B@metastack.local> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0
Dear OCaml users,

Two months (and half) after the release of OCaml 5.1.0, we have discovered = three
significant regressions in OCaml 5.1.0, affecting the packaging of executab= les,
the typechecking of OCaml programs, and the performance of numerical codes.=

Since those regressions affect many users and could have lasting effects, w= e
have decided to cut a patch release of OCaml 5.1 with fixes for those issue= s
next week.

To give time for opam packages to test this patch version, we
have just published a first release candidate for OCaml 5.1.1 .
The full list of changes in this release candidate is available below.

As a major exception to our policy for patch releases, OCaml 5.1.1 will
contain one breaking change in the standard library: the `Compression` flag= has
been removed from the `Marshal` module.
This drastic measure was taken because supporting zstd compression in the standard library made zstd a dependency of all OCaml executables. Since the=
compiler should not impose its dependency on end-users, the support for
compressed marshaling has been moved to a compiler internal library in 5.1.= 1.
This internally library might be released as an independent library in late= r
releases of OCaml but not in OCaml 5.1.1 to give us time to polish the libr= ary
integration and packaging.

Happy hacking,
Florian Angeletti for the OCaml team.


Installation Instructions
--------------------------

The base compiler can be installed as an opam switch with the following com= mands on opam 2.1 and later:

    opam update
    opam switch create 5.1.1~rc1

The source code for the release candidate is also directly available on:
* GitHub: https://github.com/ocaml/ocaml/archive/5.1.1-rc1.tar.gz
* OCaml archives at Inria: https://caml.inria.fr/pub/distrib/ocaml-5.1/ocam= l-5.1.1~rc1.tar.gz

### Fine-Tuned Compiler Configuration

If you want to tweak the configuration of the compiler, you can switch to t= he option variant with:

    opam update
    opam switch create <switch_name> ocaml-variants.5.= 1.1~rc1+options <option_list>

where `option_list` is a space-separated list of `ocaml-option-*` packages.= For instance, for a `flambda` and `no-flat-float-array` switch:

    opam switch create 5.1.1~rc1+flambda+nffa ocaml-= variants.5.1.1~rc1+options ocaml-option-flambda ocaml-option-no-flat-fl= oat-array

All available options can be listed with `opam search ocaml-option`.


Changes in OCaml 5.1.1
-----------------------

### Standard Library Dependency Fix:

* (*breaking change*) [#12562](https://github.com/ocaml/ocaml/issues/12562)= , [#12734](https://github.com/ocaml/ocaml/issues/12734), [#12783](https://g= ithub.com/ocaml/ocaml/issues/12783): Remove the `Marshal.Compression` flag = to the
  `Marshal.to_*` functions introduced in 5.1 by [#12006](https://githu= b.com/ocaml/ocaml/issues/12006), as it cannot
  be implemented without risking to link -lzstd with all
  ocamlopt-generated executables.  The compilers are still able t= o use
  ZSTD compression for compilation artefacts.
  (Xavier Leroy and David Allsopp, report by Kate Deplaix, review by    Nicol=E1s Ojeda B=E4r, Kate Deplaix, and Damien Doligez).

### Type System Bug Fix:

- [#12623](https://github.com/ocaml/ocaml/issues/12623), fix the computatio= n of variance composition
  (Florian Angeletti, report by Vesa Karvonen, review by Gabriel Scher= er)

### GC Performance Regression Fixes

- [#12590](https://github.com/ocaml/ocaml/issues/12590), [#12595](https://g= ithub.com/ocaml/ocaml/issues/12595): Move `caml_collect_gc_stats_sample` in=
  `caml_empty_minor_heap_promote` before barrier arrival.
  (B. Szilvasy, review by Gabriel Scherer)

- [#12318](https://github.com/ocaml/ocaml/issues/12318): GC: simplify the m= eaning of custom_minor_max_size: blocks with
  out-of-heap memory above this limit are now allocated directly in   the major heap.
  (Damien Doligez, report by Stephen Dolan, review by Gabriel Scherer)=

- [#12439](https://github.com/ocaml/ocaml/issues/12439): Finalize and colle= ct dead custom blocks during minor collection
  (Damien Doligez, review by Xavier Leroy, Gabriel Scherer and KC
  Sivaramakrishnan)

- [#12491](https://github.com/ocaml/ocaml/issues/12491), [#12493](https://g= ithub.com/ocaml/ocaml/issues/12493), [#12500](https://github.com/ocaml/ocam= l/issues/12500), [#12754](https://github.com/ocaml/ocaml/issues/12754): Do = not change GC pace when creating
  sub-arrays of bigarrays
  (Xavier Leroy, report by Ido Yariv, analysis by Gabriel Scherer,

### Miscellaneous Bug Fixes

- [#12581](https://github.com/ocaml/ocaml/issues/12581), [#12609](https://g= ithub.com/ocaml/ocaml/issues/12609): Fix error on uses of packed modules ou= tside their pack
  to correctly handle nested packs
  (Vincent Laviron, report by Javier Ch=E1varri, review by Pierre Cham= bart)

- [#12757](https://github.com/ocaml/ocaml/issues/12757): Fix ocamlnat (nati= ve toplevel) by registering frametables correctly
  (Stephen Dolan, Nick Barnes and Mark Shinwell,
   review by Vincent Laviron and S=E9bastien Hinderer)

- [#12645](https://github.com/ocaml/ocaml/issues/12645), [#12649](http= s://github.com/ocaml/ocaml/issues/12649) fix error messages for cyclic type= definitions in presence of
  the `-short-paths` flag.
  (Florian Angeletti, report by Vesa Karvonen, review by Gabriel Scher= er)