On Tue, May 26, 2020 at 11:19:11PM +0800, Andy Li wrote:
Hi Richard,
Thank you for looking into this.
On Tue, May 26, 2020 at 6:51 PM Richard W.M. Jones rjones@redhat.com wrote:
I looked at the packages in Fedora which BR ocaml-extlib and it looks like nothing uses these modules. Haxe seems to have a bundled copy of extlib with these modules, some renamed, it's not very clear what's going on.
extlib was originally written by the same author as Haxe. Historically, Haxe bundled extlib, and it evolved a bit while extlib was taken over by someone else in the OCaml community. Later Haxe adopted using opam for dependency management and it puts its diverged bits of extlib into the "extlib-leftover" folder in Haxe's source code. Haxe 4.1 can only compile with the "minimal" extlib, because the files in "extlib-leftover" conflict with the "full" extlib.
So I think there are three plausible options here:
(1) Use the minimal=1 flag, since nothing directly in Fedora should be affected. But perhaps external users will care, or I made a mistake in my analysis.
For the record, Debian has just converted its extlib package from "full" to "minimal". The only affected package was "headache", but turnout the latest version of "headache" doesn't depend on extlib, so it was resolved by updating the "headache" package to its latest release.
openSUSE also builds its extlib package in minimal mode.
This is the strongest argument for using minimal. We generally attempt to stay close to what the other distros are doing because it reduces friction for upstream developers.
For external users, I have the impression that OCaml devs do not use system OCaml packages but only the OCaml compiler and opam.
I think it depends on the developer and use case. For example if they're hacking on the compiler itself opam is likely the best option. You can't really use system packages for that.
Rich.