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

gap: install libgap, add packageSet option #54127

Merged
merged 3 commits into from Jan 17, 2019

Conversation

timokau
Copy link
Member

@timokau timokau commented Jan 16, 2019

3 Commits:

add timokau as maintainer

So that I'll be notified on changes which likely impact sage.

install libgap

There are some starts of a make install, but nothing complete yet.
Upstream now ships a libgap as a replacement of the custom one used by
sagemath.

add packageSet option

Two reasons for this:

  • more fine-grained space/functionality tradeoff

  • preparation for the sage 8.6 update, which finally doesn't need a
    downgraded gap anymore but does break when unexpected (non-standard)
    packages are installed. Details: 0ttps://trac.sagemath.org/ticket/26983

The proper way to deal with gap packages would be to create a package
set, package each one individually and have something like gap
equivalent of python.withPackages. I am not willing to do that
however.

Previous discussion about package sets here: #38754

CC @7c6f434c @ChrisJefferson

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

So that I'll be notified on changes which likely impact sage.
@timokau timokau changed the title Gap improvements gap: install libgap, add packageSet option Jan 16, 2019
@timokau
Copy link
Member Author

timokau commented Jan 16, 2019

Notably, gap now defaults to keep only standard packages instead of all packages. That is way less radical than my approach in #38754 and still saves 1G of space.

@ChrisJefferson
Copy link
Contributor

Just to say, I could never get NixOS to work properly, so I don't use it any more. I am a GAP developer so I can answer any GAP-specific questions, independant of NixOS.

@timokau
Copy link
Member Author

timokau commented Jan 17, 2019

Okay. The main question of this PR is: Is it reasonable to default to only keeping "standard" packages, that is:

  • GAPDoc
  • primgrp
  • SmallGrp
  • transgrp
  • atlasrep
  • autpgrp
  • alnuth
  • crisp
  • ctbllib
  • FactInt
  • fga
  • irredsol
  • laguna
  • polenta
  • polycyclic
  • resclasses
  • sophus
  • tomlib

While also offering the option to either keep all packages (current default behaviour but very large) or keep the absolute minimal package set:

  • GAPDoc
  • primgrp
  • SmallGrp
  • transgrp

@7c6f434c
Copy link
Member

@ChrisJefferson I guess you also don't use Nix outside NixOS now; do you want to be removed from the list of maintainers (given that maintainers get pinged for Nix-level-only changes)?

@timokau
Copy link
Member Author

timokau commented Jan 17, 2019

I have now

  • fixed gap-minimal to actually point to the minimal version (gap points to standard)
  • added gap-full
  • fixed gap-libgap-compatible. Not pretty, but will soon be removed anyways (I plan to work on the sage update after this is merged)

@timokau
Copy link
Member Author

timokau commented Jan 17, 2019

If @ChrisJefferson doesn't mind getting pinged on potentially uninteresting changes every once in a while, I think its useful to have someone on board who is involved upstream.

@7c6f434c
Copy link
Member

7c6f434c commented Jan 17, 2019 via email

There are some starts of a `make install`, but nothing complete yet.
Upstream now ships a `libgap` as a replacement of the custom one used by
sagemath.
Two reasons for this:

- more fine-grained space/functionality tradeoff

- preparation for the sage 8.6 update, which finally doesn't need a
  downgraded gap anymore but does break when unexpected (non-standard)
  packages are installed. Details: https://trac.sagemath.org/ticket/26983

The proper way to deal with gap packages would be to create a package
set, package each one individually and have something like gap
equivalent of `python.withPackages`. I am not willing to do that
however.
@timokau
Copy link
Member Author

timokau commented Jan 17, 2019

Didn't properly fix gap-libgap-compatible after all, should work now. I still have to test that sage is also happy with it. I can't wait to remove it altogether.

I'm fine with either the maintainer list or a comment.

@ChrisJefferson
Copy link
Contributor

I would strongly recommend making the "default" be the set of autoloaded packages. While you can operate GAP with just GAPDoc, primgrp, SmallGrp and transgrp, that setup isn't well tested or debugged. Of course, offering it as an option for users who know what they are doing is reasonable, but it shouldn't be any kind of "default".

@timokau
Copy link
Member Author

timokau commented Jan 17, 2019

Yes, that is the case. With this PR there are 3 options:

gap-minimal

offers the bare necessities (->~400MB), i.e.

  • GAPDoc
  • primgrp
  • SmallGrp
  • transgrp
gap (the default)

additionally offers the autoloaded packages (->~700MB)

  • atlasrep
  • autpgrp
  • alnuth
  • crisp
  • ctbllib
  • FactInt
  • fga
  • irredsol
  • laguna
  • polenta
  • polycyclic
  • resclasses
  • sophus
  • tomlib
gap-full

Offers all the packages shipped with the gap distribution (->1.7G)

Does that look good?

@timokau
Copy link
Member Author

timokau commented Jan 17, 2019

I would strongly recommend making the "default" be the set of autoloaded packages

I'll take this as a yes. Rushing this along a bit because the sage 8.5 build has a transient issue on hydra right now that I'm hoping 8.6 will fix. At least there is no point in debugging 8.5 issues anymore.

@timokau timokau merged commit 29e150d into NixOS:master Jan 17, 2019
@timokau timokau deleted the gap-improvements branch January 17, 2019 19:38
@collares collares mentioned this pull request Oct 9, 2022
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants