For my sins I'm doing a scratch build of OCaml 5.0.0 alpha 1 here:
https://koji.fedoraproject.org/koji/taskinfo?taskID=91701007
Looking at this there are quite a few larger changes in packaging:
- It seems as if this generates META files for stdlib libraries, whereas previously those were generated by ocaml-findlib. (This is a more sensible way to do things, but still a large packaging change from our point of view.)
- It puts libraries like dynlink, unix etc into subdirectories, previously only threads was in a subdirectory.
- Various extra unexpected files are packaged. See diff attached.
I'm expecting this will break a lot of things.
5.0.0 also includes multicore support, and is not fully backwards compatible with all C extensions. I believe the main change will be for extensions which are relying on converting raw C pointers to OCaml pointers without wrapping/hiding them in a Custom value. An example of the deprecated behaviour is in ocaml-ancient which is a package I will likely drop.
Some other useful links:
https://discuss.ocaml.org/t/ocaml-5-0-first-normal-alpha-release/10216 https://github.com/ocaml/opam-repository/issues/21526 https://github.com/ocaml/ocaml/blob/5.0/Changes
Rich.
On Tue, Sep 6, 2022 at 8:20 AM Richard W.M. Jones rjones@redhat.com wrote:
For my sins I'm doing a scratch build of OCaml 5.0.0 alpha 1 here:
https://koji.fedoraproject.org/koji/taskinfo?taskID=91701007
Thanks. That looks like it will be quite a disruptive change. I'm aware of 2 packages I maintain that have new versions that reportedly support OCaml 5, but which require ocaml-cmdliner >= 1.1.0. That version is not backwards compatible with previous versions, so all users of ocaml-cmdliner will have to be updated simultaneously.
I've got another package that has a new version supporting OCaml 5, but it needs ocaml-yojson >= 2.0.0 which, you guessed it, is not backwards compatible with ocaml-yojson 1.x.
This week I am working on a massive update of all GAP packages due to the release of GAP 4.12. I hope to start looking at the cmdliner and yojson issues next week.
Perhaps we should create a COPR repo so we can start figuring out what works and what is broken. The repo at https://copr.fedorainfracloud.org/coprs/jjames/Infer/ is now so bit-rotted as to be useless. I should probably just delete it.
ocaml-devel@lists.fedoraproject.org