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)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.