From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.134.164.83; helo=mail2-relais-roc.national.inria.fr; envelope-from=caml-list-owner@inria.fr; receiver= Authentication-Results: plum; dmarc=pass (p=none dis=none) header.from=inria.fr Authentication-Results: plum.tunbury.org; dkim=pass (1024-bit key; unprotected) header.d=inria.fr header.i=@inria.fr header.a=rsa-sha256 header.s=dc header.b=OYrDpbfY; dkim=fail reason="signature verification failed" (1024-bit key) header.d=inria.fr header.i=@inria.fr header.a=rsa-sha256 header.s=dc header.b=H7Ijkfoc; dkim-atps=neutral Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by plum.tunbury.org (Postfix) with ESMTPS id 29DE4B80123 for ; Mon, 25 Mar 2024 15:15:51 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=date:from:to:message-id:in-reply-to:references: mime-version:subject:reply-to:sender:list-id:list-help: list-subscribe:list-unsubscribe:list-post:list-owner: list-archive; bh=LLVa5JU9d8X+K4o+bqMuKcv9MletWT3cPd7BXPpxJwQ=; b=OYrDpbfYo4ad0TUb1L29uKK/qFYUKF1Kz0tpd17Jk0A+WTmMOQyIKBOf r3lMR2ENHs3LtKkOnpz5l0vp5ASbWN9kkze3QC819RFYPDqh92lsU/ixd KRT+qhpFM9sYitGT3rGT0ihSYwG1ejmgMtzkqARsl0MLkSrk4TRz1Iemq I=; Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr designates 128.93.162.160 as permitted sender) identity=mailfrom; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="caml-list-owner@inria.fr"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 include:mailout.safebrands.com a:basic-mail.safebrands.com a:basic-mail01.safebrands.com a:basic-mail02.safebrands.com ip4:128.93.142.0/24 ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:89.107.174.7 mx ~all" 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 Authentication-Results: mail2-relais-roc.national.inria.fr; spf=Pass smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@sympa.inria.fr; dkim=hardfail (signature did not verify [final]) header.i=@inria.fr X-IronPort-AV: E=Sophos;i="6.07,153,1708383600"; d="scan'208,217";a="158352180" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 25 Mar 2024 16:15:51 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id 45B32E0145; Mon, 25 Mar 2024 16:15:50 +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 41C32E0145 for ; Mon, 25 Mar 2024 16:15:48 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=date:from:to:message-id:in-reply-to:references:subject: mime-version; bh=LLVa5JU9d8X+K4o+bqMuKcv9MletWT3cPd7BXPpxJwQ=; b=H7IjkfocvsLgzMT8Je5Bp7EOEK5f+Oi9nJluUIqriznB27epJMowKQ6S Xt02s4qxUy5f3DkoQXXBQL8PzB2jJwuvw5jqOSxEHYw84y7pvIBPA9WIi PaH7MrNvu7amSA0WGZM3rl31Ieu6hxANTaon7R7JnztNhJczhKQJa8EON Q=; X-IronPort-AV: E=Sophos;i="6.07,153,1708383600"; d="scan'208,217";a="158352155" Received: from zcs2-store1.inria.fr ([128.93.142.3]) by mail2-relais-roc.national.inria.fr with ESMTP; 25 Mar 2024 16:15:49 +0100 Date: Mon, 25 Mar 2024 16:15:48 +0100 (CET) From: Florian Angeletti To: caml-list Message-ID: <521387019.8365666.1711379748150.JavaMail.zimbra@inria.fr> In-Reply-To: <1337469696.7444873.1707300411976.JavaMail.zimbra@inria.fr> References: <1337469696.7444873.1707300411976.JavaMail.zimbra@inria.fr> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=_981b7606-d8bf-404f-b7ab-904a520df8a0" X-Originating-IP: [128.93.162.3] X-Mailer: Zimbra 10.0.7_GA_4598 (ZimbraWebClient - FF123 (Linux)/10.0.7_GA_4598) Thread-Topic: First beta release of OCaml 5.2.0 Thread-Index: KuH15Xrfj0w7cAgGbhniega0brreZNVcrAjr Subject: [Caml-list] First beta release of OCaml 5.2.0 Reply-To: Florian Angeletti X-Loop: caml-list@inria.fr X-Sequence: 19103 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: --=_981b7606-d8bf-404f-b7ab-904a520df8a0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Dear OCaml users,=20 Nearly two months after the first alpha release, the release of OCaml 5.2.0= is drawing near.=20 We have thus released a first beta version of OCaml 5.2.0 to help you updat= e your softwares and libraries ahead of the release (see below for the inst= allation instructions).=20 Compared to the alpha release, this beta contains a majority of runtime sys= tem fixes, and a handful of other fixes across various subsystems.=20 Overall, the opam ecosystem looks in a good shape for the first beta releas= e.=20 Most core development tools support OCaml 5.2.0 or have compatibility patch= es under review (for `odoc` and `ocamlformat`), and you can follow the last= remaining wrinkles on the=20 opam readiness for 5.2.0 meta-issue (https://github.com/ocaml/opam-reposito= ry/issues/25182).=20 If you find any bugs, please report them on OCaml's issue tracker (https://= github.com/ocaml/ocaml/issues).=20 Currently, the release is planned for the end of April or the beginning of = May.=20 If you are interested in full list of features and bug fixes of the new OCa= ml version, the=20 updated change log for OCaml 5.2.0 is available on GitHub (https://github.c= om/ocaml/ocaml/blob/5.2/Changes).=20 Happy hacking,=20 Florian Angeletti for the OCaml team.=20 Installation Instructions=20 ------------------------------=20 The base compiler can be installed as an opam switch with the following com= mands=20 on opam 2.1:=20 opam update=20 opam switch create 5.2.0~beta1=20 The source code for the alpha is also available at these addresses:=20 * GitHub: https://github.com/ocaml/ocaml/archive/5.2.0-beta1.tar.gz=20 * OCaml archives at Inria: https://caml.inria.fr/pub/distrib/ocaml-5.2/ocam= l-5.2.0~beta1.tar.gz=20 Fine-Tuned Compiler Configuration=20 -----------------------------------------------=20 If you want to tweak the configuration of the compiler, you can switch to t= he option variant with:=20 opam update=20 opam switch create ocaml-variants.5.2.0~beta1+options =20 where `option_list` is a space-separated list of `ocaml-option-*` packages.= For instance, for a `flambda` and `no-flat-float-array` switch:=20 opam switch create 5.2.0~beta1+flambda+nffa ocaml-variants.5.2.0~beta1+opti= ons ocaml-option-flambda ocaml-option-no-flat-float-array=20 All available options can be listed with `opam search ocaml-option`.=20 Changes since the first alpha=20 ---------------------------------------=20 ## Runtime System Fixes=20 - [#12875](https://github.com/ocaml/ocaml/issues/12875), [#12879](https://g= ithub.com/ocaml/ocaml/issues/12879), [#12882](https://github.com/ocaml/ocam= l/issues/12882): Execute preemptive systhread switching as a=20 delayed pending action. This ensures that one can reason within the=20 FFI that no mutation happens on the same domain when allocating on=20 the OCaml heap from C, consistently with OCaml 4. This also fixes=20 further bugs with the multicore systhreads implementation.=20 (Guillaume Munch-Maccagnoni, bug reports and suggestion by Mark=20 Shinwell, review by Nick Barnes and Stephen Dolan)=20 - [#12876](https://github.com/ocaml/ocaml/issues/12876): Port ThreadSanitiz= er support to Linux on POWER=20 (Miod Vallat, review by Tim McGilchrist)=20 - [#12678](https://github.com/ocaml/ocaml/issues/12678), [#12898](https://g= ithub.com/ocaml/ocaml/issues/12898): free channel buffers on close rather t= han on finalization=20 (Damien Doligez, review by Jan Midtgaard and Gabriel Scherer, report=20 by Jan Midtgaard)=20 - [#12915](https://github.com/ocaml/ocaml/issues/12915): Port ThreadSanitiz= er support to Linux on s390x=20 (Miod Vallat, review by Tim McGilchrist)=20 - [#12914](https://github.com/ocaml/ocaml/issues/12914): Slightly change th= e s390x assembly dialect in order to build with=20 Clang's integrated assembler.=20 (Miod Vallat, review by Gabriel Scherer)=20 - [#12897](https://github.com/ocaml/ocaml/issues/12897): fix locking bugs i= n Runtime_events=20 (Gabriel Scherer and Thomas Leonard,=20 review by Olivier Nicole, Vincent Laviron and Damien Doligez,=20 report by Thomas Leonard)=20 - [#12860](https://github.com/ocaml/ocaml/issues/12860): Fix an assertion t= hat wasn't taking into account the possibility of an=20 ephemeron pointing at static data.=20 (Mark Shinwell, review by Gabriel Scherer and KC Sivaramakrishnan)=20 - [#11040](https://github.com/ocaml/ocaml/issues/11040), [#12894](https://g= ithub.com/ocaml/ocaml/issues/12894): Silence false data race observed betwe= en caml_shared_try_alloc=20 and oldify. Introduces macros to call tsan annotations which help annotate= =20 a ``happens before'' relationship.=20 (Hari Hara Naveen S and Olivier Nicole,=20 review by Gabriel Scherer and Miod Vallat)=20 - [#12919](https://github.com/ocaml/ocaml/issues/12919): Fix register corru= ption in caml_callback2_asm on s390x.=20 (Miod Vallat, review by Gabriel Scherer)=20 - [#12969](https://github.com/ocaml/ocaml/issues/12969): Fix a data race in= caml_darken_cont=20 (Fabrice Buoro and Olivier Nicole, review by Gabriel Scherer and Miod Valla= t)=20 ## Standard Library Fix=20 - [#12677](https://github.com/ocaml/ocaml/issues/12677), [#12889](https://g= ithub.com/ocaml/ocaml/issues/12889): make Domain.DLS thread-safe=20 (Gabriel Scherer, review by Olivier Nicole and Damien Doligez,=20 report by Vesa Karvonen)=20 ## Type System Fix=20 - [#12924](https://github.com/ocaml/ocaml/issues/12924), [#12930](https://g= ithub.com/ocaml/ocaml/issues/12930): Rework package constraint checking to = improve interaction with=20 immediacy=20 (Chris Casinghino and Florian Angeletti, review by Florian Angeletti and=20 Richard Eisenberg)=20 ## Compiler User-Interface Fix=20 - [#12971](https://github.com/ocaml/ocaml/issues/12971), [#12974](https://g= ithub.com/ocaml/ocaml/issues/12974): fix an uncaught Ctype.Escape exception= on some=20 invalid programs forming recursive types.=20 (Gabriel Scherer, review by Florian Angeletti, report by Neven Villani)=20 ## Build System Fixes=20 + [#12198](https://github.com/ocaml/ocaml/issues/12198), [#12321](https://g= ithub.com/ocaml/ocaml/issues/12321), [#12586](https://github.com/ocaml/ocam= l/issues/12586), [#12616](https://github.com/ocaml/ocaml/issues/12616), [#1= 2706](https://github.com/ocaml/ocaml/issues/12706), +[#13048](https://githu= b.com/ocaml/ocaml/issues/13048): continue the merge of the=20 sub-makefiles into the root Makefile started with [#11243](https://github.c= om/ocaml/ocaml/issues/11243), [#11248](https://github.com/ocaml/ocaml/issue= s/11248),=20 [#11268](https://github.com/ocaml/ocaml/issues/11268), [#11420](https://git= hub.com/ocaml/ocaml/issues/11420) and [#11675](https://github.com/ocaml/oca= ml/issues/11675).=20 (S=E9bastien Hinderer, review by David Allsopp and Florian Angeletti)=20 + [#12768](https://github.com/ocaml/ocaml/issues/12768), +[#13030](https://= github.com/ocaml/ocaml/issues/13030): Detect mingw-w64 coupling with GCC or= LLVM, detect clang-cl,=20 and fix C compiler feature detection on macOS.=20 (Antonin D=E9cimo, review by Miod Vallat and S=E9bastien Hinderer)=20 - [#13019](https://github.com/ocaml/ocaml/issues/13019): Remove linking ins= tructions for the Unix library from threads.cma=20 (this was done for threads.cmxa in OCaml 3.11). Eliminates warnings from=20 new lld when using threads.cma of duplicated libraries.=20 (David Allsopp, review by Nicol=E1s Ojeda B=E4r)=20 + [#12758](https://github.com/ocaml/ocaml/issues/12758), +[#12998](https://= github.com/ocaml/ocaml/issues/12998): Remove the `Marshal.Compression` flag= to the=20 `Marshal.to_*` functions. The compilers are still able to use=20 ZSTD compression for compilation artefacts.=20 This is a forward port and clean-up of the emergency fix that was introduce= d=20 ## Compiler Internals Fix=20 + [#12389](https://github.com/ocaml/ocaml/issues/12389), [#12544](https://g= ithub.com/ocaml/ocaml/issues/12544), [#12984](https://github.com/ocaml/ocam= l/issues/12984), +[#12987](https://github.com/ocaml/ocaml/issues/12987): ce= ntralize the handling of metadata for=20 compilation units and artifacts in preparation for better unicode support f= or=20 OCaml source files.=20 (Florian Angeletti, review by Vincent Laviron and Gabriel Scherer)=20 --=_981b7606-d8bf-404f-b7ab-904a520df8a0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Dear OCaml users,

Nearly two months after the first alpha release, the r= elease of OCaml 5.2.0 is drawing near.

We have thus released a first= beta version of OCaml 5.2.0 to help you update your softwares and librarie= s ahead of the release (see below for the installation instructions).
Compared to the alpha release, this beta contains a majority of runtime s= ystem fixes, and a handful of other fixes across various subsystems.
Overall, the opam ecosystem looks in a good shape for the first beta relea= se.
Most core development tools support OCaml 5.2.0 or have compatibilit= y patches under review (for `odoc` and `ocamlformat`), and you can follow t= he last remaining wrinkles on the
opam readiness for 5.2.0 meta-issue (h= ttps://github.com/ocaml/opam-repository/issues/25182).

If you find a= ny bugs, please report them on OCaml's issue tracker (https://github.com/oc= aml/ocaml/issues).

Currently, the release is planned for the end of = April or the beginning of May.

If you are interested in full list of= features and bug fixes of the new OCaml version, the
updated change log= for OCaml 5.2.0 is available on GitHub (https://github.com/ocaml/ocaml/blo= b/5.2/Changes).

Happy hacking,
Florian Angeletti for the O= Caml team.

Installation Instructions
----------= --------------------

The base compil= er can be installed as an opam switch with the following commands
on opa= m 2.1:

    opam update
    opam swi= tch create 5.2.0~beta1

The source code for the alpha is also available at these addresses:
* GitHub: https://github.com/ocaml/ocaml/archive/5.2.0-beta1.tar.gz
* = OCaml archives at Inria: https://caml.inria.fr/pub/distrib/ocaml-5.2/ocaml-= 5.2.0~beta1.tar.gz

Fine-Tuned Compiler Configuration
-----= ------------------------------------------

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

    opam update
    opam switch = create <switch_name> ocaml-variants.5.2.0~beta1+options <option_li= st>


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


    opam switch create 5.2.0~beta1+flambd= a+nffa ocaml-variants.5.2.0~beta1+options ocaml-option-flambda ocaml-option= -no-flat-float-array


All available options can be listed with `o= pam search ocaml-option`.


Changes since the first alpha
---------------------------------------

## Runtime System Fixes

- [#12875](https://github.com/ocaml/oc= aml/issues/12875), [#12879](https://github.com/ocaml/ocaml/issues/12879), [= #12882](https://github.com/ocaml/ocaml/issues/12882): Execute preemptive sy= sthread switching as a
  delayed pending action. This ensures that = one can reason within the
  FFI that no mutation happens on the sam= e domain when allocating on
  the OCaml heap from C, consistently w= ith OCaml 4. This also fixes
  further bugs with the multicore syst= hreads implementation.
  (Guillaume Munch-Maccagnoni, bug reports a= nd suggestion by Mark
   Shinwell, review by Nick Barnes and S= tephen Dolan)

- [#12876](https://github.com/ocaml/ocaml/issues/12876= ): Port ThreadSanitizer support to Linux on POWER
  (Miod Vallat, r= eview by Tim McGilchrist)

- [#12678](https://github.com/ocaml/ocaml/= issues/12678), [#12898](https://github.com/ocaml/ocaml/issues/12898): free = channel buffers on close rather than on finalization
  (Damien Doli= gez, review by Jan Midtgaard and Gabriel Scherer, report
   by= Jan Midtgaard)

- [#12915](https://github.com/ocaml/ocaml/issues/129= 15): Port ThreadSanitizer support to Linux on s390x
  (Miod Vallat,= review by Tim McGilchrist)

- [#12914](https://github.com/ocaml/ocam= l/issues/12914): Slightly change the s390x assembly dialect in order to bui= ld with
  Clang's integrated assembler.
  (Miod Vallat, rev= iew by Gabriel Scherer)

- [#12897](https://github.com/ocaml/ocaml/is= sues/12897): fix locking bugs in Runtime_events
  (Gabriel Scherer = and Thomas Leonard,
   review by Olivier Nicole, Vincent Lavir= on and Damien Doligez,
   report by Thomas Leonard)

- [= #12860](https://github.com/ocaml/ocaml/issues/12860): Fix an assertion that= wasn't taking into account the possibility of an
  ephemeron point= ing at static data.
  (Mark Shinwell, review by Gabriel Scherer and= KC Sivaramakrishnan)

- [#11040](https://github.com/ocaml/ocaml/issu= es/11040), [#12894](https://github.com/ocaml/ocaml/issues/12894): Silence f= alse data race observed between caml_shared_try_alloc
  and oldify.= Introduces macros to call tsan annotations which help annotate
  a= ``happens before'' relationship.
  (Hari Hara Naveen S and Olivier= Nicole,
   review by Gabriel Scherer and Miod Vallat)

= - [#12919](https://github.com/ocaml/ocaml/issues/12919): Fix register corru= ption in caml_callback2_asm on s390x.
  (Miod Vallat, review by Gab= riel Scherer)

- [#12969](https://github.com/ocaml/ocaml/issues/12969= ): Fix a data race in caml_darken_cont
  (Fabrice Buoro and Olivier= Nicole, review by Gabriel Scherer and Miod Vallat)

## Standard Libr= ary Fix

- [#12677](https://github.com/ocaml/ocaml/issues/12677), [#1= 2889](https://github.com/ocaml/ocaml/issues/12889): make Domain.DLS thread-= safe
  (Gabriel Scherer, review by Olivier Nicole and Damien Dolige= z,
   report by Vesa Karvonen)

## Type System Fix
- [#12924](https://github.com/ocaml/ocaml/issues/12924), [#12930](https:/= /github.com/ocaml/ocaml/issues/12930): Rework package constraint checking t= o improve interaction with
  immediacy
  (Chris Casinghino = and Florian Angeletti, review by Florian Angeletti and
   Rich= ard Eisenberg)

## Compiler User-Interface Fix

- [#12971](http= s://github.com/ocaml/ocaml/issues/12971), [#12974](https://github.com/ocaml= /ocaml/issues/12974): fix an uncaught Ctype.Escape exception on some
&nb= sp; invalid programs forming recursive types.
  (Gabriel Scherer, r= eview by Florian Angeletti, report by Neven Villani)

## Build System= Fixes

+ [#12198](https://github.com/ocaml/ocaml/issues/12198), [#12= 321](https://github.com/ocaml/ocaml/issues/12321), [#12586](https://github.= com/ocaml/ocaml/issues/12586), [#12616](https://github.com/ocaml/ocaml/issu= es/12616), [#12706](https://github.com/ocaml/ocaml/issues/12706), +[#13048]= (https://github.com/ocaml/ocaml/issues/13048): continue the merge of the   sub-makefiles into the root Makefile started with [#11243](ht= tps://github.com/ocaml/ocaml/issues/11243), [#11248](https://github.com/oca= ml/ocaml/issues/11248),
   [#11268](https://github.com/ocaml/o= caml/issues/11268), [#11420](https://github.com/ocaml/ocaml/issues/11420) a= nd [#11675](https://github.com/ocaml/ocaml/issues/11675).
   (= S=E9bastien Hinderer, review by David Allsopp and Florian Angeletti)
+ [#12768](https://github.com/ocaml/ocaml/issues/12768), +[#13030](https:/= /github.com/ocaml/ocaml/issues/13030): Detect mingw-w64 coupling with GCC o= r LLVM, detect clang-cl,
   and fix C compiler feature detecti= on on macOS.
   (Antonin D=E9cimo, review by Miod Vallat and S= =E9bastien Hinderer)

- [#13019](https://github.com/ocaml/ocaml/issue= s/13019): Remove linking instructions for the Unix library from threads.cma=
  (this was done for threads.cmxa in OCaml 3.11). Eliminates warni= ngs from
  new lld when using threads.cma of duplicated libraries.<= br>  (David Allsopp, review by Nicol=E1s Ojeda B=E4r)

+ [#12758= ](https://github.com/ocaml/ocaml/issues/12758), +[#12998](https://github.co= m/ocaml/ocaml/issues/12998): Remove the `Marshal.Compression` flag to the   `Marshal.to_*` functions.  The compilers are still able= to use
   ZSTD compression for compilation artefacts.
&nbs= p;  This is a forward port and clean-up of the emergency fix that was = introduced

## Compiler Internals Fix

+ [#12389](https://githu= b.com/ocaml/ocaml/issues/12389), [#12544](https://github.com/ocaml/ocaml/is= sues/12544), [#12984](https://github.com/ocaml/ocaml/issues/12984), +[#1298= 7](https://github.com/ocaml/ocaml/issues/12987): centralize the handling of= metadata for
  compilation units and artifacts in preparation for = better unicode support for
  OCaml source files.
  (Florian= Angeletti, review by Vincent Laviron and Gabriel Scherer)
--=_981b7606-d8bf-404f-b7ab-904a520df8a0--