Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate all Oscar related Julia packages to use JLLs #109

Closed
18 tasks done
fingolfin opened this issue Jun 19, 2020 · 1 comment
Closed
18 tasks done

Migrate all Oscar related Julia packages to use JLLs #109

fingolfin opened this issue Jun 19, 2020 · 1 comment

Comments

@fingolfin
Copy link
Member

fingolfin commented Jun 19, 2020

This brings several advantages.

  • it is the way forward from the Julia community
  • 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:

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.

@fingolfin
Copy link
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant