Dear OCaml users,
The release of OCaml 5.5.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.
If you find any bugs, please report them on the OCaml's issue
tracker (https://github.com/ocaml/ocaml/issues).
Compared to the first beta, this release candidate contains two runtime fixes,
two standard library fixes, six miscellaneous fixes and one documentation
update.
The full change log for OCaml 5.5.0 is available on
GitHub(https://github.com/ocaml/ocaml/blob/5.5/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.5.0~rc1
The source code for the release candidate is also directly available on:
* GitHub: https://github.com/ocaml/ocaml/archive/5.5.0-rc1.tar.gz
* OCaml archives at Inria: https://caml.inria.fr/pub/distrib/ocaml-5.5/ocaml-5.5.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.5.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.5.0~rc1+flambda+nffa ocaml-variants.5.5.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 first beta release
### Runtime fixes
- #14820(https://github.com/ocaml/ocaml/issues/14820): caml_ba_alloc must account for memory it allocated itself.
CAML_BA_SUBARRAY (introduced in 5.2) with data=NULL would result in the
Gc accounting for the allocation as 0 bytes, which can eventually lead
to OOM. This condition never occurs in the compiler itself, but occurs
in external C bindings that attempt to create a new bigarray in the
shape of an existing one. For backwards compatibility ignore CAML_BA_SUBARRAY
when data is NULL.
(Edwin Török, review by Damien Doligez)
- ..., +#14722(https://github.com/ocaml/ocaml/issues/14722): runtime, fix in the orphaning of ephemerons
(Gabriel Scherer, review by Olivier Nicole and Damien Doligez,
report by Jan Midtgaard)
### Standard library fix
- #14853(https://github.com/ocaml/ocaml/issues/14853): fix quoting of filenames passed to Filename.quote_command on Windows.
(David Allsopp, report by Andrew Nesbitt, review by Florian Angeletti)
- ..., +#14715(https://github.com/ocaml/ocaml/issues/14715): Use POSIX thread-safe getgrnam_r, getgrgid_r,
getpwnam_r, getpwuid_r, gmtime_r, localtime_r, getlogin_r, and fix mktime
error checking.
(Antonin Décimo, review by Florian Angeletti, David Allsopp, Stefan Muenzel,
Gabriel Scherer, and Miod Vallat)
### Compiler user-interface fix
- [#14702](https://github.com/ocaml/ocaml/issues/14702): Fix hidden directory files leaking into the visible load path table.
When a hidden directory contained a file whose basename was already present,
the file could be incorrectly added to the visible table.
(Hugo Heuzard, review by Florian Angeletti)
### Compilerlibs fix
- #14797(https://github.com/ocaml/ocaml/issues/14797): avoid dropping attributes attached to package types when pretty
printing in surface syntax.
(Chet Murthy, review by Nicolás Ojeda Bär)
### Configuration fixes
- #14484(https://github.com/ocaml/ocaml/issues/14484): Set `_WIN32_WINNT` to require Windows 8/Server 2012 Windows header SDK
support.
(Antonin Décimo, review by David Allsopp)
- #14760(https://github.com/ocaml/ocaml/issues/14760), #14802(https://github.com/ocaml/ocaml/issues/14802), #14846]https://github.com/ocaml/ocaml/issues/14846): Correct the detection of argument defaults in
configure, fixing an incorrect error message when installing OCaml through
opam on OpenSUSE with the site-config package installed.
(David Allsopp, report and review by Edwin Török)
### Documentation fix
- #14684(https://github.com/ocaml/ocaml/issues/14684), #14782(https://github.com/ocaml/ocaml/issues/14782), #14838(https://github.com/ocaml/ocaml/issues/14838): Improve ocamlc's and ocamlopt's manual pages and fix
small issues in the manual
(Samuel Hym, review by Florian Angeletti, Antonin Décimo, Gabriel Scherer and
Nicolás Ojeda Bär)
### Internal fix
- ..., +#14550(https://github.com/ocaml/ocaml/issues/14550): Add the not-root builtin ocamltest action. This
allows to skip tests that fail if the current user is root (superuser).
(Kate Deplaix, review by Gabriel Scherer, Nicolás Ojeda Bär, and
Antonin Décimo)