Dear OCaml users,
The release of OCaml 5.3.0 is imminent.
As a final step, we are publishing a release candidate to check that everything
is in order before the release in the upcoming week(s).
If you find any bugs, please report them on the OCaml's issue
tracker (
https://github.com/ocaml/ocaml/issues).
Compared to the second beta, this release candidate contains a regression fix in
the type system (some type expressions were not generalized when they ought to
be), one fix for the new check for dependency order at link time, and an
improvement of the reference manual.
The full change log for OCaml 5.3.0 is available on
GitHub(https://github.com/ocaml/ocaml/blob/5.3/Changes).
A short summary of the changes since the second beta release is also available
below.
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.3.0~rc1
The source code for the release candidate is also directly available on:
* GitHub: https://github.com/ocaml/ocaml/archive/5.3.0-rc1.tar.gz
* OCaml archives at Inria: https://caml.inria.fr/pub/distrib/ocaml-5.3/ocaml-5.3.0~rc1.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.3.0~rc1+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.3.0~rc1+flambda+nffa ocaml-variants.5.3.0~rc1+options ocaml-option-flambda ocaml-option-no-flat-float-array
All available options can be listed with `opam search ocaml-option`.
Changes since the second beta
-----------------------------------------
## Type system
- [#13690](https://github.com/ocaml/ocaml/issues/13690): some type expressions were incorrectly not generalized (because they
were assigned to the wrong level pool)