OCaml 4.03 has been out for a while.
I'm intending to add it to Fedora Rawhide once a side tag has been created: https://fedorahosted.org/rel-eng/ticket/6486
This will require rebuilding every OCaml package, which I normally do using a script, but probably there will be manual rebuilds necessary too.
A few issues that may affect people:
(1) There is a new ppc backend upstream, and I intend to switch to this.
For years we have maintained our own out-of-tree ppc64 & ppc64le backends. I want to switch to the upstream ppc backend (which supports, in theory, ppc 32 bit, ppc64 and ppc64le). However when I actually tried this I found it to be rather buggy, it couldn't even compile many basic OCaml packages. This time I intend to switch, and we'll deal with the bugs.
(2) There is a new s/390x backend upstream. This should enable us to compile all s/390x packages as native code.
It also means that all supported architectures (yes, even riscv64) will support native compilation for OCaml.
(3) The real reason I'm doing this now is because partners have asked us to update the OCaml compiler in RHEL 7.4. This will be a binary ABI break -- it's unfortunately unavoidable -- and will require all OCaml-using programs to be recompiled, and of course that will affect CentOS and any other RHEL derivatives.
Rich.
On 10/18/2016 08:04 AM, Richard W.M. Jones wrote:
(3) The real reason I'm doing this now is because partners have asked us to update the OCaml compiler in RHEL 7.4. This will be a binary ABI break -- it's unfortunately unavoidable -- and will require all OCaml-using programs to be recompiled, and of course that will affect CentOS and any other RHEL derivatives.
Thanks for the heads-up on this one. Happen to have a rough estimate handy for the number of impacted packages?
On Tue, Oct 18, 2016 at 09:49:30AM -0500, Jim Perrin wrote:
On 10/18/2016 08:04 AM, Richard W.M. Jones wrote:
(3) The real reason I'm doing this now is because partners have asked us to update the OCaml compiler in RHEL 7.4. This will be a binary ABI break -- it's unfortunately unavoidable -- and will require all OCaml-using programs to be recompiled, and of course that will affect CentOS and any other RHEL derivatives.
Thanks for the heads-up on this one.
It's not definite yet, but good for CentOS to be aware.
Happen to have a rough estimate handy for the number of impacted packages?
In base RHEL we will be updating these packages:
ocaml ocaml-calendar ocaml-csv ocaml-curses ocaml-extlib ocaml-fileutils ocaml-findlib ocaml-gettext ocaml-libvirt ocaml-ounit ocaml-xml-light hivex graphviz brlapi libguestfs
In the extended CentOS/EPEL it will be anything returned by this command:
repoquery --whatrequires ocaml-runtime --qf "%{name}" | sort -u
(That's binary packages, not source packages, but it's a good start).
This is assuming you don't want to rebuild packages which contain only OCaml binaries. In fact you might want to do that because of a CVE which came up last year (https://bugzilla.redhat.com/CVE-2015-8869). In that case you need to look for any package which `BuildRequires: ocaml'. I'm afraid my repoquery-fu is not good enough :-(
Rich.
On Tue, Oct 18, 2016 at 02:04:22PM +0100, Richard W.M. Jones wrote:
OCaml 4.03 has been out for a while.
Since OCaml 4.04.0 was released last Friday, we rebased to 4.04.0.
This is now ready to test. If you have Rawhide + some package that needs OCaml, then add the following repository and you can pull down the new OCaml version to test against:
$ cat /etc/yum.repos.d/tmp-f26-ocaml.repo [f26-ocaml] name=f26-ocaml baseurl=https://kojipkgs.fedoraproject.org/repos/f26-ocaml/latest/$basearch/ enabled=0 gpgcheck=0
A few issues that may affect people:
(1) There is a new ppc backend upstream, and I intend to switch to this.
For years we have maintained our own out-of-tree ppc64 & ppc64le backends. I want to switch to the upstream ppc backend (which supports, in theory, ppc 32 bit, ppc64 and ppc64le). However when I actually tried this I found it to be rather buggy, it couldn't even compile many basic OCaml packages. This time I intend to switch, and we'll deal with the bugs.
The good news is that the new POWER backend in 4.04 is very stable. We haven't found any problems at all, and compiling for ppc64le actually revealed undefined behaviour in a C library:
https://bugzilla.redhat.com/show_bug.cgi?id=1392247#c3
For ppc64le you will require POWER8. Running on POWER7 will cause random segfaults because various vector instructions are used that weren't available in POWER7.
(2) There is a new s/390x backend upstream. This should enable us to compile all s/390x packages as native code.
It also means that all supported architectures (yes, even riscv64) will support native compilation for OCaml.
Neither s390x nor riscv64 are enabled at the moment, but I hope to get that done in the next few days or weeks.
Rich.