-
Notifications
You must be signed in to change notification settings - Fork 4
Migration of the code in here to FLINT_jll #7
Comments
As I wrote in Nemocas/Nemo.jl#604, I don't know about Windows. |
@thofma thanks for the clarification. Ah yes, I was only looking at Julia 1.4, and JuliaLang/julia#33284 only appeared starting with that. So it'll be in the next LTS (1.6), good. |
So I don't mind keeping the |
If I understand it correctly, this init block will work only if the library is provided by the |
Since Polymake & Singular require julia >= 1.3, we can just build new binaries on Yggdrasil with the adjusted init part and close LoadFlint down. For julia < 1.3, Nemo will do the init itself without LoadFlint, but this won't effect anyone. Of course, for this we have to wait until Polymake works with flint 2.6.0. |
polymake itself does work fine with flint 2.6.0, but unfortunately we cannot easily switch to The current master of Polymake.jl uses LoadFlint 0.2.1 (with FLINT-v0.0.2+0) binaries, but changing that to some LoadFlint 0.3 with FLINT 2.6 would be fine. |
So, even if we move the init code to FLINT_jll, we would still need to have LoadFlint around? OK. I will prepare the PR bumping LoadFlint. Do you mind if we set the FLINT_jll version in the Project.toml as "= v2.6.0", that is, we pin the exact version of the package.?It does not seem that flint follows semver, so doing "v.2.6.0" (which is the same es [2.6.0 - 2..]) seems a bit risky. |
Yes, until I can come up with a good solution for our compilation problem.
Thanks
I am fine with fixing it to 2.6.0, probably having Alternatively, any packages depending on LoadFlint could also add an extra dependency on |
Yes, I like that solution. I will use a very wide compat entry for FLINT_jll here. Then the upstream packages can take care of the compability themselves. |
There is a minor issue that I will monkey patch it somehow by looking up the Alternatively, we fix the |
BinaryBuilder now has support for inserting code into the
__init__
function of JLLs using theinit_block
kwarg (see JuliaPackaging/BinaryBuilder.jl#791). This also available on Yggdrasil (see JuliaPackaging/Yggdrasil#1260).With this, in principle we should now be able to move the initialization code in LoadFlint.jl directly into FLINT_jll; fewer moving parts should then make things easier for us.
Right now, though, I have some doubt about how the initialization should look. We do this in LoadFlint.jl right now:
What I don't understand is why Windows builds and threaded mode are treated differently. Note that
jl_malloc
and friends ought to be thread safe (they just wrapmalloc
etc., plus some code which modifies TLS data).The threaded check was added by @thofma in Nemocas/Nemo.jl@96663d9
The windows check was added by @wbhart in Nemocas/Nemo.jl@77e6667
Unfortunately in both cases it is not clear what the issues were, so...
The text was updated successfully, but these errors were encountered: