[Libguestfs] Minimum OCaml compiler version (2021/2022 edition)

Richard W.M. Jones rjones at redhat.com
Tue Nov 9 12:25:56 UTC 2021


On Tue, Nov 09, 2021 at 01:18:44PM +0100, Laszlo Ersek wrote:
> On 11/09/21 10:04, 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.
> 
> Can we loop in FreeBSD people directly? Do they have an upgrade path?

Yes let's do that now.

Their reasoning is contained here:
https://cgit.freebsd.org/ports/commit/lang/ocaml?id=b51d4476846a1b8364c05d954e88fa977c5d2080

However I'm not sure that's a very good reason two+ years later.

Firstly any package that doesn't handle immutable strings properly
could still be compiled using "ocamlopt -unsafe-string".  That option
was removed in 4.13, but is still present in I think 4.11 or 4.12.  So
there's a clear upgrade path to 4.11/4.12 at least.  Secondly every
library that matters has been updated to use immutable strings.  There
are a handful which break (Unison is the only one I recall now) and we
dropped them from Fedora.

So, dear FreeBSD folk, could we have a newer OCaml compiler now?

> (I did my best to build libguestfs & friends on RHEL-7, as you know, but
> it was just impossible. I'm on Fedora 34 now, and have little sympathy
> for other "old" Linux distros left, as a result -- they should *all*
> have upgrade paths, I expect?)
> 
> Thanks
> Laszlo
> 
> > 
> > There are no particularly compelling new features at the moment.
> > 
> > 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 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
> > 
> > Rich.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html




More information about the Libguestfs mailing list