Skip to content

Commit

Permalink
Add ghc 9.8.3, update nixpkgs and ghc HEAD (#2264)
Browse files Browse the repository at this point in the history
* Update nixpkgs and ghc HEAD

* Fix warning

* Update internalHackageIndexState

* Update patch bounds

* Update rcodesign for recent MacOS

* Replace ghc911 with ghc912X and ghc913

* ifdLevel 1

* Use lazy-inputs instead of fetch-source overlay

* Skip broken mingwW64 GHC

* Skip broken mingwW64 GHC

* Add GHC 9.8.3

* Update patch bounds

* More patch fixes

* Turn off pool allocator in favour of m32_alloc solution in ghc 9.8.3

* Remove another redundant patch

* Turn off pool allocator in favour of m32_alloc solution in ghc 9.8.3

* Remove another redundant patch

* Fix ghc 9.10

* Update materialized files

* Update materialized files

* Build ghc983 cross compilers with ghc983

* Patch upper bounds

* ifdLevel 2

* Disable broken tests

* ifdLevel 3

* Fix cabal-latests

* Update head.hackage

* Disable HLS for ghc 9.8.3 for now

* Update nixpkgs-unstable and fix issue with no libcxxabi

* Bump ghcjs-overlay and head.hackage

* Enable external-static-plugin test for GHC >=9.6 (Fixes #2265)

* Bump head.hackage

* Fix external-static-plugin test

* Fix external-static-plugin test

* Fix eval issue with latest nixpkgs

* Skip th-dlls test for ghc 9.12 and head brances

* Fix HLS test

* Fix hls test

* Bump head.hackage

* Bump head.hackage

* Bump GHC git pins

* ifdLevel 2

* ifdLevel 3

* Add hackage-quirk for #2277

* Bump head.hackage

* Add hackage-quirk for #2277

* Fix for ghcjs on macOS

* Disable broken tests

* Disable broken test

* Fix update scripts to use nixVersions.stable
  • Loading branch information
hamishmack authored Nov 8, 2024
1 parent 76418d8 commit cd7e5c4
Show file tree
Hide file tree
Showing 141 changed files with 3,813 additions and 392 deletions.
8 changes: 4 additions & 4 deletions build.nix
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ in rec {
pkgs.recurseIntoAttrs ({
cabal-latest = tool compiler-nix-name "cabal" ({
inherit evalPackages;
} // pkgs.lib.optionalAttrs (ghcFromTo "9.10" "9.12") {
} // pkgs.lib.optionalAttrs (ghcFromTo "9.12" "9.13") {
cabalProjectLocal = builtins.readFile ./test/cabal.project.local;
});
} // pkgs.lib.optionalAttrs (__compareVersions haskell.compiler.${compiler-nix-name}.version "9.8" < 0) {
Expand Down Expand Up @@ -62,7 +62,7 @@ in rec {
inherit evalPackages;
src = pkgs.haskell-nix.sources."hls-2.2";
};
} // pkgs.lib.optionalAttrs (ghcFromTo "9.0" "9.11") {
} // pkgs.lib.optionalAttrs (ghcFromTo "9.0" "9.8.3" || ghcFromTo "9.10" "9.11") {
"hls-29" = tool compiler-nix-name "haskell-language-server" {
inherit evalPackages;
src = pkgs.haskell-nix.sources."hls-2.9";
Expand All @@ -77,14 +77,14 @@ in rec {
maintainer-scripts = pkgs.dontRecurseIntoAttrs {
update-hackage = import ./scripts/update-hackage.nix {
inherit (pkgs) stdenv lib writeScript coreutils glibc git
openssh nixFlakes gawk bash curl findutils;
openssh nixVersions gawk bash curl findutils;
# Update scripts use the internal nix-tools (compiled with a fixed GHC version)
nix-tools = haskell.nix-tools-unchecked;
inherit (haskell) update-index-state-hashes cabal-issue-8352-workaround;
};
update-stackage = haskell.callPackage ./scripts/update-stackage.nix {
inherit (pkgs) stdenv lib writeScript coreutils glibc git
openssh nixFlakes gawk bash curl findutils;
openssh nixVersions gawk bash curl findutils;
# Update scripts use the internal nix-tools (compiled with a fixed GHC version)
nix-tools = haskell.nix-tools-unchecked;
inherit (haskell) cabal-issue-8352-workaround;
Expand Down
3 changes: 3 additions & 0 deletions builder/comp-builder.nix
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,9 @@ let
"--with-gcc=${pkgsBuildBuild.emscripten}/bin/emcc"
"--with-ld=${pkgsBuildBuild.emscripten}/bin/emcc"
]
++ lib.optionals (stdenv.hostPlatform.isGhcjs && stdenv.buildPlatform.isDarwin) [
"--ar-options=--format=gnu" # Avoid `--format=darwin` it can cause `section too large` errors
]
++ [ # other flags
(disableFeature dontStrip "executable-stripping")
(disableFeature dontStrip "library-stripping")
Expand Down
2 changes: 1 addition & 1 deletion builder/shell-for.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ lib, stdenv, mkShell, glibcLocales, pkgconfig, ghcForComponent, makeConfigFiles, hsPkgs, hoogleLocal, haskellLib, pkgsBuildBuild, evalPackages, compiler }:
{ lib, stdenv, mkShell, glibcLocales, ghcForComponent, makeConfigFiles, hsPkgs, hoogleLocal, haskellLib, pkgsBuildBuild, evalPackages, compiler }:

{ # `packages` function selects packages that will be worked on in the shell itself.
# These packages will not be built by `shellFor`, but their
Expand Down
9 changes: 5 additions & 4 deletions ci.nix
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@
ghc98llvm = false;
ghc910 = true;
ghc910llvm = true;
ghc911 = true;
ghc912X = true;
ghc913 = true;
})));
crossSystems = nixpkgsName: nixpkgs: compiler-nix-name:
# We need to use the actual nixpkgs version we're working with here, since the values
Expand All @@ -83,13 +84,13 @@
&& (__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"])
|| (system == "aarch64-darwin" && !builtins.elem compiler-nix-name ["ghc884" "ghc902" "ghc928" "ghc948" "ghc966" "ghc982"])
|| (system == "x86_64-darwin" && !builtins.elem compiler-nix-name ["ghc884" "ghc902" "ghc928" "ghc948" "ghc966" "ghc982" "ghc983"])
|| (system == "aarch64-darwin" && !builtins.elem compiler-nix-name ["ghc884" "ghc902" "ghc928" "ghc948" "ghc966" "ghc982" "ghc983"])
)) {
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" "ghc91120240918"]) # 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 ["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-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"
Expand Down
2 changes: 1 addition & 1 deletion compiler/ghc/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ let self =
# build-tools
, bootPkgs
, buildPackages
, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx, numactl, elfutils, libcxx, libcxxabi
, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx, numactl, elfutils, libcxx, libcxxabi ? throw "No libcxxabi"
, autoreconfHook
, bash

Expand Down
12 changes: 6 additions & 6 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions lazy-inputs/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ let
callFlake = import prev.haskell-nix.sources.flake-compat;
in {
haskell-nix = prev.haskell-nix // {
sources = prev.haskell-nix.sources // {
sources = {
inherit ((callFlake { pkgs = final; src = ./ghc8107; }).defaultNix) ghc8107;
inherit ((callFlake { pkgs = final; src = ./ghc901; }).defaultNix) ghc901;
inherit ((callFlake { pkgs = final; src = ./ghc902; }).defaultNix) ghc902;
Expand Down Expand Up @@ -31,7 +31,10 @@ in {
inherit ((callFlake { pkgs = final; src = ./ghc966; }).defaultNix) ghc966;
inherit ((callFlake { pkgs = final; src = ./ghc981; }).defaultNix) ghc981;
inherit ((callFlake { pkgs = final; src = ./ghc982; }).defaultNix) ghc982;
inherit ((callFlake { pkgs = final; src = ./ghc983; }).defaultNix) ghc983;
inherit ((callFlake { pkgs = final; src = ./ghc9101; }).defaultNix) ghc9101;
};
inherit ((callFlake { pkgs = final; src = ./ghc912X; }).defaultNix) ghc912X;
inherit ((callFlake { pkgs = final; src = ./ghc913; }).defaultNix) ghc913;
} // prev.haskell-nix.sources;
};
}
30 changes: 30 additions & 0 deletions lazy-inputs/ghc912X/flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions lazy-inputs/ghc912X/flake.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
description = "Lazy Input for Haskell.nix";

inputs = {
ghc912X = {
flake = false;
url = "git+https://gitlab.haskell.org/ghc/ghc?ref=ghc-9.12&submodules=1";
};
};

outputs = inputs: inputs;
}
12 changes: 6 additions & 6 deletions lazy-inputs/ghc911/flake.lock → lazy-inputs/ghc913/flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description = "Lazy Input for Haskell.nix";

inputs = {
ghc911 = {
ghc913 = {
flake = false;
url = "git+https://gitlab.haskell.org/ghc/ghc?submodules=1";
};
Expand Down
30 changes: 30 additions & 0 deletions lazy-inputs/ghc983/flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions lazy-inputs/ghc983/flake.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
description = "Lazy Input for Haskell.nix";

inputs = {
ghc983 = {
flake = false;
url = "git+https://github.com/stable-haskell/ghc?ref=ghc-9.8.3-iog&submodules=1";
};
};

outputs = inputs: inputs;
}
2 changes: 1 addition & 1 deletion lib/pkgconf-nixpkgs-map.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5149,7 +5149,7 @@ pkgs:
"svrcore" = [ "svrcore" ];
"SvtAv1Dec" = [ "svt-av1" ];
"SvtAv1Enc" = [ "svt-av1" ];
"swipl" = [ "swiProlog" ];
"swipl" = [ "swi-prolog" ];
# "swipl" = [ "swiPrologWithGui" ];
"sword" = [ "sword" ];
"syncthingconnector" = [ "syncthingtray" ];
Expand Down
49 changes: 49 additions & 0 deletions materialized/ghc-boot-packages-nix/ghc983-aarch64/base.nix

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit cd7e5c4

Please sign in to comment.