-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
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
ghc: support building with integer-simple #22121
Conversation
a6a23a3
to
2d309e3
Compare
I also added some documentation to the manual. |
A few questions:
@peti any ideas? |
2d309e3
to
1013ebd
Compare
If the flag enableIntegerSimple is true GHC will be build with the GPL-free but slower integer-simple library instead of the faster but GPLed integer-gmp library.
1013ebd
to
e1e19a0
Compare
I pushed another commit that answers my first and second questions. I provide convenient names ro get a GHC compiler build with The attribute Similarly, the attribute |
74c2a72
to
8babee7
Compare
The attribute `pkgs.haskell.compiler.integer-simple."${ghcVersion}"` provides a GHC compiler build with `integer-simple`. Similarly, the attribute `pkgs.haskell.packages.integer-simple."${ghcVersion}"` provides a package set supporting `integer-simple`.
8babee7
to
2f75371
Compare
This is some fine work. Thank you very much for the contribution. I've merged the patches to |
Thanks Peter. Do you think it makes sense to set Offtopic: I would also prefer to have a binary cache available for packages build with profiling ( |
The jobset status looks OK. Mergeable then? (I'd like all larger rebuilds merged now to staging so it can be stabilized without too much rebuilding.) |
I pushed a commit that does that in 47a604a41807dd4221a354a095715c7320008d6e. I think we'll use that for running test builds right now, but it's probably overkill to enable those builds on hydra.nixos.org for all GHC versions we have. Who needs GHC 7.2.2 anyway -- with or without
|
@vcunat, give us one more day, please. I have one minor change I'd like to see implemented before we commit. |
@@ -1,6 +1,16 @@ | |||
{ pkgs, callPackage, stdenv, buildPlatform, targetPlatform }: | |||
|
|||
rec { | |||
let # These are the GHC versions that support building with integer-simple. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This list contains every compiler we have except 7.0.4, I believe. Assuming that newer versions released in the future will probably support this feature, too, would it make sense to invert this logic, i.e. to list those compilers that don't support a gmp
-less build? That would make this list shorter and it would remove the need to do manual maintenance in the future because new compiler versions are implicitly supported the moment we add them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peti something like this:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very cool, thank you. Added to haskell-updates
in a7fffbf808572d1afd40a10f644eb213116a3bad.
OK, in case Hydra gets idle, we can "build staging first" and eventually even exchange the merge order. |
The integer-simple variant of GHC 7.6.3 does not compile: http://hydra.nixos.org/build/47389866/nixlog/1/raw. There is some code that expects functions like |
@peti regarding GHC-7.6.3, maybe it's best to put |
If the flag
enableIntegerSimple
is true GHC will be build with the GPL-free but slowerinteger-simple
library instead of the faster but GPLedinteger-gmp
library.