caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] OCaml 4.14.0, first alpha release
@ 2022-01-21  9:01 Florian Angeletti
  2022-02-09  9:06 ` [Caml-list] OCaml 4.14.0, second " Florian Angeletti
  0 siblings, 1 reply; 4+ messages in thread
From: Florian Angeletti @ 2022-01-21  9:01 UTC (permalink / raw)
  To: caml-list

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

Dear OCaml users, 

The set of new features for the future version 4.14.0 of OCaml has been stabilized, 
three months after the release of OCaml 4.13.1. I am thus happy to announce the 
first alpha release for OCaml 4.14.0 . 

This alpha version is here to help fellow hackers join us early in our bug 
hunting and opam ecosystem fixing fun (see below for the installation instructions). 
You can see the progress on this front at https://github.com/ocaml/opam-repository/issues/20501 . 

If you find any bugs, please report them here: 

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

Most major OCaml developer tools are already supported with this alpha 
(from odoc to merlin), thus I expect us to switch to beta releases in the 
beginning of February. The full release is expected to happen in late February. 
This early release will give us time to focus on the release of OCaml 5.0. 

If you are interested by the ongoing list of new features and bug fixes, the 
updated change log for OCaml 4.14.0 is available at: 

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

opam update 
opam switch create 4.14.0~alpha1 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

With opam 2.1, the previous command line can be simplified to 

opam update 
opam switch create 4.14.0~alpha1 

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> --packages=ocaml-variants.4.14.0~alpha1+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

or with opam 2.1: 

opam update 
opam switch create <switch_name> ocaml-variants.4.14.0~alpha1+options <option_list> 


where <option_list> is a comma separated list of ocaml-option-* packages. For instance, for a flambda and no-flat-float-array switch: 

opam switch create 4.14.0~alpha1+flambda+nffa ocaml-variants.4.14.0~alpha1+options ocaml-option-flambda ocaml-option-no-flat-float-array 

All available options can be listed with "opam search ocaml-option". 

If you want to test this version, it is advised to install the alpha opam repository 

https://github.com/kit-ty-kate/opam-alpha-repository 

with 

opam repo add alpha git://github.com/kit-ty-kate/opam-alpha-repository.git 

This alpha repository contains various fixes in the process of being upstreamed. 

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

https://github.com/ocaml/ocaml/archive/4.14.0-alpha1.tar.gz 
https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.0~alpha1.tar.gz 

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Caml-list] OCaml 4.14.0, second alpha release
  2022-01-21  9:01 [Caml-list] OCaml 4.14.0, first alpha release Florian Angeletti
@ 2022-02-09  9:06 ` Florian Angeletti
  2022-02-22  8:52   ` [Caml-list] OCaml 4.14.0, first beta release Florian Angeletti
  0 siblings, 1 reply; 4+ messages in thread
From: Florian Angeletti @ 2022-02-09  9:06 UTC (permalink / raw)
  To: caml-list

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

Dear OCaml users, 

The release of OCaml 4.14.0 is approaching. We have released a second alpha version to help fellow hackers join us early in our bug hunting and opam ecosystem fixing fun (see below for the installation instructions). 
You can see the progress on this front at https://github.com/ocaml/opam-repository/issues/20501 . 

If you find any bugs, please report them here: 

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

Compared to the last alpha release, we have exceptionally a new feature for writing future-compatible early thread exit in 4.14.0 . 
The second notable change is a major fix in the typechecker for escaping existential types when using GADTs, that might break existing code that relied on the broken types. However, there are currently no known instance of package broken by this change in the opam repository. 
The other fixes are more usual and should be fairly safe. 

With the current state of the opam ecosystem, we are expecting to have a first beta release ready soon. 

Happy hacking, 
Florian Angeletti for the OCaml team. 

Changes compared to the first alpha 
------------------------------------------------ 

The full list of new features and bug fixes, is available at: 

https://github.com/ocaml/ocaml/blob/4.14/Changes 

## New feature 

- #10951: Introduce the Thread.Exit exception as an alternative way to 
terminate threads prematurely. This alternative way will become 
the standard way in 5.00. 
(Xavier Leroy, review by Florian Angeletti) 

## Major new bug fix 

- #10907, #10959: Wrong type inferred from existential types 
(Jacques Garrigue and Gabriel Scherer, report by @dyzsr, review by Leo White) 

## New bug fixes 

+ #10596, +#10978: Add with_open_bin, with_open_text and with_open_gen to 
In_channel and Out_channel. Also, add In_channel.input_all. 
(Nicolás Ojeda Bär, review by Daniel Bünzli, Jérémie Dimino, Damien Doligez 
and Xavier Leroy) 

- #10839: Fix regression of #show when printing class type 
(Élie Brami, review by Florian Angeletti) 

- #10836, #10952: avoid internal typechecker errors when checking signature 
inclusion in presence of incompatible types. 
(Florian Angeletti, report by Craig Ferguson, review by Gabriel Scherer) 

## Deprecation fine tuning 

+ #10675, +#10937: Emit deprecation warnings when old C runtime function names 
are used. This will break C stub code that uses these old names and 
treats warnings as errors. The workaround is to use the new names. 
(Xavier Leroy and David Allsopp, review by Sébastien Hinderer and 
Damien Doligez) 

## Tools fine tuning 

- #10846: add the `-shape` command-line option to ocamlobjinfo. When reading a 
`cmt` file, shape information will only be shown if that option is used. 
(Ulysse Gérard, review by Florian Angeletti) 

Installation instructions 
------------------------------ 
The base compiler can be installed as an opam switch with the following commands 

opam update 
opam switch create 4.14.0~alpha2 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

With opam 2.1, the previous command line can be simplified to 

opam update 
opam switch create 4.14.0~alpha2 

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> --packages=ocaml-variants.4.14.0~alpha2+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

or with opam 2.1: 

opam update 
opam switch create <switch_name> ocaml-variants.4.14.0~alpha2+options <option_list> 

where <option_list> is a comma separated list of ocaml-option-* packages. For instance, for a flambda and no-flat-float-array switch: 

opam switch create 4.14.0~alpha2+flambda+nffa ocaml-variants.4.14.0~alpha2+options ocaml-option-flambda ocaml-option-no-flat-float-array 

All available options can be listed with "opam search ocaml-option". 

If you want to test this version, it is advised to install the alpha opam repository 

https://github.com/kit-ty-kate/opam-alpha-repository 

with 

opam repo add alpha git://github.com/kit-ty-kate/opam-alpha-repository.git 

This alpha repository contains various fixes in the process of being upstreamed. 

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

https://github.com/ocaml/ocaml/archive/4.14.0-alpha2.tar.gz 
https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.0~alpha2.tar.gz 

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Caml-list] OCaml 4.14.0, first beta release
  2022-02-09  9:06 ` [Caml-list] OCaml 4.14.0, second " Florian Angeletti
@ 2022-02-22  8:52   ` Florian Angeletti
  2022-03-17 13:49     ` [Caml-list] OCaml 4.14.0, second release candidate Florian Angeletti
  0 siblings, 1 reply; 4+ messages in thread
From: Florian Angeletti @ 2022-02-22  8:52 UTC (permalink / raw)
  To: caml-list

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

Dear OCaml users, 

The release of OCaml 4.14.0 is close. 

The set of new features has been stabilized, and most opam packages already 
work with this release. After two alpha releases, we have created a first 
beta version to help you update your softwares and libraries ahead of the 
release. 

If you find any bugs, please report them at: 

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

The full release of OCaml 4.14.0 is currently expected for the middle of March. 

Compared to the last alpha, we have a last minute correction for one of the new 
function in the Seq module, some documentation improvements, and few 
configuration and internal tweaks. 

Happy hacking, 
Florian Angeletti for the OCaml team. 

Installation instructions 
------------------------------ 
The base compiler can be installed as an opam switch with the following commands 

opam update 
opam switch create 4.14.0~beta1 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

With opam 2.1, the previous command line can be simplified to 

opam update 
opam switch create 4.14.0~beta1 

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> --packages=ocaml-variants.4.14.0~beta1+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

or with opam 2.1: 

opam update 
opam switch create <switch_name> ocaml-variants.4.14.0~beta1+options <option_list> 

where <option_list> is a comma separated list of ocaml-option-* packages. For instance, for a flambda and no-flat-float-array switch: 

opam switch create 4.14.0~beta1+flambda+nffa ocaml-variants.4.14.0~beta1+options ocaml-option-flambda ocaml-option-no-flat-float-array 

All available options can be listed with "opam search ocaml-option". 

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

https://github.com/ocaml/ocaml/archive/4.14.0-beta1.tar.gz 
https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.0~beta1.tar.gz 

Changes compared to the last alpha 
------------------------------------------------ 

The full list of changes for OCaml 4.14 is available at https://github.com/ocaml/ocaml/blob/4.14/Changes 

## Standard library 

+* #10583, +#10998: Add over 40 new functions in Seq. 
(François Pottier and Simon Cruanes, review by Nicolás Ojeda Bär, 
Daniel Bünzli, Naëla Courant, Craig Ferguson, Wiktor Kuchta, 
Xavier Leroy, Guillaume Munch-Maccagnoni, Raphaël Proust, Gabriel Scherer 
and Thierry Martinez) 

## Documentation 

- #10397: Document exceptions raised by Unix module functions on Windows 
(Martin Jambon, review by Daniel Bünzli, David Alsopp, Damien Doligez, 
Xavier Leroy, and Florian Angeletti) 

- #10794: Clarify warning 57 (Ambiguous or-pattern variables under guard) 
(Wiktor Kuchta, review by Gabriel Scherer) 

## Build system 

- #10828 Build native-code compilers on OpenBSD/aarch64 
(Christopher Zimmermann) 

- #10835 Disable DT_TEXTREL warnings on x86 32 bit architecture by passing 
-Wl,-z,notext in mksharedlib and mkmaindll. Fixes relocation issues, reported 
in #9800, making local patches in Debian, Alpine, and FreeBSD superfluous. 
(Hannes Mehnert with Kate Deplaix and Stéphane Glondu, review by Xavier Leroy) 

## Code generation 

- #10719: Ensure that build_apply respects Lambda.max_arity 
(Stephen Dolan, review by Xavier Leroy) 

## Internal/compiler-libs 

+ #10718, +#11012: Add "Shape" information to the cmt files. Shapes are an 
abstraction of modules that can be used by external tooling to perform 
definition-aware operations. 
(Ulysse Gérard, Thomas Refis and Leo White, review by Florian Angeletti) 

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Caml-list] OCaml 4.14.0, second release candidate
  2022-02-22  8:52   ` [Caml-list] OCaml 4.14.0, first beta release Florian Angeletti
@ 2022-03-17 13:49     ` Florian Angeletti
  0 siblings, 0 replies; 4+ messages in thread
From: Florian Angeletti @ 2022-03-17 13:49 UTC (permalink / raw)
  To: caml-list

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

Dear OCaml users, 

The release of OCaml 4.14.0 is imminent. 
As a last test that everything is in order, we are publishing a second release 
candidate for OCaml 4.14.0. 

We are directly jumping to the second release candidate due to a 
type system regression discovered during the release of the first release 
candidate. 

Compared to the last beta, this release candidate includes a regression fix when 
typing recursive constraints, two backend fixes (one for the frame-pointer mode 
and the other one for the RISC-V architecture), one configuration fix 
for musl/arm64, and the manual chapter for the TMC transformation. 

If you find any bugs, please report them here: 

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

The release of OCaml 4.14.0 is currently planned for next week. 

Happy hacking, 
Florian Angeletti for the OCaml team. 

Installation instructions 
---------------------------- 
The base compiler can be installed as an opam switch with the following commands 

opam update 
opam switch create 4.14.0~rc2 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

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> --packages=ocaml-variants.4.14.0~rc2+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

where <option_list> is a comma separated list of ocaml-option-* packages. 
For instance, for a flambda and no-flat-float-array switch: 

opam switch create 4.14.0~rc2+flambda+nffa --packages=ocaml-variants.4.14.0~rc2+options,ocaml-option-flambda,ocaml-option-no-flat-float-array --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

All available options can be listed with "opam search ocaml-option". 

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

https://github.com/ocaml/ocaml/archive/4.14.0-rc2.tar.gz 
https://caml.inria.fr/pub/distrib/ocaml-4.14/ocaml-4.14.0~rc2.tar.gz 

Changes since the last beta 
------------------------------------- 

### Type system regression fix 

- #11101, #11109: A recursive type constraint fails on 4.14 
(Jacques Garrigue, report and review by Florian Angeletti) 

### Backend fixes 

- #10688: Move frame descriptor table from `rodata` to `data` section on 
RISC-V. Improves support for building DLLs and PIEs. In particular, this 
applies to all binaries in distributions that build PIEs by default (eg 
Gentoo and Alpine). 
(Alex Fan, review by Gabriel Scherer) 

- #11031: Exception handlers restore the rbp register when using frame-pointers 
on amd64. 
(Fabrice Buoro, with help from Stephen Dolan, Tom Kelly and Mark Shinwell, 
review by Xavier Leroy) 

### Configuration fix 

- #11025, #11036: Do not pass -no-pie to the C compiler on musl/arm64 
(omni, Kate Deplaix and Antonio Nuno Monteiro, review by Xavier Leroy) 

### Documentation 

+ #181, #9760, +#10740: opt-in tail-modulo-cons (TMC) transformation 
let[@tail_mod_cons] rec map f li = ... 
(Frédéric Bour, Gabriel Scherer, Basile Clément, 
review by Basile Clément and Pierre Chambart, 
tested by Konstantin Romanov) 

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-03-17 13:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-21  9:01 [Caml-list] OCaml 4.14.0, first alpha release Florian Angeletti
2022-02-09  9:06 ` [Caml-list] OCaml 4.14.0, second " Florian Angeletti
2022-02-22  8:52   ` [Caml-list] OCaml 4.14.0, first beta release Florian Angeletti
2022-03-17 13:49     ` [Caml-list] OCaml 4.14.0, second release candidate Florian Angeletti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).