caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] OCaml 5.0, zeroth alpha release
@ 2022-06-15  8:22 Florian Angeletti
  2022-06-15  8:27 ` Daniil Baturin
  2022-07-22  8:33 ` [Caml-list] OCaml 5.0, first normal " Florian Angeletti
  0 siblings, 2 replies; 4+ messages in thread
From: Florian Angeletti @ 2022-06-15  8:22 UTC (permalink / raw)
  To: caml-list

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

Dear OCaml users, 

Five months after the initial merge of the multicore branch into the mainline 
OCaml and three months after the release of OCaml 4.14.0, OCaml 5.0.0 is 
starting to take shape. 

I am thus happy to announce an exceptional zeroth alpha release of 
OCaml 5.0.0 (see below for the installation instructions). 

This alpha release is expected to be rougher than an usual alpha release, 
due to the full rewrite of the OCaml runtime. In particular, the bytecode 
debugger will only be available in the next alpha release. Similarly, there 
will be some changes to the internal C runtime API and to the files installed 
by the compiler package in the next alpha release. 

Moreover, this zeroth alpha release is the occasion to remind everyone that 
OCaml 5.0 itself is expected to be a more experimental release than usual. 
Notably, the native compiler will only be available on the ARM64 and 
x86-64 architectures in this 5.0 release. 

Nevertheless, this zeroth alpha version is already stable enough for fellow 
hackers eager to join us in our early bug hunting and opam ecosystem fixing fun, 
or to venture in the new era of parallelism and (experimental) effects. 

You can follow the progresses in stabilising the opam ecosystem on 

https://github.com/ocaml/opam-repository/issues/21526 

A brief summary is that at least dune, merlin, ppxlib, utop, ocamlfind, 
and ocamlbuild work (potentially by using patches from the 
alpha opam repository). 

If you find any bugs, please report them here: 

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

In particular, any sequential OCaml 4 library or program should be valid in 
OCaml 5 (except for deprecated modules and functions). Please don't hesitate 
to report any forward-compatibility bugs! 

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

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

opam update 
opam switch create 5.0.0~alpha0 

For previous version of opam, the switch creation command line is slightly more verbose: 

opam update 
opam switch create 5.0.0~alpha0 --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> ocaml-variants.5.0.0~alpha0+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 5.0.0~alpha0+flambda+nffa ocaml-variants.5.0.0~alpha0+options ocaml-option-flambda ocaml-option-no-flat-float-array 

The command line above is slightly more complicated for an opam version anterior to opam 2.1: 

opam update 
opam switch create <switch_name> --packages=ocaml-variants.5.0.0~alpha0+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

In both cases, all available options can be listed with 
"opam search ocaml-option". 

If you want to test this version, it is strongly 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/5.0.0-alpha0.tar.gz 
https://caml.inria.fr/pub/distrib/ocaml-5.0/ocaml-5.0.0~alpha0.tar.gz 


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

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

* Re: [Caml-list] OCaml 5.0, zeroth alpha release
  2022-06-15  8:22 [Caml-list] OCaml 5.0, zeroth alpha release Florian Angeletti
@ 2022-06-15  8:27 ` Daniil Baturin
  2022-06-15  9:36   ` Florian Angeletti
  2022-07-22  8:33 ` [Caml-list] OCaml 5.0, first normal " Florian Angeletti
  1 sibling, 1 reply; 4+ messages in thread
From: Daniil Baturin @ 2022-06-15  8:27 UTC (permalink / raw)
  To: caml-list

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

Dear Florian,

This is exciting and I definitely will test all my projects with the alpha!

 >Notably, the native compiler will only be available on the ARM64 and
x86-64 architectures in this 5.0 release.

Is there a plan to re-introduce support for other architectures in later 
releases,
or will they dropped completely from the official scope?

On 6/15/22 11:22, Florian Angeletti wrote:
> Dear OCaml users,
>
> Five months after the initial merge of the multicore branch into the 
> mainline
> OCaml and three months after the release of OCaml 4.14.0, OCaml 5.0.0 is
> starting to take shape.
>
> I am thus happy to announce an exceptional zeroth alpha release of
> OCaml 5.0.0 (see below for the installation instructions).
>
> This alpha release is expected to be rougher than an usual alpha release,
> due to the full rewrite of the OCaml runtime. In particular, the bytecode
> debugger will only be available in the next alpha release. Similarly, 
> there
> will be some changes to the internal C runtime API and to the files 
> installed
> by the compiler package in the next alpha release.
>
> Moreover, this zeroth alpha release is the occasion to remind everyone 
> that
> OCaml 5.0 itself is expected to be a more experimental release than usual.
> Notably, the native compiler will only be available on the ARM64 and
> x86-64 architectures in this 5.0 release.
>
> Nevertheless, this zeroth alpha version is already stable enough for 
> fellow
> hackers eager to join us in our early bug hunting and opam ecosystem 
> fixing fun,
> or to venture in the new era of parallelism and (experimental) effects.
>
> You can follow the progresses in stabilising the opam ecosystem on
>
> https://github.com/ocaml/opam-repository/issues/21526
>
> A brief summary is that at least dune, merlin, ppxlib, utop, ocamlfind,
> and ocamlbuild work (potentially by using patches from the
> alpha opam repository).
>
> If you find any bugs, please report them here:
>
> https://github.com/ocaml/ocaml/issues
>
> In particular, any sequential OCaml 4 library or program should be 
> valid in
> OCaml 5 (except for deprecated modules and functions). Please don't 
> hesitate
> to report any forward-compatibility bugs!
>
> If you are interested by the ongoing list of bug fixes, the
> updated change log for OCaml 5.0.0 is available at:
>
> https://github.com/ocaml/ocaml/blob/5.0/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:
>
> opam update
> opam switch create 5.0.0~alpha0
>
> For previous version of opam, the switch creation command line is 
> slightly more verbose:
>
> opam update
> opam switch create 5.0.0~alpha0 
> --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> ocaml-variants.5.0.0~alpha0+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 5.0.0~alpha0+flambda+nffa 
> ocaml-variants.5.0.0~alpha0+options ocaml-option-flambda 
> ocaml-option-no-flat-float-array
>
> The command line above is slightly more complicated for an opam 
> version anterior to opam 2.1:
>
> opam update
> opam switch create <switch_name> 
> --packages=ocaml-variants.5.0.0~alpha0+options,<option_list> 
> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
>
> In both cases, all available options can be listed with
> "opam search ocaml-option".
>
> If you want to test this version, it is strongly 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/5.0.0-alpha0.tar.gz
> https://caml.inria.fr/pub/distrib/ocaml-5.0/ocaml-5.0.0~alpha0.tar.gz
>

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

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

* Re: [Caml-list] OCaml 5.0, zeroth alpha release
  2022-06-15  8:27 ` Daniil Baturin
@ 2022-06-15  9:36   ` Florian Angeletti
  0 siblings, 0 replies; 4+ messages in thread
From: Florian Angeletti @ 2022-06-15  9:36 UTC (permalink / raw)
  To: caml-list

Dear Daniil,

Yes, there are plans to reintroduce support for other architectures (in 
particular Power and Risc-V)
during later releases of OCaml 5. And OCaml 4.14 will be maintained 
until support is restored.

However, there is some discussion about the future status of the native 
compiler for
the x86-32 and ARM32 architectures because those architectures are 
costly in term
of compiler complexity.


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

* [Caml-list] OCaml 5.0, first normal alpha release
  2022-06-15  8:22 [Caml-list] OCaml 5.0, zeroth alpha release Florian Angeletti
  2022-06-15  8:27 ` Daniil Baturin
@ 2022-07-22  8:33 ` Florian Angeletti
  1 sibling, 0 replies; 4+ messages in thread
From: Florian Angeletti @ 2022-07-22  8:33 UTC (permalink / raw)
  To: caml-list

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

Dear OCaml users, 

The stabilisation of OCaml 5.0 has been progressing well during the last month. 
We have thus released a first normal alpha release of OCaml 5.0.0 to help 
fellow hackers join us early in our bug hunting and opam ecosystem fixing fun 
(see below for the installation instructions). 

You can follow the progress in stabilising the opam ecosystem on 

https://github.com/ocaml/opam-repository/issues/21526 

If you find any bugs, please report them here: 

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

Compared to the zeroth alpha release, this alpha release restores the support 
for the bytecode debugger, and integrates a change of type in the FFI API that 
might trigger some warnings in FFI code. 

We also have a change in the installed files: the compiler distributes now its 
own META files rather than relying on either findlib or dune to provide those 
files. This should simplify the tasks of both tools in future version. 

Note there are still some changes expected in the Effect module before the next 
candidate release. Generally, both the Effect and Domain modules are still 
experimental and might change API even during the beta releases. 

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

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

A short summary of the changes since the zeroth alpha release is also available 
below. 

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 5.0.0~alpha1 

For previous version of opam, the switch creation command line is slightly more verbose: 

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

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

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

with 

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

You can check that the alpha repository has been correctly installed with 

$ opam repo 
<><> Repository configuration for switch 5.0.0~alpha1 <><><><><><><><><><><><><> 
1 alpha git+https://github.com/kit-ty-kate/opam-alpha-repository.git 
2 default https://opam.ocaml.org 

This alpha repository contains various fixes in the process of being upstreamed which 
vastly increases the number of opam packages currently compatible with OCaml 5.0.0 . 

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.0.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 5.0.0~alpha1+flambda+nffa ocaml-variants.5.0.0~alpha1+options ocaml-option-flambda ocaml-option-no-flat-float-array 

The command line above is slightly more complicated for opam version anterior to 2.1: 

opam update 
opam switch create <switch_name> --packages=ocaml-variants.5.0.0~alpha1+options,<option_list> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git 

In both cases, all available options can be listed with "opam search ocaml-option". 

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

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

Changes since the zeroth alpha release: 
----------------------------------------------------- 

### Runtime system: 

- #11400: Runtime events counters fixes 
Fixes mismatch between OCaml and C APIs, removes events from 4.x that 
are not present in the 5.0 GC and adds some missing probes. 
(Sadiq Jaffer, review by Gabriel Scherer, Florian Angeletti) 

- #11368: Runtime events buffer size OCAMLRUNPARAMS fix 
The runtime events buffer size can now be set via the 'e' OCAMLRUNPARAM. 
This is previously mistakenly enabled/disabled tracing instead. 
(Sadiq Jaffer, review by KC Sivaramakrishnan, David Allsopp, Damien Doligez) 

- #11304: Fix data race on Windows file descriptors 
(Olivier Nicole and Xavier Leroy, review by Xavier Leroy, David Allsopp, 
and Sadiq Jaffer) 

* #11337: pass 'flags' metadata to root scanners, to optimize stack 
scanning in the bytecode interpreter. 
Changes the interface of user-provided root-scanning hooks. 
(Gabriel Scherer, review by Xavier Leroy, 
Guillaume Munch-Maccagnoni, Sadiq Jaffer and Tom Kelly) 

- #11144: Restore frame-pointers support for amd64 
(Fabrice Buoro, review by Frederic Bour and KC Sivaramakrishnan) 

* #11255: in the C interface, `&Field(v, i)` now has type `volatile value *` 
instead of `value *` in OCaml 4. This makes the memory model 
for mixed OCaml/C code better defined, but can cause warnings or type 
errors in user C code. 
(KC Sivaramakrishnan, review by Xavier Leroy, Gabriel Scherer and 
Guillaume Munch-Maccagnoni, additional discussions with Stephen 
Dolan and Luc Maranget) 

### Standard library: 

+ #10867, +#11345: Remove deprecated values: 
…, the infix operator (.[]<-). 
(Nicolás Ojeda Bär, review by Damien Doligez) 

- #11309, #11424, #11427: Add Domain.recommended_domain_count. 
(Christiano Haesbaert, Konstantin Belousov, review by David Allsopp, 
KC Sivaramakrishnan, Gabriel Scherer, Nicolas Ojeda Bar) 

### Tools: 

- #11065: Port the bytecode debugger to 5.0, adding support for effect handlers. 
(Damien Doligez and @fabbing, review by @fabbing and Xavier Leroy) 

- #11382: OCamlmktop use a new initialization module "OCamlmktop_init" to 
preserve backward-compatibility with user-module provided modules that install 
toplevel printers. 
(Florian Angeletti, review by Gabriel Scherer and David Allsopp) 

### Installation: 

- #11007, #11399: META files for the stdlib, compiler-libs and other libraries 
(unix, dynlink, str, runtime_events, threads, ocamldoc) are now installed 
along with the compiler. 
(David Allsopp, Florian Angeletti, Nicolás Ojeda Bär and Sébastien Hinderer, 
review by Daniel Bünzli, Kate Deplaix, Anil Madhavapeddy and Gabriel Scherer) 

### Bug fixes: 

- #10768, #11340: Fix typechecking regression when combining first class 
modules and GADTs. 
(Jacques Garrigue, report by François Thiré, review by Matthew Ryan) 

- #10790: don't drop variance and injectivity annotations when pretty printing 
`with` constraints (for example, `with type +!'a t = ...`). 
(Florian Angeletti, report by Luke Maurer, review by Matthew Ryan and 
Gabriel Scherer) 

- #11289, #11405: fix some leaks on systhread termination 
(Fabrice Buoro, Enguerrand Decorne, Gabriel Scherer, 
review by Xavier Leroy and Florian Angeletti, report by Romain Beauxis) 

- #11314, #11416: fix non-informative error message for module inclusion 
(Florian Angeletti, report by Thierry Martinez, review by Gabriel Scherer) 

- #11358, #11379: Refactor the initialization of bytecode threading, 
This avoids a "dangling pointer" warning of GCC 12.1. 
(Xavier Leroy, report by Armaël Guéneau, review by Gabriel Scherer) 

- #11387, module type with constraints no longer crash the compiler in presence 
of both shadowing warnings and the `-bin-annot` compiler flag. 
(Florian Angeletti, report by Christophe Raffalli, review by Gabriel Scherer) 

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

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

end of thread, other threads:[~2022-07-22  8:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-15  8:22 [Caml-list] OCaml 5.0, zeroth alpha release Florian Angeletti
2022-06-15  8:27 ` Daniil Baturin
2022-06-15  9:36   ` Florian Angeletti
2022-07-22  8:33 ` [Caml-list] OCaml 5.0, first normal " 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).