OCaml 4.14.0, first alpha release

The set of new features for the future version 4.14.0 of OCaml has been (finally) 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 OCaml 4.14 Release Readiness · Issue #20501 · ocaml/opam-repository · GitHub .

If you find any bugs, please report them here:

Issues · ocaml/ocaml · GitHub

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 list of new features and the ongoing list of bug fixes, the updated change log for OCaml 4.14.0 is available at:

ocaml/Changes at 4.14 · ocaml/ocaml · GitHub

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

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

26 Likes

Wow, lots of great stuff in the changelog. The update of the Seq module is great!

4 Likes

@octachron the git:// scheme should be avoided, github is randomly removing access to it a few days every so often (see Improving Git protocol security on GitHub | The GitHub Blog)

As a side note, for those who, like myself, use down + ocp-index instead of utop they are now available in opam-alpha-repository all ready for OCaml 4.14.

All the rest of the essential dev tools (merlin, …) are available in opam-repository directly, and apart from a handful of packages (e.g. batteries), most of opam packages are available on 4.14.

So no escuses to not test OCaml 4.14 now ^^ Enjoy!

4 Likes

Hello,

I can not install the alpha release:

$ opam switch create 4.14.0~alpha1
[ERROR] Could not resolve set of base packages:
Sorry, no solution found: there seems to be a problem with your request.

$ opam switch create 4.14.0~alpha1 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
[ERROR] Could not resolve set of base packages:
Sorry, no solution found: there seems to be a problem with your request.

Any idea? (I tried other solver than default)

are you sure you called opam update before?

[2438_] kit-ty-kate
January 26

are you sure you called opam update before?

Yes, update, upgrade, all I could. I wonder if my opam is not
corrupted.

But “normal” switches are ok

And by the way, I have opam 2.0.8 coming with debian stable.

That might be unrelated but trying on a old version of opam (2.00), I see a failure that goes away if I first add the beta repository

 opam repo add beta git+https://github.com/ocaml/ocaml-beta-repository.git
opam update beta

then install the alpha version:

opam switch create 4.14.0~alpha1 --repositories=default,beta

YES, it was update opam beta that made it works!

ocaml-lsp-server and batteries are also now available on OCaml 4.14 in opam-repository.