caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Florian Angeletti <florian.angeletti@inria.fr>
To: caml-list <caml-list@inria.fr>
Subject: [Caml-list] The road to OCaml 5.0
Date: Thu, 7 Oct 2021 11:48:23 +0200 (CEST)	[thread overview]
Message-ID: <1219673154.28999293.1633600103529.JavaMail.zimbra@inria.fr> (raw)

[-- Attachment #1: Type: text/plain, Size: 3413 bytes --]

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. 


[-- Attachment #2: Type: text/html, Size: 3863 bytes --]

             reply	other threads:[~2021-10-07  9:48 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-07  9:48 Florian Angeletti [this message]
2021-10-08  1:42 ` Francois Berenger
2021-10-08 20:34 ` Christophe Raffalli
2021-10-09  0:07   ` [Caml-list] Sequential speed 4.12.0 vs 4.13.1 vs multicore (Was: The road to OCaml 5.0) Christophe Raffalli
2021-10-09  0:58     ` Michael Bacarella
2021-10-09  1:11       ` Michael Bacarella
2021-10-09  1:20         ` Michael Bacarella
2021-10-09  2:10       ` Christophe Raffalli
2021-10-09 17:20         ` Xavier Leroy
2021-10-10  3:37           ` Christophe Raffalli
2021-10-09 17:14     ` ygrek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1219673154.28999293.1633600103529.JavaMail.zimbra@inria.fr \
    --to=florian.angeletti@inria.fr \
    --cc=caml-list@inria.fr \
    --subject='Re: [Caml-list] The road to OCaml 5.0' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).