From 3d5d5ebc447623d59e1c35aa706f54dcfcd00e30 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 1 Sep 2025 12:23:29 +1200 Subject: [PATCH 01/11] Add ghc914X and ghc915 --- ci.nix | 3 ++- lazy-inputs/default.nix | 4 ++-- lazy-inputs/{ghc912X => ghc914X}/flake.lock | 16 ++++++++-------- lazy-inputs/{ghc912X => ghc914X}/flake.nix | 4 ++-- lazy-inputs/{ghc913 => ghc915}/flake.lock | 12 ++++++------ lazy-inputs/{ghc913 => ghc915}/flake.nix | 2 +- overlays/bootstrap.nix | 4 ++-- 7 files changed, 23 insertions(+), 22 deletions(-) rename lazy-inputs/{ghc912X => ghc914X}/flake.lock (56%) rename lazy-inputs/{ghc912X => ghc914X}/flake.nix (63%) rename lazy-inputs/{ghc913 => ghc915}/flake.lock (64%) rename lazy-inputs/{ghc913 => ghc915}/flake.nix (92%) diff --git a/ci.nix b/ci.nix index bc2ae32c98..66ed31e31a 100644 --- a/ci.nix +++ b/ci.nix @@ -75,7 +75,8 @@ ghc910llvm = false; ghc912 = true; ghc912llvm = true; - ghc913 = true; + ghc914X = true; + ghc915 = true; }))); crossSystems = nixpkgsName: nixpkgs: compiler-nix-name: # We need to use the actual nixpkgs version we're working with here, since the values diff --git a/lazy-inputs/default.nix b/lazy-inputs/default.nix index 1fe105262f..3e5da7a07f 100644 --- a/lazy-inputs/default.nix +++ b/lazy-inputs/default.nix @@ -39,8 +39,8 @@ in { inherit ((callFlake { pkgs = final; src = ./ghc9102; }).defaultNix) ghc9102; inherit ((callFlake { pkgs = final; src = ./ghc9121; }).defaultNix) ghc9121; inherit ((callFlake { pkgs = final; src = ./ghc9122; }).defaultNix) ghc9122; - inherit ((callFlake { pkgs = final; src = ./ghc912X; }).defaultNix) ghc912X; - inherit ((callFlake { pkgs = final; src = ./ghc913; }).defaultNix) ghc913; + inherit ((callFlake { pkgs = final; src = ./ghc914X; }).defaultNix) ghc914X; + inherit ((callFlake { pkgs = final; src = ./ghc915; }).defaultNix) ghc915; inherit ((callFlake { pkgs = final; src = ./libffi-wasm; }).defaultNix) libffi-wasm; } // prev.haskell-nix.sources; }; diff --git a/lazy-inputs/ghc912X/flake.lock b/lazy-inputs/ghc914X/flake.lock similarity index 56% rename from lazy-inputs/ghc912X/flake.lock rename to lazy-inputs/ghc914X/flake.lock index e3ba39af8b..f656c3009b 100644 --- a/lazy-inputs/ghc912X/flake.lock +++ b/lazy-inputs/ghc914X/flake.lock @@ -1,19 +1,19 @@ { "nodes": { - "ghc912X": { + "ghc914X": { "flake": false, "locked": { - "lastModified": 1739998238, - "narHash": "sha256-CgmWnocb0K2fy89koME7H2tTFEOhjxZ9G+C+PQDKoZA=", - "ref": "ghc-9.12", - "rev": "a73d6c7f5d18dc6b5366a9b87a899978fadfb2ab", - "revCount": 67541, + "lastModified": 1755570652, + "narHash": "sha256-FrtOFm4OKwostoVocUP7qm+9NL7mNk/162W1KkxBwmE=", + "ref": "ghc-9.14", + "rev": "fca42ecfd273c8db52f43084a9c5e5b50507fa90", + "revCount": 68269, "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" }, "original": { - "ref": "ghc-9.12", + "ref": "ghc-9.14", "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" @@ -21,7 +21,7 @@ }, "root": { "inputs": { - "ghc912X": "ghc912X" + "ghc914X": "ghc914X" } } }, diff --git a/lazy-inputs/ghc912X/flake.nix b/lazy-inputs/ghc914X/flake.nix similarity index 63% rename from lazy-inputs/ghc912X/flake.nix rename to lazy-inputs/ghc914X/flake.nix index ca7a84eea8..b83a59e8ff 100644 --- a/lazy-inputs/ghc912X/flake.nix +++ b/lazy-inputs/ghc914X/flake.nix @@ -2,9 +2,9 @@ description = "Lazy Input for Haskell.nix"; inputs = { - ghc912X = { + ghc914X = { flake = false; - url = "git+https://gitlab.haskell.org/ghc/ghc?ref=ghc-9.12&submodules=1"; + url = "git+https://gitlab.haskell.org/ghc/ghc?ref=ghc-9.14&submodules=1"; }; }; diff --git a/lazy-inputs/ghc913/flake.lock b/lazy-inputs/ghc915/flake.lock similarity index 64% rename from lazy-inputs/ghc913/flake.lock rename to lazy-inputs/ghc915/flake.lock index d73af49a22..1043aedcb6 100644 --- a/lazy-inputs/ghc913/flake.lock +++ b/lazy-inputs/ghc915/flake.lock @@ -1,13 +1,13 @@ { "nodes": { - "ghc913": { + "ghc915": { "flake": false, "locked": { - "lastModified": 1748027596, - "narHash": "sha256-5WU40R26lwl0lRTkEnWui8CEikZ9gRnbiOa4aw/GbI4=", + "lastModified": 1756545051, + "narHash": "sha256-YJNqnJTJwW/WCubGpwMl6YcbNcC8w44O9GKvIcUNfj0=", "ref": "refs/heads/master", - "rev": "17db44c5b32fff82ea988fa4f1a233d1a27bdf57", - "revCount": 68114, + "rev": "fb9cc8825f37b1d7f1bc19d5a5c1425c7613e81a", + "revCount": 68375, "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" @@ -20,7 +20,7 @@ }, "root": { "inputs": { - "ghc913": "ghc913" + "ghc915": "ghc915" } } }, diff --git a/lazy-inputs/ghc913/flake.nix b/lazy-inputs/ghc915/flake.nix similarity index 92% rename from lazy-inputs/ghc913/flake.nix rename to lazy-inputs/ghc915/flake.nix index db172cc218..41c133da0e 100644 --- a/lazy-inputs/ghc913/flake.nix +++ b/lazy-inputs/ghc915/flake.nix @@ -2,7 +2,7 @@ description = "Lazy Input for Haskell.nix"; inputs = { - ghc913 = { + ghc915 = { flake = false; url = "git+https://gitlab.haskell.org/ghc/ghc?submodules=1"; }; diff --git a/overlays/bootstrap.nix b/overlays/bootstrap.nix index 26f4f5fc4d..fec572c262 100644 --- a/overlays/bootstrap.nix +++ b/overlays/bootstrap.nix @@ -15,8 +15,8 @@ let }; gitInputs = { ghc96X = "9.6.7"; - ghc912X = "9.12.1"; - ghc913 = "9.13"; + ghc914X = "9.14.0"; + ghc915 = "9.15"; }; versionToNixName = v: "ghc${builtins.replaceStrings ["."] [""] v}"; compilerNameMap = From b3e8495aa073dc270280430a9821aea08826ebe3 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 1 Sep 2025 13:44:56 +1200 Subject: [PATCH 02/11] Use github:stable-haskell/ghc/stable-ghc-9.14 --- lazy-inputs/ghc914X/flake.lock | 16 ++++++++-------- lazy-inputs/ghc914X/flake.nix | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lazy-inputs/ghc914X/flake.lock b/lazy-inputs/ghc914X/flake.lock index f656c3009b..b149fc3826 100644 --- a/lazy-inputs/ghc914X/flake.lock +++ b/lazy-inputs/ghc914X/flake.lock @@ -3,20 +3,20 @@ "ghc914X": { "flake": false, "locked": { - "lastModified": 1755570652, - "narHash": "sha256-FrtOFm4OKwostoVocUP7qm+9NL7mNk/162W1KkxBwmE=", - "ref": "ghc-9.14", - "rev": "fca42ecfd273c8db52f43084a9c5e5b50507fa90", - "revCount": 68269, + "lastModified": 1756642010, + "narHash": "sha256-/D0sbA0IZfriRVm33aSSI8BfNWVm6iN55c2BWvD8o9c=", + "ref": "stable-ghc-9.14", + "rev": "cd3acfefd04e31fb8964e9fcc44bac35600ec647", + "revCount": 68289, "submodules": true, "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "url": "https://github.com/stable-haskell/ghc" }, "original": { - "ref": "ghc-9.14", + "ref": "stable-ghc-9.14", "submodules": true, "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "url": "https://github.com/stable-haskell/ghc" } }, "root": { diff --git a/lazy-inputs/ghc914X/flake.nix b/lazy-inputs/ghc914X/flake.nix index b83a59e8ff..e137f31284 100644 --- a/lazy-inputs/ghc914X/flake.nix +++ b/lazy-inputs/ghc914X/flake.nix @@ -4,7 +4,7 @@ inputs = { ghc914X = { flake = false; - url = "git+https://gitlab.haskell.org/ghc/ghc?ref=ghc-9.14&submodules=1"; + url = "git+https://github.com/stable-haskell/ghc?ref=stable-ghc-9.14&submodules=1"; }; }; From 15ff6c15156f0d7c86e85f1a178452f25cab2944 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 1 Sep 2025 13:56:31 +1200 Subject: [PATCH 03/11] Enable aarch64-linux --- flake.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/flake.nix b/flake.nix index b1fa5d5af3..caa514784b 100644 --- a/flake.nix +++ b/flake.nix @@ -103,6 +103,7 @@ systems = [ "x86_64-linux" ] ++ (if runningHydraEvalTest then [ ] else [ + "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]); From a15bb393b81498ab3baa4cc3fc6d636567d91b8a Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 4 Sep 2025 15:10:50 +1200 Subject: [PATCH 04/11] Fix hashes --- lazy-inputs/ghc914X/flake.lock | 2 +- lazy-inputs/ghc915/flake.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lazy-inputs/ghc914X/flake.lock b/lazy-inputs/ghc914X/flake.lock index b149fc3826..af05853c12 100644 --- a/lazy-inputs/ghc914X/flake.lock +++ b/lazy-inputs/ghc914X/flake.lock @@ -4,7 +4,7 @@ "flake": false, "locked": { "lastModified": 1756642010, - "narHash": "sha256-/D0sbA0IZfriRVm33aSSI8BfNWVm6iN55c2BWvD8o9c=", + "narHash": "sha256-xhB+vWsq7a3/U1Rt+WtStg4XYZYPBtLUM7UtqjfgINQ=", "ref": "stable-ghc-9.14", "rev": "cd3acfefd04e31fb8964e9fcc44bac35600ec647", "revCount": 68289, diff --git a/lazy-inputs/ghc915/flake.lock b/lazy-inputs/ghc915/flake.lock index 1043aedcb6..68f5671b23 100644 --- a/lazy-inputs/ghc915/flake.lock +++ b/lazy-inputs/ghc915/flake.lock @@ -4,7 +4,7 @@ "flake": false, "locked": { "lastModified": 1756545051, - "narHash": "sha256-YJNqnJTJwW/WCubGpwMl6YcbNcC8w44O9GKvIcUNfj0=", + "narHash": "sha256-SFTGXGt4j+xFhBKp9u+N3JmOKgrnKGPq0emgZWBKo74=", "ref": "refs/heads/master", "rev": "fb9cc8825f37b1d7f1bc19d5a5c1425c7613e81a", "revCount": 68375, From 6b796a881425578705a1a2a8b9c9cb0498f9af4c Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 5 Sep 2025 11:44:01 +1200 Subject: [PATCH 05/11] Include autoreconf --- compiler/ghc/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/ghc/default.nix b/compiler/ghc/default.nix index 775040f4ca..b963c0faa8 100644 --- a/compiler/ghc/default.nix +++ b/compiler/ghc/default.nix @@ -646,7 +646,7 @@ haskell-nix.haskellLib.makeCompilerDeps (stdenv.mkDerivation (rec { nativeBuildInputs = [ perl autoconf automake m4 python3 sphinx ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour - ] ++ lib.optional (patches != []) autoreconfHook + autoreconfHook ] ++ lib.optional useLdLld llvmPackages.bintools ++ lib.optional (targetPlatform.isWasm) nodejs; From 210536badff837b53bbde634aef5c2720f61a156 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 5 Sep 2025 11:51:11 +1200 Subject: [PATCH 06/11] Disable patch for now --- overlays/bootstrap.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/overlays/bootstrap.nix b/overlays/bootstrap.nix index fec572c262..a5ff6bba73 100644 --- a/overlays/bootstrap.nix +++ b/overlays/bootstrap.nix @@ -336,7 +336,7 @@ in { ++ onGhcjs (from "9.12" ./patches/ghc/ghc-9.12-ghcjs-rts-mem-heap8.patch) # Fix for `fatal error: 'rts/Types.h' file not found` when building `primitive` - ++ onGhcjs (from "9.13" ./patches/ghc/ghc-9.13-ghcjs-rts-types.patch) + ++ onGhcjs (fromUntil "9.13" "9.14" ./patches/ghc/ghc-9.13-ghcjs-rts-types.patch) ++ onGhcjs (fromUntil "9.6.7" "9.7" ./patches/ghc/ghc-9.6-js-support-this-unit-id-10819.patch) From 68696840b9f91603b78bc2043bb02bd258cec723 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 5 Sep 2025 11:51:38 +1200 Subject: [PATCH 07/11] Fix for ghc 9.14 dummy ghc --- lib/call-cabal-project-to-nix.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/call-cabal-project-to-nix.nix b/lib/call-cabal-project-to-nix.nix index 34dec9b988..8c8bc0c5a6 100644 --- a/lib/call-cabal-project-to-nix.nix +++ b/lib/call-cabal-project-to-nix.nix @@ -512,7 +512,7 @@ let PKGS+=" ${name}" LAST_PKG="${name}" fi - '') (pkgs.haskell-nix.ghc-pre-existing ghc)) + '') (pkgs.lib.filter (n: n != "system-cxx-std-lib") (pkgs.haskell-nix.ghc-pre-existing ghc))) } ${ # There is no .cabal file for system-cxx-std-lib pkgs.lib.optionalString (builtins.compareVersions ghc.version "9.2" >= 0) ( From cfc0ac49c2e9a6578f5b1ccc637d03cc109139e6 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 5 Sep 2025 15:23:52 +1200 Subject: [PATCH 08/11] Switch CI eval to `aarch64-darwin` --- ci.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci.nix b/ci.nix index 66ed31e31a..97019cbf8a 100644 --- a/ci.nix +++ b/ci.nix @@ -3,7 +3,7 @@ { ifdLevel # This is passed in from flake.nix , checkMaterialization ? false , system ? builtins.currentSystem -, evalSystem ? builtins.currentSystem or "x86_64-linux" +, evalSystem ? builtins.currentSystem or "aarch64-darwin" # NOTE: we apply checkMaterialization when defining nixpkgsArgs , haskellNix ? import ./default.nix { inherit system ; } }: From e11cc24f6d8b6fafdf43100eeff6cfda67f9d4cb Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 5 Sep 2025 15:37:48 +1200 Subject: [PATCH 09/11] Switch CI eval to `aarch64-darwin` --- ci.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci.nix b/ci.nix index 97019cbf8a..91c02bcc50 100644 --- a/ci.nix +++ b/ci.nix @@ -3,7 +3,7 @@ { ifdLevel # This is passed in from flake.nix , checkMaterialization ? false , system ? builtins.currentSystem -, evalSystem ? builtins.currentSystem or "aarch64-darwin" +, evalSystem ? "aarch64-darwin" # NOTE: we apply checkMaterialization when defining nixpkgsArgs , haskellNix ? import ./default.nix { inherit system ; } }: From 0ca9c5700bb967fecb1d847757295bbdc3f6fcbb Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 5 Sep 2025 21:13:05 +1200 Subject: [PATCH 10/11] Add ghc-boot-th-next --- compiler/ghc/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compiler/ghc/default.nix b/compiler/ghc/default.nix index b963c0faa8..ff1bdf8362 100644 --- a/compiler/ghc/default.nix +++ b/compiler/ghc/default.nix @@ -601,6 +601,11 @@ haskell-nix.haskellLib.makeCompilerDeps (stdenv.mkDerivation (rec { # The official ghc 9.2.3 tarball requires booting. + lib.optionalString (ghc-version == "9.2.3" || ghc-version == "9.8.20230704" || src-spec.needsBooting or false) '' python3 ./boot + '' + lib.optionalString (builtins.compareVersions ghc-version "9.14" > 0) '' + mkdir -p libraries/ghc-boot-th-next + cp libraries/ghc-boot-th/ghc-boot-th.cabal.in libraries/ghc-boot-th-next/ghc-boot-th-next.cabal.in + substituteInPlace libraries/ghc-boot-th-next/ghc-boot-th-next.cabal.in \ + --replace-fail "ghc-boot-th" "ghc-boot-th-next" ''; configurePlatforms = [ "build" "host" ] ++ lib.optional (!targetPlatform.isGhcjs) "target"; From 09e16cffb856151256631575367f5d1bfe431e9c Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 5 Sep 2025 21:16:19 +1200 Subject: [PATCH 11/11] bump ghc914X --- lazy-inputs/ghc914X/flake.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lazy-inputs/ghc914X/flake.lock b/lazy-inputs/ghc914X/flake.lock index af05853c12..1367e019dd 100644 --- a/lazy-inputs/ghc914X/flake.lock +++ b/lazy-inputs/ghc914X/flake.lock @@ -3,11 +3,11 @@ "ghc914X": { "flake": false, "locked": { - "lastModified": 1756642010, - "narHash": "sha256-xhB+vWsq7a3/U1Rt+WtStg4XYZYPBtLUM7UtqjfgINQ=", + "lastModified": 1757057465, + "narHash": "sha256-3lP5S2JR6Cq+2SAEf1LSX//jmfDgNCZTaCBvBHCV8xY=", "ref": "stable-ghc-9.14", - "rev": "cd3acfefd04e31fb8964e9fcc44bac35600ec647", - "revCount": 68289, + "rev": "a1edbb57a9febd57dc1c7c4089a4d3c7a3e27bff", + "revCount": 68327, "submodules": true, "type": "git", "url": "https://github.com/stable-haskell/ghc"