On Wed, Sep 06, 2023 at 05:02:06PM -0500, Eric Blake wrote:
> Okay, I'll merge in that aspect of my original along with
your other
> improvements, and push something soon. Fingers crossed that we'll
> finally get a green CI run today.
Now in as 75979812. Still not a green CI run; but the BSD builds now
work. The only remaining holdout is OpenSUSE Leap 15.5, where OCaml is
stuck at 4.06 and therefore lacks List.to_seq |> Map.of_seq. I'm not
sure if it is worth trying to copy the 4.07 implementations just so we
can keep the two sorted name maps (one of the reasons you WANT to use
a standard library implementation of Map is that writing a correct
self-balancing binary tree implementation is not trivial). But do we
need the resulting sets of APIs to be sorted by name? If we just
stick to constructs in 4.06, we may be hit with slower O(n^2) list
filtering when comparing which APIs go in which of the two lists (sync
vs async), but is our list of APIs so large that it actually makes a
noticeable difference to compile time?
Rich, do you have any more ideas beyond Erik's recommendation [1] of
just dropping OpenSUSE 15.5 and focusing only on Tumbleweed?
[1]
https://gitlab.com/nbdkit/libnbd/-/merge_requests/5#note_1535510343
Thanks to stackoverflow [2], I came up with an alternative (using
List.fold_left to build up from NameMap.empty through repeated
NameMap.add, without any intermediate representation in Seq). As of
commit db9f6bf6, we finally have green CI in libnbd again!
[2]
https://stackoverflow.com/questions/61220655/how-to-initialize-map-from-l...
--
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:
qemu.org |
libguestfs.org