First release candidate for OCaml 4.14.2
Florian Angeletti <[email protected]>
| Newsgroups | gmane.comp.lang.caml.inria |
|---|---|
| Message-ID | <[email protected]> |
Dear OCaml users, The release of OCaml version 4.14.2 is imminent. OCaml 4.14.2 is a new update to the stable 4.14 branch of OCaml. This new release backports many safe bug fixes from the OCaml 5 branch and fixes a handful of compatibility issues of OCaml 4.14.1 with newer operating system versions. A full list of bug fixes is available below. In order to ensure that the future release works as expected, we are planning to test a release candidate during the upcoming week (the packages might take some hours to propagate on the opam repository). If you find any bugs, please report them here on https://github.com/ocaml/ocaml/issues. 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 4.14.2~rc1 The source code for the release candidate is available on - GitHub: https://github.com/ocaml/ocaml/archive/4.14.2-rc1.tar.gz - Inria archives : https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.2~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.4.14.2~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 4.14.2~rc1+flambda+nffa ocaml-variants.4.14.2~rc1+options ocaml-option-flambda ocaml-option-no-flat-float-array All available options can be listed with opam search ocaml-option. Changes Since OCaml 4.14.1 ----------------------------------------- ### Runtime System: - #11764(https://github.com/ocaml/ocaml/issues/11764), #12577(https://github.com/ocaml/ocaml/issues/12577): Add prototypes to old-style C function definitions and declarations. (Antonin Décimo, review by Xavier Leroy and Nick Barnes) - #11763(https://github.com/ocaml/ocaml/issues/11763), #11759(https://github.com/ocaml/ocaml/issues/11759), #11861(https://github.com/ocaml/ocaml/issues/11861), #12509(https://github.com/ocaml/ocaml/issues/12509), #12577(https://github.com/ocaml/ocaml/issues/12577): Use strict prototypes on primitives. (Antonin Décimo, review by Xavier Leroy, David Allsopp, Sébastien Hinderer and Nick Barnes) * (*breaking change*) #10723(https://github.com/ocaml/ocaml/issues/10723): Do not use `-flat-namespace` linking for macOS. (Carlo Cabrera, review by Damien Doligez) - #11332(https://github.com/ocaml/ocaml/issues/11332), [#12702](https://github.com/ocaml/ocaml/issues/12702): Make sure `Bool_val(v)` has type `bool` in C++ (Xavier Leroy, report by ygrek, review by Gabriel Scherer) ### Build System: - #11590(https://github.com/ocaml/ocaml/issues/11590): Allow installing to a destination path containing spaces (Élie Brami, review by Sébastien Hinderer and David Allsopp) - #12372(https://github.com/ocaml/ocaml/issues/12372): Pass option `-no-execute-only` to the linker for OpenBSD >= 7.3 so that code sections remain readable, as needed for closure marshaling. (Xavier Leroy and Anil Madhavapeddy, review by Anil Madhavapeddy and Sébastien Hinderer) - #12903(https://github.com/ocaml/ocaml/issues/12903): Disable control flow integrity on OpenBSD >= 7.4 to avoid illegal instruction errors on certain CPUs. (Michael Hendricks, review by Miod Vallat) ### Bug fixes: - #12061(https://github.com/ocaml/ocaml/issues/12061), #12063(https://github.com/ocaml/ocaml/issues/12063): Don't add inconsistent equalities when computing high-level error messages for functor applications and inclusions. (Florian Angeletti, review by Gabriel Scherer) - #12878(https://github.com/ocaml/ocaml/issues/12878): Fix incorrect treatment of injectivity for private recursive types. (Jeremy Yallop, review by Gabriel Scherer and Jacques Garrigue) - #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) - #12264(https://github.com/ocaml/ocaml/issues/12264), #12289(https://github.com/ocaml/ocaml/issues/12289): Fix `compact_allocate` to avoid a pathological case that causes very slow compaction. (Damien Doligez, report by Arseniy Alekseyev, review by Sadiq Jaffer) - #12513(https://github.com/ocaml/ocaml/issues/12513), #12518(https://github.com/ocaml/ocaml/issues/12518): Automatically enable emulated `fma` for Visual Studio 2019+ to allow configuration with either pre-Haswell/pre-Piledriver CPUs or running in VirtualBox. Restores parity with the other Windows ports, which don't require explicit `--enable-imprecise-c99-float-ops`. (David Allsopp, report by Jonah Beckford and Kate Deplaix, review by Sébastien Hinderer) - #11633(https://github.com/ocaml/ocaml/issues/11633), [#11636](https://github.com/ocaml/ocaml/issues/11636): Bug fix in `caml_unregister_frametable` (Frédéric Recoules, review by Gabriel Scherer) - #12636(https://github.com/ocaml/ocaml/issues/12636), #12646(https://github.com/ocaml/ocaml/issues/12646): More prudent reinitialisation of I/O mutexes after a fork() (Xavier Leroy, report by Zach Baylin, review by Enguerrand Decorne) * (*breaking change*) #10845(https://github.com/ocaml/ocaml/issues/10845) Emit frametable size on AMD64 BSD (OpenBSD, FreeBSD, NetBSD) systems (emitted for Linux in [#8805](https://github.com/ocaml/ocaml/issues/8805)) (Hannes Mehnert, review by Nicolás Ojeda Bär) - #12958(https://github.com/ocaml/ocaml/issues/12958): Fix `tail-modulo-cons` compilation of `try-with`, `&&`, and `||` expressions. (Gabriel Scherer and Nicolás Ojeda Bär, report by Sylvain Boilard, review by Gabriel Scherer)