about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2024-01-16 21:40:36 +0100
committersternenseemann <sternenseemann@systemli.org>2024-01-18 14:21:23 +0100
commitb53d8e6cdb122b40c1666629da1f7fac0f72a7ec (patch)
treeaa90720c5893671c024d37f1a7de1922af0277f8 /pkgs
parent393ca0ec36dc89104728e0f1959004945b6654c1 (diff)
downloadnixlib-b53d8e6cdb122b40c1666629da1f7fac0f72a7ec.tar
nixlib-b53d8e6cdb122b40c1666629da1f7fac0f72a7ec.tar.gz
nixlib-b53d8e6cdb122b40c1666629da1f7fac0f72a7ec.tar.bz2
nixlib-b53d8e6cdb122b40c1666629da1f7fac0f72a7ec.tar.lz
nixlib-b53d8e6cdb122b40c1666629da1f7fac0f72a7ec.tar.xz
nixlib-b53d8e6cdb122b40c1666629da1f7fac0f72a7ec.tar.zst
nixlib-b53d8e6cdb122b40c1666629da1f7fac0f72a7ec.zip
haskell.compiler.ghc964: init at 9.6.4
https://www.haskell.org/ghc/blog/20240109-ghc-9.6.4-released.html

Not updating the default GHC version yet to prevent a huge rebuild.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/compilers/ghc/9.6.4.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix11
-rw-r--r--pkgs/top-level/haskell-packages.nix23
-rw-r--r--pkgs/top-level/release-haskell.nix1
4 files changed, 35 insertions, 4 deletions
diff --git a/pkgs/development/compilers/ghc/9.6.4.nix b/pkgs/development/compilers/ghc/9.6.4.nix
new file mode 100644
index 000000000000..40a2261180e2
--- /dev/null
+++ b/pkgs/development/compilers/ghc/9.6.4.nix
@@ -0,0 +1,4 @@
+import ./common-hadrian.nix {
+  version = "9.6.4";
+  sha256 = "10bf25b8b07174fdd9868b5c0c56c17c0ef1edcb6247b4b864be933651bfd4c0";
+}
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
index 8bad72bc9a9a..257ca037c5ae 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
@@ -177,12 +177,15 @@ self: super: {
       sha256 = "sha256-b7u9GiIAd2xpOrM0MfILHNb6Nt7070lNRIadn2l3DfQ=";
     })];
   }) super.ConfigFile;
-
+}
+# super.ghc is required to break infinite recursion as Nix is strict in the attrNames
+// lib.optionalAttrs (pkgs.stdenv.hostPlatform.isAarch64 && lib.versionOlder super.ghc.version "9.6.4") {
   # The NCG backend for aarch64 generates invalid jumps in some situations,
   # the workaround on 9.6 is to revert to the LLVM backend (which is used
   # for these sorts of situations even on 9.2 and 9.4).
   # https://gitlab.haskell.org/ghc/ghc/-/issues/23746#note_525318
-  # TODO(@sternenseemann): after ghc963, with ghc964 these can be disabled
-  tls = if pkgs.stdenv.hostPlatform.isAarch64 then self.forceLlvmCodegenBackend super.tls else super.tls;
-  mmark = if pkgs.stdenv.hostPlatform.isAarch64 then self.forceLlvmCodegenBackend super.mmark else super.mmark;
+  inherit (lib.mapAttrs (_: self.forceLlvmCodegenBackend) super)
+    tls
+    mmark
+    ;
 }
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 671d924accae..e120209597dd 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -282,6 +282,24 @@ in {
       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
       llvmPackages = pkgs.llvmPackages_15;
     };
+    ghc964 = callPackage ../development/compilers/ghc/9.6.4.nix {
+      bootPkgs =
+        # For GHC 9.2 no armv7l bindists are available.
+        if stdenv.hostPlatform.isAarch32 then
+          packages.ghc928
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc928
+        else
+          packages.ghc924Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 11 && < 16
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
+      llvmPackages = pkgs.llvmPackages_15;
+    };
     ghc96 = compiler.ghc963;
     ghc981 = callPackage ../development/compilers/ghc/9.8.1.nix {
       bootPkgs =
@@ -444,6 +462,11 @@ in {
       ghc = bh.compiler.ghc963;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
     };
+    ghc964 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc964;
+      ghc = bh.compiler.ghc964;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
+    };
     ghc96 = packages.ghc963;
     ghc981 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc981;
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index 3a5f3780554b..d6f90592c078 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -71,6 +71,7 @@ let
     ghc947
     ghc948
     ghc963
+    ghc964
     ghc981
   ];