diff --git a/ci.nix b/ci.nix index d99f9c3bc0..7ff0476808 100644 --- a/ci.nix +++ b/ci.nix @@ -82,30 +82,30 @@ let lib = nixpkgs.lib; in lib.optionalAttrs (nixpkgsName == "unstable" && (__match ".*llvm" compiler-nix-name == null) - && ((system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc884" "ghc902" "ghc928" "ghc948"]) - || (system == "aarch64-linux" && !builtins.elem compiler-nix-name ["ghc884" "ghc902" "ghc928" "ghc948"]) - || (system == "x86_64-darwin" && !builtins.elem compiler-nix-name ["ghc884" "ghc902" "ghc928" "ghc948" "ghc966" "ghc982" "ghc983" "ghc984"]) - || (system == "aarch64-darwin" && !builtins.elem compiler-nix-name ["ghc884" "ghc902" "ghc928" "ghc948" "ghc966" "ghc982" "ghc983" "ghc984"]) + && ((system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948"]) + || (system == "aarch64-linux" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948"]) + || (system == "x86_64-darwin" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948" "ghc966" "ghc982" "ghc983" "ghc984"]) + || (system == "aarch64-darwin" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948" "ghc966" "ghc982" "ghc983" "ghc984"]) )) { inherit (lib.systems.examples) ghcjs; } // lib.optionalAttrs ( (__match ".*llvm" compiler-nix-name == null) - && ((system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc884" "ghc902" "ghc928" "ghc91220241014" "ghc91320241101"]) # Including GHC HEAD here because the patches for rts/RtsSymbols.c no longer apply and mingwW64 GHC build fails without them + && ((system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc902" "ghc928"]) # Including GHC HEAD here because the patches for rts/RtsSymbols.c no longer apply and mingwW64 GHC build fails without them || (system == "x86_64-darwin" && builtins.elem compiler-nix-name []))) { # TODO add ghc versions when we have more darwin build capacity inherit (lib.systems.examples) mingwW64; } // lib.optionalAttrs (nixpkgsName == "unstable" && (__match ".*llvm" compiler-nix-name == null) - && ((system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc884" "ghc8107" "ghc902" "ghc928" "ghc948"]) + && ((system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc8107" "ghc902" "ghc928" "ghc948"]) || (system == "x86_64-darwin" && builtins.elem compiler-nix-name []))) { # TODO add ghc versions when we have more darwin build capacity inherit (lib.systems.examples) ucrt64; - } // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName == "unstable" && !builtins.elem compiler-nix-name ["ghc884" "ghc902" "ghc928" "ghc948"]) { + } // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName == "unstable" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948"]) { # Musl cross only works on linux # aarch64 cross only works on linux inherit (lib.systems.examples) musl64 aarch64-multiplatform; } // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName == "unstable" && builtins.elem compiler-nix-name ["ghc927" "ghc928"]) { # TODO fix this for the compilers we build with hadrian (ghc >=9.4) inherit (lib.systems.examples) aarch64-multiplatform-musl; - } // lib.optionalAttrs (system == "aarch64-linux" && nixpkgsName == "unstable" && !builtins.elem compiler-nix-name ["ghc884" "ghc8107" "ghc902"]) { + } // lib.optionalAttrs (system == "aarch64-linux" && nixpkgsName == "unstable" && !builtins.elem compiler-nix-name ["ghc8107" "ghc902"]) { inherit (lib.systems.examples) aarch64-multiplatform-musl; }; isDisabled = d: d.meta.disabled or false; diff --git a/lazy-inputs/ghc912X/flake.lock b/lazy-inputs/ghc912X/flake.lock index 16fbfe7e42..dbf6108445 100644 --- a/lazy-inputs/ghc912X/flake.lock +++ b/lazy-inputs/ghc912X/flake.lock @@ -3,11 +3,11 @@ "ghc912X": { "flake": false, "locked": { - "lastModified": 1728948341, - "narHash": "sha256-yeIet7pwSkOngSTcm/E9XJAZhOalrfSbjVMOri/m1Ak=", + "lastModified": 1732798405, + "narHash": "sha256-gYYJMwnnPFHHbSc2SkJldBRl5ECZg3/muFAd21xJqfM=", "ref": "ghc-9.12", - "rev": "ca2b21c3429a5ff780cb6c58c33c171a3c0af82b", - "revCount": 67355, + "rev": "5d938345841e3dff6a1dfa129202ba939a4564c9", + "revCount": 67485, "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" diff --git a/lazy-inputs/ghc913/flake.lock b/lazy-inputs/ghc913/flake.lock index e64ad1b7b0..010b5c7467 100644 --- a/lazy-inputs/ghc913/flake.lock +++ b/lazy-inputs/ghc913/flake.lock @@ -3,11 +3,11 @@ "ghc913": { "flake": false, "locked": { - "lastModified": 1730499133, - "narHash": "sha256-vROyv1V9bxMblJukZmg79ArEcRSwAWk/4JXlMRgfCqg=", + "lastModified": 1733355534, + "narHash": "sha256-kCiFiMIsOQWfXP73qWjhfvGv8OdFBg7nz6InQc/xhhQ=", "ref": "refs/heads/master", - "rev": "778ac793289934eb89f904cee4b8d4162b0539fa", - "revCount": 67494, + "rev": "cad6fede4252aeff3a0a93e81c2188a825ab39c6", + "revCount": 67629, "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" diff --git a/overlays/bootstrap.nix b/overlays/bootstrap.nix index 86d8328d29..38494ec07b 100644 --- a/overlays/bootstrap.nix +++ b/overlays/bootstrap.nix @@ -11,7 +11,7 @@ let "9.10" = "9.10.1"; }; gitInputs = { - ghc912X = "9.12"; + ghc912X = "9.12.0"; ghc913 = "9.13"; }; versionToNixName = v: "ghc${builtins.replaceStrings ["."] [""] v}"; @@ -157,6 +157,7 @@ in { ++ onWindows (fromUntil "9.8.1" "9.8.2" ./patches/ghc/win-linker-no-null-deref-9.6.patch) ++ onWindows (until "9.0" ./patches/ghc/ghc-8.10-windres-invocation.patch) ++ onWindows (fromUntil "9.0" "9.4" ./patches/ghc/ghc-9.0-windres-invocation.patch) + ++ onWindows (from "9.12" ./patches/ghc/ghc-9.12-windows-rts-symbols.patch) ++ fromUntil "9.4.5" "9.4.9" ./patches/ghc/ghc-9.4.5-include-order-fix.patch ++ fromUntil "9.6.2" "9.8" ./patches/ghc/ghc-9.4.5-include-order-fix.patch ++ fromUntil "9.6.1" "9.9.20231203" ./patches/ghc/MR10116.patch diff --git a/overlays/patches/ghc/ghc-9.12-windows-rts-symbols.patch b/overlays/patches/ghc/ghc-9.12-windows-rts-symbols.patch new file mode 100644 index 0000000000..d80140b0ba --- /dev/null +++ b/overlays/patches/ghc/ghc-9.12-windows-rts-symbols.patch @@ -0,0 +1,29 @@ +diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c +index a447f126bd..93af0f511f 100644 +--- a/rts/RtsSymbols.c ++++ b/rts/RtsSymbols.c +@@ -165,15 +165,21 @@ extern char **environ; + SymI_HasProto(rts_ConsoleHandlerDone) \ + SymI_NeedsProto(__mingw_module_is_dll) \ + RTS_WIN64_ONLY(SymI_NeedsProto(___chkstk_ms)) \ +- SymI_HasProto(__stdio_common_vswprintf_s) \ +- SymI_HasProto(__stdio_common_vswprintf) \ + SymI_HasProto(_errno) \ + /* see Note [Symbols for MinGW's printf] */ \ + SymI_HasProto(_lock_file) \ + SymI_HasProto(_unlock_file) \ + /* See Note [_iob_func symbol] */ \ + SymI_HasProto_redirect( \ +- __imp___acrt_iob_func, __rts_iob_func, STRENGTH_WEAK, SYM_TYPE_INDIRECT_DATA) ++ __imp___acrt_iob_func, __rts_iob_func, STRENGTH_WEAK, SYM_TYPE_INDIRECT_DATA) \ ++ SymI_HasProto(__mingw_vsnwprintf) \ ++ SymI_HasProto(__mingw_vfprintf) \ ++ SymI_HasProto(closure_sizeW_) \ ++ SymI_NeedsProto(_tzset) \ ++ /* ^^ This one needed for time, tzset deprecated */\ ++ SymI_NeedsProto(tzset) \ ++ SymI_HasProto(strtoll) ++ /* ^^ These two are needed for unix-time */ + #else + #define RTS_MINGW_ONLY_SYMBOLS /**/ + #endif diff --git a/test/cabal.project.local b/test/cabal.project.local index 78d760ff26..59c077bf3c 100644 --- a/test/cabal.project.local +++ b/test/cabal.project.local @@ -24,7 +24,7 @@ repository head.hackage.ghc.haskell.org f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d - --sha256: sha256-0eRaAKpZ7NzlneI7AnTOymTGrRectxnoaLosjY4aGC4= + --sha256: sha256-EQKpiiwoIXiM7r+bGYvQzB4vWANqO6PJaSUlt1NUIeI= repository ghcjs-overlay url: https://raw.githubusercontent.com/input-output-hk/hackage-overlay-ghcjs/ffb32dce467b9a4d27be759fdd2740a6edd09d0b diff --git a/test/gi-gtk/default.nix b/test/gi-gtk/default.nix index d407c8c342..c8ef2232a9 100644 --- a/test/gi-gtk/default.nix +++ b/test/gi-gtk/default.nix @@ -31,7 +31,7 @@ in recurseIntoAttrs rec { # Cross compilation to aarch64 is also broken || stdenv.hostPlatform.isAarch64 && !stdenv.buildPlatform.isAarch64 # Building profiled version of Cabal for haskell-gi is currently broken for GHC head - || compiler-nix-name == "ghc91320241101"; + || compiler-nix-name == "ghc91320241204"; ifdInputs = { inherit (project) plan-nix; diff --git a/test/js-template-haskell/default.nix b/test/js-template-haskell/default.nix index 423ed3dd40..c5663e8ad4 100644 --- a/test/js-template-haskell/default.nix +++ b/test/js-template-haskell/default.nix @@ -23,7 +23,8 @@ in recurseIntoAttrs { inherit (project) plan-nix; }; - meta.disabled = stdenv.buildPlatform != stdenv.hostPlatform && stdenv.hostPlatform.isAarch64; + meta.disabled = stdenv.buildPlatform != stdenv.hostPlatform && stdenv.hostPlatform.isAarch64 + || builtins.elem compiler-nix-name ["ghc91320241204"]; build = packages.js-template-haskell.components.library; check = packages.js-template-haskell.checks.test; diff --git a/test/plugin/default.nix b/test/plugin/default.nix index 1e1a1bc4b2..c2fdf16989 100644 --- a/test/plugin/default.nix +++ b/test/plugin/default.nix @@ -20,7 +20,7 @@ in recurseIntoAttrs { # Not sure why this breaks for ghc 8.10.7 meta.disabled = compiler-nix-name == "ghc8107" - || builtins.elem compiler-nix-name [ "ghc91220241014" "ghc91320241101" ] + || builtins.elem compiler-nix-name [ "ghc912020241128" "ghc91320241204" ] || stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isGhcjs || stdenv.hostPlatform.isWindows diff --git a/test/th-dlls/default.nix b/test/th-dlls/default.nix index bff7ac2900..be63435522 100644 --- a/test/th-dlls/default.nix +++ b/test/th-dlls/default.nix @@ -28,7 +28,7 @@ in recurseIntoAttrs { || (compiler-nix-name == "ghc8107" && stdenv.hostPlatform.isWindows) # We need to update GHC HEAD to get a version of ghc-internal compatible # with th-lift from head.hackage. - || builtins.elem compiler-nix-name [ "ghc91220241014" "ghc91320241101" ] + || builtins.elem compiler-nix-name [ "ghc91320241204" ] ; ifdInputs = {