From bb0fa95141c88023d15e66c63f45a09f7f59251c Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Tue, 18 Mar 2025 01:14:46 +1300 Subject: [PATCH] Add GHC 9.12.2 --- ci.nix | 3 +- docs/reference/supported-ghc-versions.md | 2 +- lazy-inputs/default.nix | 1 + lazy-inputs/ghc9122/flake.lock | 30 ++++++++++++++++++++ lazy-inputs/ghc9122/flake.nix | 12 ++++++++ overlays/bootstrap.nix | 35 +++++++++++++++++++++++- 6 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 lazy-inputs/ghc9122/flake.lock create mode 100644 lazy-inputs/ghc9122/flake.nix diff --git a/ci.nix b/ci.nix index 91d82f4c33..294f2953d3 100644 --- a/ci.nix +++ b/ci.nix @@ -61,7 +61,7 @@ ghc96 = true; ghc98 = true; ghc910 = true; - ghc9121 = true; + ghc912 = true; } // nixpkgs.lib.optionalAttrs (nixpkgsName == "unstable") { ghc96 = false; ghc96X = true; @@ -70,7 +70,6 @@ ghc910 = true; ghc910llvm = true; ghc912 = true; - ghc912X = true; ghc913 = true; }))); crossSystems = nixpkgsName: nixpkgs: compiler-nix-name: diff --git a/docs/reference/supported-ghc-versions.md b/docs/reference/supported-ghc-versions.md index b6fa431b57..cf49c6486f 100644 --- a/docs/reference/supported-ghc-versions.md +++ b/docs/reference/supported-ghc-versions.md @@ -25,7 +25,7 @@ really should use an instance of Nixpkgs provided by `haskell.nix` itself. | unstable | `nixpkgs-unstable` | 9.6.6 | `ghc96` or `ghc966` | Yes | | unstable | `nixpkgs-unstable` | 9.8.4 | `ghc98` or `ghc984` | Yes | | unstable | `nixpkgs-unstable` | 9.10.1 | `ghc910` or `ghc9101` | Yes | -| unstable | `nixpkgs-unstable` | 9.12.1 | `ghc912` or `ghc9121` | Yes | +| unstable | `nixpkgs-unstable` | 9.12.2 | `ghc912` or `ghc9122` | Yes | See [ci.nix](https://github.com/input-output-hk/haskell.nix/blob/master/ci.nix) for the source of truth about what is built and tested (in the off chance this diff --git a/lazy-inputs/default.nix b/lazy-inputs/default.nix index 1e626d0335..ad4edd4338 100644 --- a/lazy-inputs/default.nix +++ b/lazy-inputs/default.nix @@ -36,6 +36,7 @@ in { inherit ((callFlake { pkgs = final; src = ./ghc984; }).defaultNix) ghc984; inherit ((callFlake { pkgs = final; src = ./ghc9101; }).defaultNix) ghc9101; 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; } // prev.haskell-nix.sources; diff --git a/lazy-inputs/ghc9122/flake.lock b/lazy-inputs/ghc9122/flake.lock new file mode 100644 index 0000000000..d3035ce10c --- /dev/null +++ b/lazy-inputs/ghc9122/flake.lock @@ -0,0 +1,30 @@ +{ + "nodes": { + "ghc9122": { + "flake": false, + "locked": { + "lastModified": 1741786638, + "narHash": "sha256-CsUKRGjJ68QFiLPqQkqhOVMnUbTm1BEz01hnNeZqctc=", + "ref": "ghc-9.12.2-iog", + "rev": "383be28ffdddf65b57b7b111bfc89808b4229ebc", + "revCount": 67542, + "submodules": true, + "type": "git", + "url": "https://github.com/stable-haskell/ghc" + }, + "original": { + "ref": "ghc-9.12.2-iog", + "submodules": true, + "type": "git", + "url": "https://github.com/stable-haskell/ghc" + } + }, + "root": { + "inputs": { + "ghc9122": "ghc9122" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/lazy-inputs/ghc9122/flake.nix b/lazy-inputs/ghc9122/flake.nix new file mode 100644 index 0000000000..679e4ff295 --- /dev/null +++ b/lazy-inputs/ghc9122/flake.nix @@ -0,0 +1,12 @@ +{ + description = "Lazy Input for Haskell.nix"; + + inputs = { + ghc9122 = { + flake = false; + url = "git+https://github.com/stable-haskell/ghc?ref=ghc-9.12.2-iog&submodules=1"; + }; + }; + + outputs = inputs: inputs; +} diff --git a/overlays/bootstrap.nix b/overlays/bootstrap.nix index 46f3d48617..f103b891ce 100644 --- a/overlays/bootstrap.nix +++ b/overlays/bootstrap.nix @@ -11,7 +11,7 @@ let "9.6" = "9.6.6"; "9.8" = "9.8.4"; "9.10" = "9.10.1"; - "9.12" = "9.12.1"; + "9.12" = "9.12.2"; }; gitInputs = { ghc96X = "9.6.7"; @@ -1000,6 +1000,39 @@ in { ghc-patches = ghc-patches "9.12.1"; }); + ghc9122 = traceWarnOld "9.12" (final.callPackage ../compiler/ghc { + extra-passthru = { buildGHC = final.buildPackages.haskell-nix.compiler.ghc9122; }; + + bootPkgs = bootPkgsGhc94 // { + ghc = if final.stdenv.buildPlatform != final.stdenv.targetPlatform + then final.buildPackages.buildPackages.haskell-nix.compiler.ghc9122 + else final.buildPackages.buildPackages.haskell.compiler.ghc9122 + or final.buildPackages.buildPackages.haskell.compiler.ghc9121 + or final.buildPackages.buildPackages.haskell.compiler.ghc9101 + or final.buildPackages.buildPackages.haskell.compiler.ghc984 + or final.buildPackages.buildPackages.haskell.compiler.ghc983 + or final.buildPackages.buildPackages.haskell.compiler.ghc982 + or final.buildPackages.buildPackages.haskell.compiler.ghc981 + or final.buildPackages.buildPackages.haskell.compiler.ghc966 + or final.buildPackages.buildPackages.haskell.compiler.ghc965 + or final.buildPackages.buildPackages.haskell.compiler.ghc964 + or final.buildPackages.buildPackages.haskell.compiler.ghc963 + or final.buildPackages.buildPackages.haskell.compiler.ghc962 + or final.buildPackages.buildPackages.haskell.compiler.ghc945 + or final.buildPackages.buildPackages.haskell.compiler.ghc944 + or final.buildPackages.buildPackages.haskell.compiler.ghc943; + }; + inherit sphinx; + + buildLlvmPackages = final.buildPackages.llvmPackages_15; + llvmPackages = final.llvmPackages_15; + + src-spec.file = final.haskell-nix.sources.ghc9122; + src-spec.version = "9.12.2"; + src-spec.needsBooting = true; + + ghc-patches = ghc-patches "9.12.2"; + }); } // (__listToAttrs (final.lib.mapAttrsToList (source-name: ver: let src = final.haskell-nix.sources.${source-name};