You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
as such, we benefit from work others put into building standard libraries like GMP, readline, MPFR, etc., and others benefit from the work we invest into packaging things like Flint, normaliz, NTL, etc.
precompiled binaries are only downloaded once and cached as "artifacts"
it ensures that we only have one copy of each used library (right now, we install e.g. Singular twice, once inside Singular.jl, once inside Polymake.jl)
a uniform way to override these binary artifacts so that we can use e.g. a development version of Flint or Singular or GAP or ... while working on our Julia packages
The only real drawback seems to be that JLLs require Julia >= 1.3 but that's already the case for e.g. GAP.jl so not a major loss (with perhaps the exception of LoadFlint.jl, see below). Once the next Julia LTS (1.6?) is out, I hope we can just move to that and all will be well.
Here is a list of components that might benefit from this and what needs to be / what the status is:
Polymake.jl: that one is probably the toughest by far but luckily some really tough people are working on it :-) so it is not completely hopeless... indeed I think @benlorenz created several of the JLLs listed below...
requirements for which there are already JLLs (although I obviously did not check if the respective JLLs are already "good enough"): MPFR, GMP, ncurses, readline, boost, ppl, lrslib, bliss, normaliz, ninja, flint, NTL (with the same caveat as listed above), Singular
In addition, we should carefully document somewhere (possibly separately in each of the packages listed above) how to setup those artifact overrides so that people who work on GAP/Singular/Flint/Polymake/etc. can use dev versions of those.
The text was updated successfully, but these errors were encountered:
This is mostly done. There is still more we can do, in particular, GAP.jl still compiles GAP packages (I plan to work on that). But the overall goal has been reached.
This brings several advantages.
The only real drawback seems to be that JLLs require Julia >= 1.3 but that's already the case for e.g. GAP.jl so not a major loss (with perhaps the exception of LoadFlint.jl, see below). Once the next Julia LTS (1.6?) is out, I hope we can just move to that and all will be well.
Here is a list of components that might benefit from this and what needs to be / what the status is:
Singular_jll
, waiting for it to be merged; however this is currently built without NTLPolymake.jl
: split libpolymake_julia and use artifacts Polymake.jl#308In addition, we should carefully document somewhere (possibly separately in each of the packages listed above) how to setup those artifact overrides so that people who work on GAP/Singular/Flint/Polymake/etc. can use dev versions of those.
The text was updated successfully, but these errors were encountered: