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 ESMTP id BAD355D6 for ; Thu, 7 Oct 2021 09:48:30 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.84,326,1620684000"; d="scan'208,217";a="532582650" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 07 Oct 2021 11:48:26 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 74727E00CA; Thu, 7 Oct 2021 11:48:26 +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 C9B9DE00C9 for ; Thu, 7 Oct 2021 11:48:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=date:from:to:message-id:subject:mime-version; bh=fjo4A6CkoiWJ2lRDnCZ4d4zqyV0R9xvayHWilocqBeU=; b=u9g8QfoN5gEMbv4FlCdK+VLGRv2ZvbvFASHZNskDkTwvCqCAIHBWD1E9 eSDyRtEAqJC/ymHUiBpWnAw4nYaI/9fqPuT65QREOSGrf5FL/NvJ8MSzD 3dC9XMKrApo+Szq5beFwUfF9kE4tGI4K2KU4DXjnRCzpcWNxtLVXgPNCp E=; IronPort-HdrOrdr: =?us-ascii?q?A9a23=3AUpyBvqmky/AjLiXvAQ2D4DwO8+vpDfL13DAb?= =?us-ascii?q?v31ZSRFFG/Fw9vre/sjzuiWZtN98Yh4dcLO7Scq9qBHnlKKdiLN5VdzJMTUO01?= =?us-ascii?q?HJEGgN1+Xf6gylJBbVstd68IdLQ+xFNfXMMWISt7ec3CCIV+ka6p28yYiNwd3i?= =?us-ascii?q?50pAJDsaD51I3kNHMSzeKHRfYE19OLIFKKD03Lsjmwad?= X-IronPort-AV: E=Sophos;i="5.84,326,1620684000"; d="scan'208,217";a="532582602" X-MGA-submission: =?us-ascii?q?MDHtQ5nIYMFKx4AkXt6Q4aCEsTRg+2DedLc0ls?= =?us-ascii?q?pBMwIsBQcLP3iVPuee/rMkYjFlZTxy4+vb4iVA96sZXUW4Ik3v75fBOf?= =?us-ascii?q?Nt91LUFtQyt3a0jKFsSggimnulwxf9GdAMcYa+lZdUJM6vq1VZ+R0SN6?= =?us-ascii?q?LNr20qtZgxv+0az1qT2WZrmQ=3D=3D?= Received: from zcs-store1.inria.fr ([128.93.142.28]) by mail2-relais-roc.national.inria.fr with ESMTP; 07 Oct 2021 11:48:23 +0200 Date: Thu, 7 Oct 2021 11:48:23 +0200 (CEST) From: Florian Angeletti To: caml-list Message-ID: <1219673154.28999293.1633600103529.JavaMail.zimbra@inria.fr> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=_d23382d1-eca0-4b03-a8ac-4ab83a390bf8" X-Originating-IP: [128.93.64.106] X-Mailer: Zimbra 8.8.15_GA_4125 (ZimbraWebClient - FF92 (Linux)/8.8.15_GA_4059) Thread-Index: jlnKmr8NqQfzsknBjneZkDILV6oQJw== Thread-Topic: The road to OCaml 5.0 Subject: [Caml-list] The road to OCaml 5.0 Reply-To: Florian Angeletti X-Loop: caml-list@inria.fr X-Sequence: 18584 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: --=_d23382d1-eca0-4b03-a8ac-4ab83a390bf8 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit With the convergence between the multicore and standard runtime across OCaml 4.10.0 to 4.13.0, the development of OCaml multicore has reached a point where further integration into OCaml's main branch requires fully committing to a switch to OCaml multicore. The OCaml team has decided that the time has come for such a commitment. The new major version, OCaml 5, will be a multicore version of OCaml. Moreover, OCaml 4.14 will be the last minor release of the 4.x series of OCaml. Multicore Minimum Viable Product (MVP) ------------------------------------------------------ The first version of OCaml multicore, code-named OCaml 5.0, will be a Minimum Viable Product focused on: - x86-64 - Linux, MacOS, Windows mingw-w64 - Parallelism through Domains [1] - Concurrency through Effect Handlers [2] (without syntactic support and exposed as functions from the standard library) Our plan is to integrate the multicore branch into the main branch during the next 6 months. Hopefully, OCaml 5.0 will then be released between March and April 2022. Note that OCaml 5.0 focuses on minimal (solid) support for the multicore runtime system, and will not provide stable user-facing concurrency and parallelism libraries. There has been a lot of experimentation [3,4] in the last few years, and some work remains to offer long-term, user-facing concurrent and parallel programming abstractions. OCaml 5.0 will be a great time to start adding concurrency and parallelism to your OCaml programs, but the libraries will still be in flux. Long term support for OCaml 4.14 ---------------------------------------------- While OCaml 5 is stabilising, we plan to extend the support period for OCaml 4.14 by publishing minor bugfix releases whenever needed. In particular, OCaml 4.14 will be supported until all tier-1 architectures and operating systems are available in OCaml 5, and OCaml 5 sequential performance is close enough to that of OCaml 4. The sequential glaciation --------------------------------- To ensure that maintainers can concentrate on Multicore integration, and avoid any rebase work for the Multicore developers, the trunk branch will be feature-frozen starting from November 2021. All non-bugfix non-multicore contributions will be delayed to after the Multicore integration. We are calling this period the "sequential glaciation". We understand that this may be frustrating for our contributors, and apologize for the delay in getting your nice work reviewed and merged into the codebase. We hope that the sequential glaciation will be a good opportunity to help with the Multicore integration, review and testing, and/or focus on non-core-compiler efforts and the rest of the OCaml ecosystem. With this early feature-freeze, we also plan to release OCaml 4.14.0 in advance, between January-February 2022, reducing the concurrency between the OCaml 5.0 and OCaml 4.14.0 releases. References --------------- [1] "Retrofitting Parallelism onto OCaml", ICFP 2020, https://arxiv.org/abs/2004.11663 [2] "Retrofitting Concurrency onto OCaml", PLDI 2021, https://arxiv.org/abs/2104.00250 [3] Domainslib -- Parallel Programming over Multicore OCaml, https://github.com/ocaml-multicore/domainslib [4] eio -- Effects-based Parallel IO for OCaml, https://github.com/ocaml-multicore/eio Happy hacking, Florian Angeletti, for the OCaml team. --=_d23382d1-eca0-4b03-a8ac-4ab83a390bf8 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
With the convergence between the multicore = and standard runtime across
OCaml 4.10.0 to 4.13.0, the development of O= Caml multicore has reached a point
where further integration into OCaml'= s main branch requires fully committing to
a switch to OCaml multicore.<= br>
The OCaml team has decided that the time has come for such a commitm= ent.
The new major version, OCaml 5, will be a multicore version of OCam= l.
Moreover, OCaml 4.14 will be the last minor release of the 4.x series= of OCaml.


Multicore = Minimum Viable Product (MVP)
-------------------------------------------= -----------

The first version of OCaml multicore, code-named OCaml 5= .0, will be
a Minimum Viable Product focused on:

- x86-64
- Li= nux, MacOS, Windows mingw-w64
- Parallelism through Domains [1]
- Con= currency through Effect Handlers [2] (without syntactic support and exposed= as functions from the standard library)

Our plan is to integrate th= e multicore branch into the main branch during the
next 6 months. Hopefu= lly, OCaml 5.0 will then be released between March and
April 2022.
Note that OCaml 5.0 focuses on minimal (solid) support for the multicore<= br>runtime system, and will not provide stable user-facing concurrency and<= br>parallelism libraries. There has been a lot of experimentation [3,4] in = the last
few years, and some work remains to offer long-term, user-facin= g concurrent and
parallel programming abstractions. OCaml 5.0 will be a = great time to start
adding concurrency and parallelism to your OCaml pro= grams, but the libraries
will still be in flux.


Long term sup= port for OCaml 4.14
----------------------------------------------
While OCaml 5 is stabilising, we plan to extend the support period forOCaml 4.14 by publishing minor bugfix releases whenever needed. In particu= lar,
OCaml 4.14 will be supported until all tier-1 architectures and ope= rating systems
are available in OCaml 5, and OCaml 5 sequential performa= nce is close enough to
that of OCaml 4.


The sequential= glaciation
---------------------------------

To ensure that main= tainers can concentrate on Multicore integration, and avoid
any rebase w= ork for the Multicore developers, the trunk branch will be
feature-froze= n starting from November 2021. All non-bugfix non-multicore
contribution= s will be delayed to after the Multicore integration.
We are calling thi= s period the "sequential glaciation".

We understand that this may be= frustrating for our contributors, and apologize
for the delay in gettin= g your nice work reviewed and merged into the codebase.
We hope that the= sequential glaciation will be a good opportunity to help with
the Multi= core integration, review and testing, and/or focus on non-core-compiler
= efforts and the rest of the OCaml ecosystem.

With this early feature= -freeze, we also plan to release OCaml 4.14.0 in advance,
between Januar= y-February 2022, reducing the concurrency between the OCaml 5.0
and OCam= l 4.14.0 releases.


Re= ferences
---------------
[1] "Retrofitting Parallelism onto OCaml", I= CFP 2020, https://arxiv.org/abs/2004.11663
[2] "Retrofitting Concurrency= onto OCaml", PLDI 2021, https://arxiv.org/abs/2104.00250
[3] Domainslib= -- Parallel Programming over Multicore OCaml, https://github.com/ocaml-mul= ticore/domainslib
[4] eio -- Effects-based Parallel IO for OCaml, https:= //github.com/ocaml-multicore/eio


Happy hacking,
Florian Angeletti, for the OCaml team.
--=_d23382d1-eca0-4b03-a8ac-4ab83a390bf8--