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 CEE872E03 for ; Fri, 22 Jul 2022 08:33:48 +0000 (UTC) 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=qUJdai7V/ESecQuXce6QJkth8RL0q41aOfHN9dXNIxU=; b=WmR7rzk4gWBAamyA53FXCkTCsHiiUYgeNCrw8qNpF+jkHJo6QREceLeO BT1tr/eYpvPB2FM8RNVj4VT2HJf1ccveIF9DtwhGQHU1Xjyj9O43zSw7s UrzsPT7d044uMdKtbLszL0iaM4IdcRGUc/gIjV8NY8eF3erHuhdyttTLK 4=; Received-SPF: SoftFail (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr is inclined to not designate 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 ip4:192.134.164.0/24 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=SoftFail 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="5.93,185,1654552800"; d="scan'208,217";a="46539203" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 22 Jul 2022 10:33:47 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 91D85E0260; Fri, 22 Jul 2022 10:33:47 +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 CE89BE0260 for ; Fri, 22 Jul 2022 10:33:39 +0200 (CEST) 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=qUJdai7V/ESecQuXce6QJkth8RL0q41aOfHN9dXNIxU=; b=exKhBiBugafAUHkKNEnIKYZzMYSsP3bq6x4Ez4HlUpyC3uxF5CXgnKrk yGyl+YtQc8oU3i3LIHX6IMkVJAa+kFwtzopHnxCXUK3h1Mkyut91uCcwu Nhc8Hc8Dyu3uVAXL/+1ulkN+EP/NksmV7HiJavmZu1qJNJR7FEVJHkKTQ A=; X-IronPort-AV: E=Sophos;i="5.93,185,1654552800"; d="scan'208,217";a="46539169" X-MGA-submission: =?us-ascii?q?MDEtrond/PxMOFVdTE35hF+5TxZjFubtaAUCfx?= =?us-ascii?q?zIS6ZXVUuAWW4TZfk13faGhwY/QvLxcdH9AYPW5PKGpBu3LzC29ZLCSw?= =?us-ascii?q?dbHdo5qnxx93U+ymnTdzw++Zwo6RV1hKYxyQF65nx5fV3pgmL5tbTHLo?= =?us-ascii?q?PISCHwfOYGIJdfQZ4NF85F3A=3D=3D?= Received: from zcs-store1.inria.fr ([128.93.142.28]) by mail2-relais-roc.national.inria.fr with ESMTP; 22 Jul 2022 10:33:39 +0200 Date: Fri, 22 Jul 2022 10:33:39 +0200 (CEST) From: Florian Angeletti To: caml-list Message-ID: <843517126.11810115.1658478819717.JavaMail.zimbra@inria.fr> In-Reply-To: <1886863657.25388002.1655281359972.JavaMail.zimbra@inria.fr> References: <1886863657.25388002.1655281359972.JavaMail.zimbra@inria.fr> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=_c782c2d7-9809-426d-9ba0-afdf8cbe09fb" X-Originating-IP: [128.93.64.106] X-Mailer: Zimbra 8.8.15_GA_4308 (ZimbraWebClient - FF101 (Linux)/8.8.15_GA_4303) Thread-Topic: OCaml 5.0, first normal alpha release Thread-Index: jLKrfdjaqK0BbDOgGVygpcmMW7ADzP3dtOyU Subject: [Caml-list] OCaml 5.0, first normal alpha release Reply-To: Florian Angeletti X-Loop: caml-list@inria.fr X-Sequence: 18825 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: --=_c782c2d7-9809-426d-9ba0-afdf8cbe09fb Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Dear OCaml users,=20 The stabilisation of OCaml 5.0 has been progressing well during the last mo= nth.=20 We have thus released a first normal alpha release of OCaml 5.0.0 to help= =20 fellow hackers join us early in our bug hunting and opam ecosystem fixing f= un=20 (see below for the installation instructions).=20 You can follow the progress in stabilising the opam ecosystem on=20 https://github.com/ocaml/opam-repository/issues/21526=20 If you find any bugs, please report them here:=20 https://github.com/ocaml/ocaml/issues=20 Compared to the zeroth alpha release, this alpha release restores the suppo= rt=20 for the bytecode debugger, and integrates a change of type in the FFI API t= hat=20 might trigger some warnings in FFI code.=20 We also have a change in the installed files: the compiler distributes now = its=20 own META files rather than relying on either findlib or dune to provide tho= se=20 files. This should simplify the tasks of both tools in future version.=20 Note there are still some changes expected in the Effect module before the = next=20 candidate release. Generally, both the Effect and Domain modules are still= =20 experimental and might change API even during the beta releases.=20 If you are interested by the ongoing list of bug fixes, the updated change = log=20 for OCaml 5.0.0 is available at:=20 https://github.com/ocaml/ocaml/blob/5.0/Changes=20 A short summary of the changes since the zeroth alpha release is also avail= able=20 below.=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.0.0~alpha1=20 For previous version of opam, the switch creation command line is slightly = more verbose:=20 opam update=20 opam switch create 5.0.0~alpha1 --repositories=3Ddefault,beta=3Dgit+https:/= /github.com/ocaml/ocaml-beta-repository.git=20 If you want to test this version, it is strongly advised to install the alp= ha=20 opam repository=20 https://github.com/kit-ty-kate/opam-alpha-repository=20 with=20 opam repo add alpha git+https://github.com/kit-ty-kate/opam-alpha-repositor= y.git=20 You can check that the alpha repository has been correctly installed with= =20 $ opam repo=20 <><> Repository configuration for switch 5.0.0~alpha1 <><><><><><><><><><><= ><><>=20 1 alpha git+https://github.com/kit-ty-kate/opam-alpha-repository.git=20 2 default https://opam.ocaml.org=20 This alpha repository contains various fixes in the process of being upstre= amed which=20 vastly increases the number of opam packages currently compatible with OCam= l 5.0.0 .=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.0.0~alpha1+options =20 where is a comma separated list of ocaml-option-* packages. F= or instance, for a flambda and no-flat-float-array switch:=20 opam switch create 5.0.0~alpha1+flambda+nffa ocaml-variants.5.0.0~alpha1+op= tions ocaml-option-flambda ocaml-option-no-flat-float-array=20 The command line above is slightly more complicated for opam version anteri= or to 2.1:=20 opam update=20 opam switch create --packages=3Docaml-variants.5.0.0~alpha1+o= ptions, --repositories=3Ddefault,beta=3Dgit+https://github.com= /ocaml/ocaml-beta-repository.git=20 In both cases, all available options can be listed with "opam search ocaml-= option".=20 The source code for the alpha is also available at these addresses:=20 https://github.com/ocaml/ocaml/archive/5.0.0-alpha1.tar.gz=20 https://caml.inria.fr/pub/distrib/ocaml-5.0/ocaml-5.0.0~alpha1.tar.gz=20 Changes since the zeroth alpha release:=20 -----------------------------------------------------=20 ### Runtime system:=20 - #11400: Runtime events counters fixes=20 Fixes mismatch between OCaml and C APIs, removes events from 4.x that=20 are not present in the 5.0 GC and adds some missing probes.=20 (Sadiq Jaffer, review by Gabriel Scherer, Florian Angeletti)=20 - #11368: Runtime events buffer size OCAMLRUNPARAMS fix=20 The runtime events buffer size can now be set via the 'e' OCAMLRUNPARAM.=20 This is previously mistakenly enabled/disabled tracing instead.=20 (Sadiq Jaffer, review by KC Sivaramakrishnan, David Allsopp, Damien Doligez= )=20 - #11304: Fix data race on Windows file descriptors=20 (Olivier Nicole and Xavier Leroy, review by Xavier Leroy, David Allsopp,=20 and Sadiq Jaffer)=20 * #11337: pass 'flags' metadata to root scanners, to optimize stack=20 scanning in the bytecode interpreter.=20 Changes the interface of user-provided root-scanning hooks.=20 (Gabriel Scherer, review by Xavier Leroy,=20 Guillaume Munch-Maccagnoni, Sadiq Jaffer and Tom Kelly)=20 - #11144: Restore frame-pointers support for amd64=20 (Fabrice Buoro, review by Frederic Bour and KC Sivaramakrishnan)=20 * #11255: in the C interface, `&Field(v, i)` now has type `volatile value *= `=20 instead of `value *` in OCaml 4. This makes the memory model=20 for mixed OCaml/C code better defined, but can cause warnings or type=20 errors in user C code.=20 (KC Sivaramakrishnan, review by Xavier Leroy, Gabriel Scherer and=20 Guillaume Munch-Maccagnoni, additional discussions with Stephen=20 Dolan and Luc Maranget)=20 ### Standard library:=20 + #10867, +#11345: Remove deprecated values:=20 =E2=80=A6, the infix operator (.[]<-).=20 (Nicol=C3=A1s Ojeda B=C3=A4r, review by Damien Doligez)=20 - #11309, #11424, #11427: Add Domain.recommended_domain_count.=20 (Christiano Haesbaert, Konstantin Belousov, review by David Allsopp,=20 KC Sivaramakrishnan, Gabriel Scherer, Nicolas Ojeda Bar)=20 ### Tools:=20 - #11065: Port the bytecode debugger to 5.0, adding support for effect hand= lers.=20 (Damien Doligez and @fabbing, review by @fabbing and Xavier Leroy)=20 - #11382: OCamlmktop use a new initialization module "OCamlmktop_init" to= =20 preserve backward-compatibility with user-module provided modules that inst= all=20 toplevel printers.=20 (Florian Angeletti, review by Gabriel Scherer and David Allsopp)=20 ### Installation:=20 - #11007, #11399: META files for the stdlib, compiler-libs and other librar= ies=20 (unix, dynlink, str, runtime_events, threads, ocamldoc) are now installed= =20 along with the compiler.=20 (David Allsopp, Florian Angeletti, Nicol=C3=A1s Ojeda B=C3=A4r and S=C3=A9b= astien Hinderer,=20 review by Daniel B=C3=BCnzli, Kate Deplaix, Anil Madhavapeddy and Gabriel S= cherer)=20 ### Bug fixes:=20 - #10768, #11340: Fix typechecking regression when combining first class=20 modules and GADTs.=20 (Jacques Garrigue, report by Fran=C3=A7ois Thir=C3=A9, review by Matthew Ry= an)=20 - #10790: don't drop variance and injectivity annotations when pretty print= ing=20 `with` constraints (for example, `with type +!'a t =3D ...`).=20 (Florian Angeletti, report by Luke Maurer, review by Matthew Ryan and=20 Gabriel Scherer)=20 - #11289, #11405: fix some leaks on systhread termination=20 (Fabrice Buoro, Enguerrand Decorne, Gabriel Scherer,=20 review by Xavier Leroy and Florian Angeletti, report by Romain Beauxis)=20 - #11314, #11416: fix non-informative error message for module inclusion=20 (Florian Angeletti, report by Thierry Martinez, review by Gabriel Scherer)= =20 - #11358, #11379: Refactor the initialization of bytecode threading,=20 This avoids a "dangling pointer" warning of GCC 12.1.=20 (Xavier Leroy, report by Arma=C3=ABl Gu=C3=A9neau, review by Gabriel Schere= r)=20 - #11387, module type with constraints no longer crash the compiler in pres= ence=20 of both shadowing warnings and the `-bin-annot` compiler flag.=20 (Florian Angeletti, report by Christophe Raffalli, review by Gabriel Schere= r)=20 --=_c782c2d7-9809-426d-9ba0-afdf8cbe09fb Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Dear OCaml users,

The stabilisa= tion of OCaml 5.0 has been progressing well during the last month.
We ha= ve thus released a first normal alpha release of OCaml 5.0.0 to help
fel= low hackers join us early in our bug hunting and opam ecosystem fixing fun<= br>(see below for the installation instructions).

You can follow the= progress in stabilising the opam ecosystem on

  https://github= .com/ocaml/opam-repository/issues/21526

If you find any bugs, please= report them here:

  https://github.com/ocaml/ocaml/issues
<= br>Compared to the zeroth alpha release, this alpha release restores the su= pport
for the bytecode debugger, and integrates a change of type in the = FFI API that
might trigger some warnings in FFI code.

We also hav= e a change in the installed files: the compiler distributes now its
own = META files rather than relying on either findlib or dune to provide thosefiles. This should simplify the tasks of both tools in future version.
Note there are still some changes expected in the Effect module before= the next
candidate release. Generally, both the Effect and Domain modul= es are still
experimental and might change API even during the beta rele= ases.

If you are interested by the ongoing list of bug fixes, the up= dated change log
for OCaml 5.0.0 is available at:

  h= ttps://github.com/ocaml/ocaml/blob/5.0/Changes

A short summary of th= e changes since the zeroth alpha release is also available
below.
Happy hacking,
Florian Angeletti for the OCaml team.

Installatio= n instructions
-------------------------
The base compiler can be ins= talled as an opam switch with the following commands
on opam 2.1:
opam update
opam switch create 5.0.0~alpha1

For previous version= of opam, the switch creation command line is slightly more verbose:
opam update
opam switch create 5.0.0~alpha1 --repositories=3Ddefault,be= ta=3Dgit+https://github.com/ocaml/ocaml-beta-repository.git

If you w= ant to test this version, it is strongly advised to install the alpha
op= am repository

https://github.com/kit-ty-kate/opam-alpha-repository
with

opam repo add alpha git+https://github.com/kit-ty-kate/op= am-alpha-repository.git

You can check that the alpha repository has = been correctly installed with

$ opam repo
<><> Reposi= tory configuration for switch 5.0.0~alpha1 <><><><>= <><><><><><><><><> 1 alpha   git+https://github.com/kit-ty-kate/opam-alpha-re= pository.git
 2 default https://opam.ocaml.org

This alpha re= pository contains various fixes in the process of being upstreamed which vastly increases the number of opam packages currently compatible with OC= aml 5.0.0 .

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

opam update
opam switc= h create <switch_name> ocaml-variants.5.0.0~alpha1+options <option= _list>

where <option_list> is a comma separated list of oca= ml-option-* packages. For instance, for a flambda and no-flat-float-array s= witch:

opam switch create 5.0.0~alpha1+flambda+nffa ocaml-variants.5= .0.0~alpha1+options ocaml-option-flambda ocaml-option-no-flat-float-array
The command line above is slightly more complicated for opam version = anterior to 2.1:

opam update
opam switch create <switch_name&g= t; --packages=3Docaml-variants.5.0.0~alpha1+options,<option_list> --r= epositories=3Ddefault,beta=3Dgit+https://github.com/ocaml/ocaml-beta-reposi= tory.git

In both cases, all available options can be listed with "op= am search ocaml-option".

The source code for the alpha is also avail= able at these addresses:

 https://github.com/ocaml/ocaml/archiv= e/5.0.0-alpha1.tar.gz
 https://caml.inria.fr/pub/distrib/ocaml-5.0/= ocaml-5.0.0~alpha1.tar.gz


Changes since the zeroth alpha release= :
-----------------------------------------------------

### Runti= me system:

- #11400: Runtime events counters fixes
  Fixes m= ismatch between OCaml and C APIs, removes events from 4.x that
  ar= e not present in the 5.0 GC and adds some missing probes.
  (Sadiq = Jaffer, review by Gabriel Scherer, Florian Angeletti)

- #11368: Runt= ime events buffer size OCAMLRUNPARAMS fix
  The runtime events buff= er size can now be set via the 'e' OCAMLRUNPARAM.
  This is previou= sly mistakenly enabled/disabled tracing instead.
  (Sadiq Jaffer, r= eview by KC Sivaramakrishnan, David Allsopp, Damien Doligez)

- #1130= 4: Fix data race on Windows file descriptors
  (Olivier Nicole and = Xavier Leroy, review by Xavier Leroy, David Allsopp,
   and Sa= diq Jaffer)

* #11337: pass 'flags' metadata to root scanners, to opt= imize stack
  scanning in the bytecode interpreter.
  Chang= es the interface of user-provided root-scanning hooks.
  (Gabriel S= cherer, review by Xavier Leroy,
   Guillaume Munch-Maccagnoni,= Sadiq Jaffer and Tom Kelly)

- #11144: Restore frame-pointers suppor= t for amd64
  (Fabrice Buoro, review by Frederic Bour and KC Sivara= makrishnan)

* #11255: in the C interface, `&Field(v, i)` now has= type `volatile value *`
  instead of `value *` in OCaml 4.  T= his makes the memory model
  for mixed OCaml/C code better defined,= but can cause warnings or type
  errors in user C code.
  = (KC Sivaramakrishnan, review by Xavier Leroy, Gabriel Scherer and
 = Guillaume Munch-Maccagnoni, additional discussions with Stephen
  = Dolan and Luc Maranget)

### Standard library:

+ #10867, +#113= 45: Remove deprecated values:
  =E2=80=A6, the infix operator (.[]&= lt;-).
  (Nicol=C3=A1s Ojeda B=C3=A4r, review by Damien Doligez)
- #11309, #11424, #11427: Add Domain.recommended_domain_count.
&nbs= p; (Christiano Haesbaert, Konstantin Belousov, review by David Allsopp,
=   KC Sivaramakrishnan, Gabriel Scherer, Nicolas Ojeda Bar)

### = Tools:

- #11065: Port the bytecode debugger to 5.0, adding support f= or effect handlers.
  (Damien Doligez and @fabbing, review by @fabb= ing and Xavier Leroy)

- #11382: OCamlmktop use a new initialization = module "OCamlmktop_init" to
  preserve backward-compatibility with = user-module provided modules that install
  toplevel printers.
&= nbsp; (Florian Angeletti, review by Gabriel Scherer and David Allsopp)
<= br>### Installation:

- #11007, #11399: META files for the stdlib, co= mpiler-libs and other libraries
  (unix, dynlink, str, runtime_even= ts, threads, ocamldoc) are now installed
  along with the compiler.=
  (David Allsopp, Florian Angeletti, Nicol=C3=A1s Ojeda B=C3=A4r a= nd S=C3=A9bastien Hinderer,
   review by Daniel B=C3=BCnzli, K= ate Deplaix, Anil Madhavapeddy and Gabriel Scherer)

### Bug fixes: 
- #10768, #11340: Fix typechecking regression when combining fi= rst class
  modules and GADTs.
  (Jacques Garrigue, report = by Fran=C3=A7ois Thir=C3=A9, review by Matthew Ryan)

- #10790: don't= drop variance and injectivity annotations when pretty printing
  `= with` constraints (for example, `with type +!'a t =3D ...`).
  (Flo= rian Angeletti, report by Luke Maurer, review by Matthew Ryan and
 =   Gabriel Scherer)

- #11289, #11405: fix some leaks on systhrea= d termination
  (Fabrice Buoro, Enguerrand Decorne, Gabriel Scherer= ,
   review by Xavier Leroy and Florian Angeletti, report by R= omain Beauxis)

- #11314, #11416: fix non-informative error message f= or module inclusion
  (Florian Angeletti, report by Thierry Martine= z, review by Gabriel Scherer)

- #11358, #11379: Refactor the initial= ization of bytecode threading,
  This avoids a "dangling pointer" w= arning of GCC 12.1.
  (Xavier Leroy, report by Arma=C3=ABl Gu=C3=A9= neau, review by Gabriel Scherer)

- #11387, module type with constrai= nts no longer crash the compiler in presence
  of both shadowing wa= rnings and the `-bin-annot` compiler flag.
  (Florian Angeletti, re= port by Christophe Raffalli, review by Gabriel Scherer)
--=_c782c2d7-9809-426d-9ba0-afdf8cbe09fb--