[Libguestfs] Minimum OCaml compiler version (2021/2022 edition)
Daniel P. Berrangé
berrange at redhat.com
Tue Nov 9 12:24:20 UTC 2021
On Tue, Nov 09, 2021 at 09:04:40AM +0000, Richard W.M. Jones wrote:
> Previously:
> https://listman.redhat.com/archives/libguestfs/2020-March/msg00063.html
> https://listman.redhat.com/archives/libguestfs/2017-September/msg00203.html
>
> Our current minimum version across projects is 4.03.
>
> We still use "noalloc" in a few places which causes this warning:
>
> ocamlopt.opt -warn-error +A-3 -c NBDKit.ml -o NBDKit.cmx
> File "NBDKit.ml", line 155, characters 0-70:
> 155 | external set_name : string -> unit = "ocaml_nbdkit_set_name" "noalloc"
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Alert deprecated: [@@noalloc] should be used instead of "noalloc"
>
> I just noticed now that this change was made in 4.03 -- I will go
> ahead and fix this everywhere today.
>
> Should we move to a newer minimum version? If we moved to 4.07 then
> we could also get rid of the warnings about Pervasives (replaced by
> Stdlib), eg:
>
> File "std_utils.ml", line 329, characters 26-44:
> 329 | let sort_uniq ?(cmp = Pervasives.compare) xs =
> ^^^^^^^^^^^^^^^^^^
> Alert deprecated: module Stdlib.Pervasives
> Use Stdlib instead.
>
> However 4.07 was only released in 2018, and this would mean removing
> RHEL 7 compatibility (officially -- it's sort of unofficially not
> supported already). More irritatingly, FreeBSD is stuck on 4.05.
Note both libvirt and QEMU have explicitly dropped RHEL-7
as a supported build platform[1], under the rule that platforms
are dropped 2 years after the new major version is released.
It has been > 2 years since RHEL-8 GA, so they dropped RHEL-7.
IOW even if new libguestfs can build on RHEL-7, you'll be
stuck with old libvirt and QEMU.
> Here are the common distros and versions (< 4.07 marked with '*'):
>
> Arch (Extra) OCaml 4.12
> Debian stable OCaml 4.11
> Debian testing OCaml 4.11
> Fedora 31 OCaml 4.08
> Fedora 35 OCaml 4.12
> FreeBSD (ports) OCaml 4.05 *
> OpenSUSE OCaml 4.13
> RHEL 7 OCaml 4.05 *
> RHEL 8 OCaml 4.07
> RHEL 9 OCaml 4.11
> Ubuntu 16.04 OCaml 4.02 *
Ubuntu 16.04 is explicitly dropped by both QEMU and libvirt too
a long time ago. It falls under both the 2 year cut off rule,
an the maximum of two major releases in concurrently rules.
NB, QEMU/libvirt only look at Ubuntu LTS releases for cutoffs
> Ubuntu 18.04 OCaml 4.05 *
> Ubuntu 20.04 OCaml 4.08
> Ubuntu 21.04 OCaml 4.11
>
> And 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-02
> 4.11 2020-08
> 4.12 2021-02
> 4.13 2021-09
Regards,
Daniel
[1] https://www.qemu.org/docs/master/about/build-platforms.html
https://libvirt.org/platforms.html
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the Libguestfs
mailing list