summary refs log tree commit diff
path: root/pkgs/top-level/haskell-packages.nix
diff options
context:
space:
mode:
authorUtku Demir <me@utdemir.com>2020-06-19 21:06:42 +1200
committerPeter Simons <simons@cryp.to>2020-08-07 20:34:52 +0200
commited1623421fe0d53645973d50fced54e8c2548121 (patch)
treef8f33edef5f5b7629448eca778b0a2cf206830a4 /pkgs/top-level/haskell-packages.nix
parentf50a34bbef30f08ec80ad54ecded822379c2a362 (diff)
downloadnixpkgs-ed1623421fe0d53645973d50fced54e8c2548121.tar
nixpkgs-ed1623421fe0d53645973d50fced54e8c2548121.tar.gz
nixpkgs-ed1623421fe0d53645973d50fced54e8c2548121.tar.bz2
nixpkgs-ed1623421fe0d53645973d50fced54e8c2548121.tar.lz
nixpkgs-ed1623421fe0d53645973d50fced54e8c2548121.tar.xz
nixpkgs-ed1623421fe0d53645973d50fced54e8c2548121.tar.zst
nixpkgs-ed1623421fe0d53645973d50fced54e8c2548121.zip
ghcHEAD: 8.11.20200505 -> 8.11.20200731
Diffstat (limited to 'pkgs/top-level/haskell-packages.nix')
-rw-r--r--pkgs/top-level/haskell-packages.nix27
1 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 662ba91514d..2882abda739 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -8,6 +8,12 @@ let
     "ghcjs"
     "ghcjs86"
     "integer-simple"
+    "native-bignum"
+    "ghcHEAD"
+  ];
+
+  nativeBignumIncludes = [
+    "ghcHEAD"
   ];
 
   haskellLib = import ../development/haskell-modules/lib.nix {
@@ -97,6 +103,16 @@ in {
     in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
       integerSimpleGhcNames
       (name: compiler.${name}.override { enableIntegerSimple = true; }));
+
+    # Starting from GHC 9, integer-{simple,gmp} is replaced by ghc-bignum
+    # with "native" and "gmp" backends.
+    native-bignum = let
+      nativeBignumGhcNames = pkgs.lib.filter
+        (name: builtins.elem name nativeBignumIncludes)
+        (pkgs.lib.attrNames compiler);
+    in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
+      nativeBignumGhcNames
+      (name: compiler.${name}.override { enableNativeBignum = true; }));
   };
 
   # Default overrides that are applied to all package sets.
@@ -170,5 +186,16 @@ in {
       };
     });
 
+    native-bignum = let
+      nativeBignumGhcNames = pkgs.lib.filter
+        (name: builtins.elem name nativeBignumIncludes)
+        (pkgs.lib.attrNames compiler);
+    in pkgs.lib.genAttrs nativeBignumGhcNames (name: packages.${name}.override {
+      ghc = bh.compiler.native-bignum.${name};
+      buildHaskellPackages = bh.packages.native-bignum.${name};
+      overrides = _self : _super : {
+        integer-gmp = null;
+      };
+    });
   };
 }