diff --git a/ci.nix b/ci.nix index bc2ae32c98..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 "x86_64-linux" +, evalSystem ? "aarch64-darwin" # NOTE: we apply checkMaterialization when defining nixpkgsArgs , haskellNix ? import ./default.nix { inherit system ; } }: @@ -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/compiler/ghc/default.nix b/compiler/ghc/default.nix index 775040f4ca..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"; @@ -646,7 +651,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; 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" ]); 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/ghc912X/flake.lock deleted file mode 100644 index e3ba39af8b..0000000000 --- a/lazy-inputs/ghc912X/flake.lock +++ /dev/null @@ -1,30 +0,0 @@ -{ - "nodes": { - "ghc912X": { - "flake": false, - "locked": { - "lastModified": 1739998238, - "narHash": "sha256-CgmWnocb0K2fy89koME7H2tTFEOhjxZ9G+C+PQDKoZA=", - "ref": "ghc-9.12", - "rev": "a73d6c7f5d18dc6b5366a9b87a899978fadfb2ab", - "revCount": 67541, - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" - }, - "original": { - "ref": "ghc-9.12", - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" - } - }, - "root": { - "inputs": { - "ghc912X": "ghc912X" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/lazy-inputs/ghc914X/flake.lock b/lazy-inputs/ghc914X/flake.lock new file mode 100644 index 0000000000..1367e019dd --- /dev/null +++ b/lazy-inputs/ghc914X/flake.lock @@ -0,0 +1,30 @@ +{ + "nodes": { + "ghc914X": { + "flake": false, + "locked": { + "lastModified": 1757057465, + "narHash": "sha256-3lP5S2JR6Cq+2SAEf1LSX//jmfDgNCZTaCBvBHCV8xY=", + "ref": "stable-ghc-9.14", + "rev": "a1edbb57a9febd57dc1c7c4089a4d3c7a3e27bff", + "revCount": 68327, + "submodules": true, + "type": "git", + "url": "https://github.com/stable-haskell/ghc" + }, + "original": { + "ref": "stable-ghc-9.14", + "submodules": true, + "type": "git", + "url": "https://github.com/stable-haskell/ghc" + } + }, + "root": { + "inputs": { + "ghc914X": "ghc914X" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/lazy-inputs/ghc912X/flake.nix b/lazy-inputs/ghc914X/flake.nix similarity index 54% rename from lazy-inputs/ghc912X/flake.nix rename to lazy-inputs/ghc914X/flake.nix index ca7a84eea8..e137f31284 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://github.com/stable-haskell/ghc?ref=stable-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..68f5671b23 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-SFTGXGt4j+xFhBKp9u+N3JmOKgrnKGPq0emgZWBKo74=", "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/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) ( diff --git a/overlays/bootstrap.nix b/overlays/bootstrap.nix index 26f4f5fc4d..a5ff6bba73 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 = @@ -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)