Previously discussed: https://www.redhat.com/archives/libguestfs/2017-September/msg00203.html Currently libguestfs and virt-v2v require OCaml >= 4.01. (That's perhaps theoretical, as I don't think anyone is really compiling them with such an old compiler). This causes a bunch of trouble. To my mind the major things are: - Having to have the "Bytes" compatibility module (added in OCaml 4.02). - Conditional on -runtime-variant _pic (added in OCaml 4.03). - Not being able to use ppx extension points, which means we have lots of repetitive string_of_* functions that could be mostly eliminated (needs OCaml >= 4.02). - Match + catch (needs OCaml >= 4.02) https://blog.janestreet.com/pattern-matching-and-exception-handling-unite/ - Warnings about "noalloc" (>= 4.03) and "Pervasives" (>= 4.07). I guess it's also the case that some dependencies that we require don't actually work on OCaml 4.01. Here are some common distros and the versions of OCaml available: Arch (Extra) OCaml 4.09 Debian stable OCaml 4.05 Debian testing OCaml 4.08 Fedora 31 OCaml 4.08 OpenSUSE OCaml 4.05 RHEL 7 OCaml 4.05 RHEL 8 OCaml 4.07 Ubuntu 16.04 OCaml 4.02 Ubuntu 18.04 OCaml 4.05 Here are the release dates of the OCaml compiler: OCaml version Release date 4.02 2014-08 4.03 2016-04 4.04 2016-11 4.05 2017-07 4.06 2017-11 4.07 2018-07 4.08 2019-06 4.09 2019-09 4.10 2020 I think we should move the minimum to 4.05 since that covers everything except the old Ubuntu LTS (and that's their fault for releasing an LTS with a version of OCaml which was already nearly 2 years out of date, and not updating it in the meantime). Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v
On Tuesday, 10 March 2020 14:37:15 CET Richard W.M. Jones wrote:> I think we should move the minimum to 4.05 since that covers > everything except the old Ubuntu LTS (and that's their fault for > releasing an LTS with a version of OCaml which was already nearly 2 > years out of date, and not updating it in the meantime).Makes sense: switching to 4.03 solves enough of the "desiderata" for us, however nothing ships that as also you correctly point out. Before bumping the version (and using the newer features), the branching/tracking scheme for libguestfs-common ought to be sorted out, otherwise the stituation starts to be messy. Thanks, -- Pino Toscano