It's been a while since the core OCaml packages in Guix have seen
significant updates, so I'd like to discuss moving the dev stack from
OCaml 4.14 to the latest release, 5.3.

For those who haven't been following the progress of OCaml lately, the 5.x series contains some ambitious changes. Historically OCaml has had solid support for concurrency, but not parallelism; then version 5.0 introduced a new runtime supporting multiple CPU cores [1]. Versions 5.0 thru 5.2 were regarded by the maintainers as experimental [2], but after two years of evolution, the 5.3 release finally lost the "experimental" label and restored full feature parity with the 4.x series [3]. There is ongoing work to reduce the memory footprint for some workloads [4], but
overall version 5.3 seems robust enough for general use.

Meanwhile, the OCaml package ecosystem has started to move away from supporting the 4.x series. In particular, recent versions of Jane Street
packages don't support 4.x at all, and lots of packages from other
sources depend on Jane Street code directly or indirectly.

So, with the release of 5.3 and these shifts in the package ecosystem, I think the benefits of upgrading now outweigh the risks. For the last few weeks I've been testing a branch of Guix with updates for OCaml 5.3, and
I'd like to contribute these changes to upstream.

The patches touch about half of the ~340 packages in ocaml.scm, and a small handful scattered elsewhere. Considering the existing project goals for this fall, how do folks feel about including these changes in
the next release?

Jason

[1] https://discuss.ocaml.org/t/ocaml-5-0-0-is-out/10974

[2] github.com/ocaml/ocaml/releases

[3] https://discuss.ocaml.org/t/ann-v0-17-release-of-jane-street-packages/14717/5

[4] https://discuss.ocaml.org/t/ocaml-5-x-memory-usage/16981/5

Reply via email to