Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Florian Angeletti <florian.angeletti@inria.fr>
To: caml-list <caml-list@inria.fr>
Subject: [Caml-list] First beta release of OCaml 5.2.0
Date: Mon, 25 Mar 2024 16:15:48 +0100 (CET)	[thread overview]
Message-ID: <521387019.8365666.1711379748150.JavaMail.zimbra@inria.fr> (raw)
In-Reply-To: <1337469696.7444873.1707300411976.JavaMail.zimbra@inria.fr>

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

Dear OCaml users, 

Nearly two months after the first alpha release, the release 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 libraries ahead of the release (see below for the installation instructions). 

Compared to the alpha release, this beta contains a majority of runtime system fixes, and a handful of other fixes across various subsystems. 

Overall, the opam ecosystem looks in a good shape for the first beta release. 
Most core development tools support OCaml 5.2.0 or have compatibility patches under review (for `odoc` and `ocamlformat`), and you can follow the last remaining wrinkles on the 
opam readiness for 5.2.0 meta-issue (https://github.com/ocaml/opam-repository/issues/25182). 

If you find any bugs, please report them on OCaml's issue tracker (https://github.com/ocaml/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/blob/5.2/Changes). 

Happy hacking, 
Florian Angeletti for the OCaml team. 

Installation Instructions 
------------------------------ 

The base compiler can be installed as an opam switch with the following commands 
on opam 2.1: 

opam update 
opam switch 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_list> 

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

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

All available options can be listed with `opam search ocaml-option`. 

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

## Runtime System Fixes 

- [#12875](https://github.com/ocaml/ocaml/issues/12875), [#12879](https://github.com/ocaml/ocaml/issues/12879), [#12882](https://github.com/ocaml/ocaml/issues/12882): Execute preemptive systhread switching as a 
delayed pending action. This ensures that one can reason within the 
FFI that no mutation happens on the same domain when allocating on 
the OCaml heap from C, consistently with OCaml 4. This also fixes 
further bugs with the multicore systhreads implementation. 
(Guillaume Munch-Maccagnoni, bug reports and suggestion by Mark 
Shinwell, review by Nick Barnes and Stephen Dolan) 

- [#12876](https://github.com/ocaml/ocaml/issues/12876): Port ThreadSanitizer support to Linux on POWER 
(Miod Vallat, review 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 Doligez, review by Jan Midtgaard and Gabriel Scherer, report 
by Jan Midtgaard) 

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

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

- [#12897](https://github.com/ocaml/ocaml/issues/12897): fix locking bugs in Runtime_events 
(Gabriel Scherer and Thomas Leonard, 
review by Olivier Nicole, Vincent Laviron 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 pointing at static data. 
(Mark Shinwell, review by Gabriel Scherer and KC Sivaramakrishnan) 

- [#11040](https://github.com/ocaml/ocaml/issues/11040), [#12894](https://github.com/ocaml/ocaml/issues/12894): Silence false 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 corruption in caml_callback2_asm on s390x. 
(Miod Vallat, review by Gabriel 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 Library Fix 

- [#12677](https://github.com/ocaml/ocaml/issues/12677), [#12889](https://github.com/ocaml/ocaml/issues/12889): make Domain.DLS thread-safe 
(Gabriel Scherer, review by Olivier Nicole and Damien Doligez, 
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 to improve interaction with 
immediacy 
(Chris Casinghino and Florian Angeletti, review by Florian Angeletti and 
Richard Eisenberg) 

## Compiler User-Interface Fix 

- [#12971](https://github.com/ocaml/ocaml/issues/12971), [#12974](https://github.com/ocaml/ocaml/issues/12974): fix an uncaught Ctype.Escape exception on some 
invalid programs forming recursive types. 
(Gabriel Scherer, review by Florian Angeletti, report by Neven Villani) 

## Build System Fixes 

+ [#12198](https://github.com/ocaml/ocaml/issues/12198), [#12321](https://github.com/ocaml/ocaml/issues/12321), [#12586](https://github.com/ocaml/ocaml/issues/12586), [#12616](https://github.com/ocaml/ocaml/issues/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](https://github.com/ocaml/ocaml/issues/11243), [#11248](https://github.com/ocaml/ocaml/issues/11248), 
[#11268](https://github.com/ocaml/ocaml/issues/11268), [#11420](https://github.com/ocaml/ocaml/issues/11420) and [#11675](https://github.com/ocaml/ocaml/issues/11675). 
(Sébastien 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 or LLVM, detect clang-cl, 
and fix C compiler feature detection on macOS. 
(Antonin Décimo, review by Miod Vallat and Sébastien Hinderer) 

- [#13019](https://github.com/ocaml/ocaml/issues/13019): Remove linking instructions for the Unix library from threads.cma 
(this was done for threads.cmxa in OCaml 3.11). Eliminates warnings from 
new lld when using threads.cma of duplicated libraries. 
(David Allsopp, review by Nicolás Ojeda Bär) 

+ [#12758](https://github.com/ocaml/ocaml/issues/12758), +[#12998](https://github.com/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. 
This is a forward port and clean-up of the emergency fix that was introduced 

## Compiler Internals Fix 

+ [#12389](https://github.com/ocaml/ocaml/issues/12389), [#12544](https://github.com/ocaml/ocaml/issues/12544), [#12984](https://github.com/ocaml/ocaml/issues/12984), +[#12987](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) 

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

  reply	other threads:[~2024-03-25 15:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-07 10:06 [Caml-list] First alpha " Florian Angeletti
2024-03-25 15:15 ` Florian Angeletti [this message]
2024-04-16 12:26   ` [Caml-list] Second beta " Florian Angeletti
2024-05-03 15:28     ` [Caml-list] First release candidate " Florian Angeletti

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=521387019.8365666.1711379748150.JavaMail.zimbra@inria.fr \
    --to=florian.angeletti@inria.fr \
    --cc=caml-list@inria.fr \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox