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.23 via Mailbox Transport; Fri, 2 Jun 2023 08:47:51 +0100 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.23; Fri, 2 Jun 2023 08:47:51 +0100 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.23 via Frontend Transport; Fri, 2 Jun 2023 08:47:51 +0100 Received: from romulus.metastack.com ([172.16.0.20]) by exchange.romulus.metastack.com (8.14.2/8.14.2) with ESMTP id 3527l6hW028122 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 2 Jun 2023 08:47:06 +0100 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 3527kxil028107 for ; Fri, 2 Jun 2023 08:46:59 +0100 Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 02 Jun 2023 09:46:59 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id A282BE0CCE; Fri, 2 Jun 2023 09:46:58 +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 0471FE0094 for ; Fri, 2 Jun 2023 09:46:48 +0200 (CEST) Received: from zcs-store1.inria.fr ([128.93.142.28]) by mail2-relais-roc.national.inria.fr with ESMTP; 02 Jun 2023 09:46:48 +0200 From: Florian Angeletti To: caml-list Subject: [Caml-list] Second alpha release of OCaml 5.1.0 Thread-Topic: Second alpha release of OCaml 5.1.0 Thread-Index: AQHZlSaIXnQa2ojcqUKgkKeszDO5Dw== Sender: "caml-list-request@inria.fr" X-MS-Exchange-MessageSentRepresentingType: 2 Date: Fri, 2 Jun 2023 08:46:47 +0100 Message-ID: <614877951.14559857.1685692007861.JavaMail.zimbra@inria.fr> References: <1683360478.6348093.1681545181983.JavaMail.zimbra@inria.fr> Keywords: Sent to dra-news@metastack.com,Marked bulk,MetaStack - Lists,MetaStack List-Help: List-Subscribe: List-Unsubscribe: In-Reply-To: <1683360478.6348093.1681545181983.JavaMail.zimbra@inria.fr> 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: 29798efb-e5c1-4f53-a656-08db633daaeb 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.00,212,1681164000"; d="scan'208,217";a="110861854" x-loop: caml-list@inria.fr x-no-archive: yes Content-Type: text/html; charset="iso-8859-1" Content-ID: <5005345F9275EA43AC82DCE005A72812@metastack.local> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0
Dear OCaml users,

With the progress of the ongoing stabilisation effort for OCaml 5.1.0,
I am happy to announce a second alpha release for OCaml 5.1.0.

This second alpha release contains many noteworthy fixes:

- a long-awaited GC fix
- a Windows ABI fix

as announced in the first alpha but also

- a compiler-libs (parsetree) fix
- a type system compatibility enhancement change
- a restored backed for  s390x/IBM Z

The full list of changes is available at the end of this email.

Once most major OCaml tools are updated to the last compiler-libs changes,<= br> we will switch to beta releases. Hopefully, this will happen in the upcomin= g
weeks. The progress on stabilising the ecosystem is tracked on the
opam readiness for 5.1.0 meta-issue at:

  https://github.com/ocaml/opam-repository/issues/23669

The release is still planned for around July.

If you find any bugs, please report them here:

  https://github.com/ocaml/ocaml/issues

If you are interested by the ongoing list of new features and bug fixes, th= e
updated change log for OCaml 5.1.0 is available at:

  https://github.com/ocaml/ocaml/blob/5.1/Changes

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:

    opam update
    opam switch create 5.1.0~alpha2

The source code for the alpha is also available at these addresses:

* https://github.com/ocaml/ocaml/archive/5.1.0-alpha2.tar.gz
* https://caml.inria.fr/pub/distrib/ocaml-5.1/ocaml-5.1.0~alpha2.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.0~alpha2+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.0~alpha2+flambda+nffa oca= ml-variants.5.1.0~alpha2+options ocaml-option-flambda ocaml-option-no-f= lat-float-array

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


Changes Compared To The First Alpha
-----------------------------------

### Runtime System:

- #11589, #11903: Modify the GC pacing code to make sure the GC keeps
   up with allocations in the presence of idle domains.
   (Damien Doligez and Stephen Dolan, report by Florian Angeletti= ,
   review by KC Sivaramakrishnan and Sadiq Jaffer)

* #11865, #11868, #11876: Clarify that the operations of a custom
  block must never access the OCaml runtime. The previous
  documentation only mentioned the main illicit usages. In particular,=
  since OCaml 5.0, it is no longer safe to call
  `caml_remove_global_root` or `caml_remove_generational_global_root`<= br>   from within the C finalizer of a custom block, or within the
  finalization function passed to `caml_alloc_final`. As a workaround,=
  such a finalization operation can be registered with `Gc.finalize`   instead, which guarantees to run the finalizer at a safe point.
  (Report by Timothy Bourke, discussion by Yotam Barnoy, Timothy
  Bourke, Sadiq Jaffer, Xavier Leroy, Guillaume Munch-Maccagnoni, and<= br>   Gabriel Scherer)

+ #11827, +#12249: Restore prefetching for GC marking
  (Fabrice Buoro and Stephen Dolan, review by Gabriel Scherer and Sadi= q Jaffer)

- #12131: Simplify implementation of weak hash sets, fixing a
  performance regression. (Nick Barnes, review by Fran=E7ois Bobot,   Alain Frisch and Damien Doligez).

- #12231: Support MinGW-w64 11.0 winpthreads library, where the macro
  to set up to get flexdll working changed
  (David Allsopp and Samuel Hym, light review by Xavier Leroy)


### Type System:

* #12189, #12211: anonymous row variables in explicitly polymorphic type   annotation, e.g. `'a. [< X of 'a ] -> 'a`, are now implicitly<= br>   universally quantified (in other words, the example above is now rea= d
  as `'a 'r. ([< X of 'a `] as 'r) -> 'a`).
  (Florian Angeletti and Gabriel Scherer, review by Jacques Garrigue)<= br>
### Code generation and optimizations:

- #11712, #12258, #12261: s390x / IBM Z multicore support:
  OCaml & C stack separation; dynamic stack size checks; fiber and=
  effects support.
  (Aleksei Nikiforov, with help from Vincent Laviron and Xavier Leroy,=
   additional suggestions by Luc Maranget,
   review by the same and KC Sivaramakrishnan)

### Internal/compiler-libs Changes:

+ #12119, +#12188, +#12191: mirror type constraints on value bi= nding in the
  parsetree:
  the constraint `typ` in `let pat : typ =3D exp` is now directly stor= ed
  in the value binding node in the parsetree.
  (Florian Angeletti, review by  Richard Eisenberg)

### Bug Fixes

- #11846: Mark rbx as destroyed at C call for Win64 (mingw-w64 and Cygwin64= ).
  Reserve the shadow store for the ABI in the c_stack_link struct inst= ead of
  explictly when calling C functions. This simultaneously reduces the = number of
  stack pointer manipulations and also fixes a bug when calling noallo= c
  functions where the shadow store was not being reserved.
  (David Allsopp, report by Vesa Karvonen, review by Xavier Leroy and<= br>    KC Sivaramakrishnan)

- #12170: fix pthread_geaffinity_np configure check for android
  (David Allsopp, review by S=E9bastien Hinderer)

- #12252: Fix shared library build error on RISC-V.
  (Edwin T=F6r=F6k, review by Nicol=E1s Ojeda B=E4r and Xavier Leroy)<= br>
- #12255, #12256: Handle large signal numbers correctly (Nick Barnes,
   review by David Allsopp).

- #12277: ARM64, fix a potential assembler error for very large functions b= y
  emitting stack reallocation code before the body of the function.   (Xavier Leroy, review by KC Sivaramakrishnan)