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] Second beta release of OCaml 5.4.0
Date: Thu, 11 Sep 2025 14:42:18 +0200 (CEST)	[thread overview]
Message-ID: <1718668268.6033977.1757594538619.JavaMail.zimbra@inria.fr> (raw)
In-Reply-To: <673781574.2852351.1753434551364.JavaMail.zimbra@inria.fr>

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

Dear OCaml users, 

After an extended summer break, the release of OCaml 5.4.0 is getting close. 

Since there have been a handful of meaningful bug fixes this summer, 
we are releasing a second beta version of OCaml 5.4.0 to help you update 
your software and libraries ahead of the release (see below for the 
installation instructions). More information about the whole release process is 
now available in the compiler repository: 

- https://github.com/ocaml/ocaml/blob/trunk/release-info/introduction.md). 

Compared to the first beta release, this beta release contains four notable 
bug fixes: 
- one type system bugfix for variance annotation on private types 
- one memory concurrency safety fix for weak pointers 
- two Windows fixes 

Those fixes are complemented by: 
- one runtime performance fix 
- three tools and compiler-libs related fixes 
- one error message fix. 

The full list of fixes for this second beta is available below. 

Overall, this beta release is already quite stable. 
If the tests for this beta release go well, we are expecting to have a first release 
candidate in the week of the 22 September, and the full release in the beginning 
of October. 

If you find any bugs, please report them on OCaml's issue tracker: 

-https://github.com/ocaml/ocaml/issues 

The last progresses on stabilising the ecosystem are still tracked on the 
opam readiness for 5.4.0 meta-issue: 

- https://github.com/ocaml/opam-repository/issues/27916 

If you are interested in full list of features and bug fixes of the new OCaml 
version, the updated change log for OCaml 5.4.0 is available on GitHub: 

https://github.com/ocaml/ocaml/blob/5.4/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 and later: 

opam update 
opam switch create 5.4.0~beta2 

The source code for the beta is also available at these addresses: 

* GitHub; https://github.com/ocaml/ocaml/archive/5.4.0-beta2.tar.gz 
* OCaml archives at Inria: https://caml.inria.fr/pub/distrib/ocaml-5.4/ocaml-5.4.0~beta2.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.4.0~beta2+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.4.0~beta2+flambda+nffa ocaml-variants.5.4.0~beta2+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 beta 
---------------------------------------- 

* Type system fix 

- #14200(https://github.com/ocaml/ocaml/issues/14200), [#14202](https://github.com/ocaml/ocaml/issues/14202) : bad variance check with private aliases 
(Jacques Garrigue, report and review by Stephen Dolan) 

* Windows fixes 

- #13504, #13625, +#14223(https://github.com/ocaml/ocaml/issues/14223): Add `Thread.set_current_thread_name`. 
(Romain Beauxis, review by Gabriel Scherer and Antonin Décimo) 

- #13541(https://github.com/ocaml/ocaml/issues/13541), [#13777](https://github.com/ocaml/ocaml/issues/13777): Using C++11 `thread_local` causes name-mangling 
issues when linking with flexlink on Cygwin. 
(Antonin Décimo and David Allsopp, report by Kate Deplaix) 

* Runtime fixes 

- #14061(https://github.com/ocaml/ocaml/issues/14061), #14209(https://github.com/ocaml/ocaml/issues/14209): fix a memory-ordering bug in Weak.set that could 
result in uninitialized memory seen by Weak.get on another domain. 
(Damien Doligez, review by Gabriel Scherer) 

- #14169(https://github.com/ocaml/ocaml/issues/14169): runtime, fix cache miss within the stack fragments cache 
(Florian Angeletti, review by Gabriel Scherer) 

* Tooling fixes 

- #13302, +#14236(https://github.com/ocaml/ocaml/issues/14236): Store locations of longidents components 
(Ulysse Gérard and Jules Aguillon, review by Jules Aguillon 
and Florian Angeletti) 

- #12642, #13536, +#14184(https://github.com/ocaml/ocaml/issues/14184), +[#14192](https://github.com/ocaml/ocaml/issues/14192): in the toplevel, print shorter paths for 
constructors and labels when only some modules along their path are open. 
(Gabriel Scherer, review by Florian Angeletti) 

- #14196(https://github.com/ocaml/ocaml/issues/14196), #14197(https://github.com/ocaml/ocaml/issues/14197): ocamlprof: do not instrument unreachable clauses 
(Gabriel Scherer, review by Nicolás Ojeda Bär, report by Ali Caglayan) 

* Error messages 

- #14214(https://github.com/ocaml/ocaml/issues/14214), #14221(https://github.com/ocaml/ocaml/issues/14221): fix a confused error message for module inclusions, 
functor error messages were missing some type equalities potentially leading 
to nonsensical "type t is not compatible with type t" submessage 
(Florian Angeletti, report by Basile Clément, review by Gabriel Scherer) 

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

      reply	other threads:[~2025-09-11 12:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-27 12:38 [Caml-list] First alpha " Florian Angeletti
2025-07-25  9:09 ` [Caml-list] First beta " Florian Angeletti
2025-09-11 12:42   ` Florian Angeletti [this message]

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=1718668268.6033977.1757594538619.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