Skip to content

Commit 237424a

Browse files
committed
Merge remote-tracking branch 'upstream/master' into circuithub
2 parents b804592 + df3f71e commit 237424a

File tree

739 files changed

+16563
-35472
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

739 files changed

+16563
-35472
lines changed

.github/workflows/pipeline.yml

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: "Run tests with ghc966"
1+
name: "Run tests with ghc967"
22

33
on:
44
pull_request:
@@ -22,120 +22,120 @@ jobs:
2222
runs-on: [self-hosted, linux]
2323
steps:
2424
- uses: actions/checkout@v4
25-
- name: "Run tests with ghc966: Running the nix-build tests..."
26-
run: "./test/tests.sh ghc966 nix-build"
25+
- name: "Run tests with ghc967: Running the nix-build tests..."
26+
run: "./test/tests.sh ghc967 nix-build"
2727

2828
unit-tests:
2929
runs-on: [self-hosted, linux]
3030
steps:
3131
- uses: actions/checkout@v4
32-
- name: "Run tests with ghc966: Running the unit tests..."
33-
run: "./test/tests.sh ghc966 unit-tests"
32+
- name: "Run tests with ghc967: Running the unit tests..."
33+
run: "./test/tests.sh ghc967 unit-tests"
3434

3535
runghc:
3636
runs-on: [self-hosted, linux]
3737
steps:
3838
- uses: actions/checkout@v4
39-
- name: "Run tests with ghc966: Checking that a nix-shell works for runghc..."
40-
run: "./test/tests.sh ghc966 runghc"
39+
- name: "Run tests with ghc967: Checking that a nix-shell works for runghc..."
40+
run: "./test/tests.sh ghc967 runghc"
4141

4242
cabal:
4343
runs-on: [self-hosted, linux]
4444
steps:
4545
- uses: actions/checkout@v4
46-
- name: "Run tests with ghc966: Checking that a nix-shell works for cabal..."
47-
run: "./test/tests.sh ghc966 cabal"
46+
- name: "Run tests with ghc967: Checking that a nix-shell works for cabal..."
47+
run: "./test/tests.sh ghc967 cabal"
4848

4949
cabal-doExactConfig:
5050
runs-on: [self-hosted, linux]
5151
steps:
5252
- uses: actions/checkout@v4
53-
- name: "Run tests with ghc966: Checking that a nix-shell works for cabal (doExactConfig component)..."
54-
run: "./test/tests.sh ghc966 cabal-doExactConfig"
53+
- name: "Run tests with ghc967: Checking that a nix-shell works for cabal (doExactConfig component)..."
54+
run: "./test/tests.sh ghc967 cabal-doExactConfig"
5555

5656
tests-benchmarks:
5757
runs-on: [self-hosted, linux]
5858
steps:
5959
- uses: actions/checkout@v4
60-
- name: "Run tests with ghc966: Checking that a nix-shell works for a project with test-suite build-tools and benchmarks..."
61-
run: "./test/tests.sh ghc966 tests-benchmarks"
60+
- name: "Run tests with ghc967: Checking that a nix-shell works for a project with test-suite build-tools and benchmarks..."
61+
run: "./test/tests.sh ghc967 tests-benchmarks"
6262

6363
multi-target:
6464
runs-on: [self-hosted, linux]
6565
steps:
6666
- uses: actions/checkout@v4
67-
- name: "Run tests with ghc966: Checking that a nix-shell works for a multi-target project..."
68-
run: "./test/tests.sh ghc966 multi-target"
67+
- name: "Run tests with ghc967: Checking that a nix-shell works for a multi-target project..."
68+
run: "./test/tests.sh ghc967 multi-target"
6969

7070
shellFor-single-package:
7171
runs-on: [self-hosted, linux]
7272
steps:
7373
- uses: actions/checkout@v4
74-
- name: "Run tests with ghc966: Checking shellFor works for a cabal project, multiple packages..."
75-
run: "./test/tests.sh ghc966 shellFor-single-package"
74+
- name: "Run tests with ghc967: Checking shellFor works for a cabal project, multiple packages..."
75+
run: "./test/tests.sh ghc967 shellFor-single-package"
7676

7777
shellFor-multiple-package:
7878
runs-on: [self-hosted, linux]
7979
steps:
8080
- uses: actions/checkout@v4
81-
- name: "Run tests with ghc966: Checking shellFor works for a cabal project, single package...y"
82-
run: "./test/tests.sh ghc966 shellFor-multiple-package"
81+
- name: "Run tests with ghc967: Checking shellFor works for a cabal project, single package...y"
82+
run: "./test/tests.sh ghc967 shellFor-multiple-package"
8383

8484
shellFor-hoogle:
8585
runs-on: [self-hosted, linux]
8686
steps:
8787
- uses: actions/checkout@v4
88-
- name: "Run tests with ghc966: Checking shellFor works for a cabal project, single package..."
89-
run: "./test/tests.sh ghc966 shellFor-hoogle"
88+
- name: "Run tests with ghc967: Checking shellFor works for a cabal project, single package..."
89+
run: "./test/tests.sh ghc967 shellFor-hoogle"
9090

9191
shellFor-not-depends:
9292
runs-on: [self-hosted, linux]
9393
steps:
9494
- uses: actions/checkout@v4
95-
- name: "Run tests with ghc966: Checking shellFor does not depend on given packages...y"
96-
run: "./test/tests.sh ghc966 shellFor-not-depends"
95+
- name: "Run tests with ghc967: Checking shellFor does not depend on given packages...y"
96+
run: "./test/tests.sh ghc967 shellFor-not-depends"
9797

9898
maintainer-scripts:
9999
runs-on: [self-hosted, linux]
100100
steps:
101101
- uses: actions/checkout@v4
102-
- name: "Run tests with ghc966: Checking the maintainer scripts...y"
103-
run: "./test/tests.sh ghc966 maintainer-scripts"
102+
- name: "Run tests with ghc967: Checking the maintainer scripts...y"
103+
run: "./test/tests.sh ghc967 maintainer-scripts"
104104

105105
plan-extra-hackages:
106106
runs-on: [self-hosted, linux]
107107
steps:
108108
- uses: actions/checkout@v4
109-
- name: "Run tests with ghc966: Checking that plan construction works with extra Hackages..."
110-
run: "./test/tests.sh ghc966 plan-extra-hackages"
109+
- name: "Run tests with ghc967: Checking that plan construction works with extra Hackages..."
110+
run: "./test/tests.sh ghc967 plan-extra-hackages"
111111

112112
build-extra-hackages:
113113
runs-on: [self-hosted, linux]
114114
steps:
115115
- uses: actions/checkout@v4
116-
- name: "Run tests with ghc966: Checking that package with extra Hackages can be build..."
117-
run: "./test/tests.sh ghc966 build-extra-hackages"
116+
- name: "Run tests with ghc967: Checking that package with extra Hackages can be build..."
117+
run: "./test/tests.sh ghc967 build-extra-hackages"
118118

119119
hix:
120120
runs-on: [self-hosted, linux]
121121
steps:
122122
- uses: actions/checkout@v4
123-
- name: "Run tests with ghc966: End-2-end test of hix project initialization and flakes development shell ..."
124-
run: "./test/tests.sh ghc966 hix"
123+
- name: "Run tests with ghc967: End-2-end test of hix project initialization and flakes development shell ..."
124+
run: "./test/tests.sh ghc967 hix"
125125

126126
# template:
127127
# runs-on: [self-hosted, linux]
128128
# steps:
129129
# - uses: actions/checkout@v4
130-
# - name: "Run tests with ghc966: End-2-end test of hix project initialization and flakes development shell ..."
131-
# run: "./test/tests.sh ghc966 template"
130+
# - name: "Run tests with ghc967: End-2-end test of hix project initialization and flakes development shell ..."
131+
# run: "./test/tests.sh ghc967 template"
132132

133133
docs:
134134
runs-on: [self-hosted, linux]
135135
steps:
136136
- uses: actions/checkout@v4
137137
- name: "Test examples in documentation ..."
138-
run: "./test/tests.sh ghc966 docs"
138+
run: "./test/tests.sh ghc967 docs"
139139

140140
hydra-ifdLevel-0-and-1:
141141
runs-on: [self-hosted, linux]
@@ -178,9 +178,9 @@ jobs:
178178
runs-on: [self-hosted, linux]
179179
steps:
180180
- uses: actions/checkout@v4
181-
- name: "Check closure size with ghc966"
181+
- name: "Check closure size with ghc967"
182182
run: |
183-
nix-build build.nix -A maintainer-scripts.check-closure-size --argstr compiler-nix-name ghc966 -o check-closure-size.sh
183+
nix-build build.nix -A maintainer-scripts.check-closure-size --argstr compiler-nix-name ghc967 -o check-closure-size.sh
184184
echo "+++ Closure size (MB)"
185185
./check-closure-size.sh
186186
@@ -208,7 +208,7 @@ jobs:
208208
- uses: actions/checkout@v4
209209
- name: "Make sure non store paths like can be used as src"
210210
run: |
211-
nix-build build.nix -A maintainer-scripts.check-path-support --argstr compiler-nix-name ghc966 -o check-path-support.sh
211+
nix-build build.nix -A maintainer-scripts.check-path-support --argstr compiler-nix-name ghc967 -o check-path-support.sh
212212
./check-path-support.sh
213213
214214
haskell-nix-roots-do-not-require-IFDs:
@@ -218,19 +218,19 @@ jobs:
218218
- name: "Check that the haskell.nix roots do not require IFDs"
219219
run: nix build .#roots.x86_64-linux --accept-flake-config --option allow-import-from-derivation false
220220

221-
hydra-without-remote-builders-ghc966:
221+
hydra-without-remote-builders-ghc967:
222222
runs-on: [self-hosted, linux]
223223
steps:
224224
- uses: actions/checkout@v4
225-
- name: "Check that evaluation of hydra jobs works without using remote builders for GHC 8.10.7"
226-
run: nix path-info --derivation .#requiredJobs.x86_64-darwin.required-unstable-ghc966-native --show-trace --builders ''
225+
- name: "Check that evaluation of hydra jobs works without using remote builders for GHC 9.6.7"
226+
run: nix path-info --derivation .#requiredJobs.x86_64-darwin.required-unstable-ghc967-native --show-trace --builders ''
227227

228-
hydra-without-remote-builders-ghc9101:
228+
hydra-without-remote-builders-ghc9102:
229229
runs-on: [self-hosted, linux]
230230
steps:
231231
- uses: actions/checkout@v4
232-
- name: "Check that evaluation of hydra jobs works without using remote builders for GHC 9.10.1"
233-
run: nix path-info --derivation .#requiredJobs.x86_64-darwin.required-unstable-ghc9101-native --show-trace --builders ''
232+
- name: "Check that evaluation of hydra jobs works without using remote builders for GHC 9.10.2"
233+
run: nix path-info --derivation .#requiredJobs.x86_64-darwin.required-unstable-ghc9102-native --show-trace --builders ''
234234

235235
hix-cabal:
236236
runs-on: [self-hosted, linux]

.github/workflows/updates.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ jobs:
1919
- name: "Update pins"
2020
run: |
2121
nix flake update hackage
22+
nix flake update hackage-for-stackage
2223
nix flake update stackage
2324
- name: Commit and push changes
2425
run: |

build.nix

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,6 @@
66
, nixpkgsArgs ? haskellNix.nixpkgsArgs
77
, pkgs ? import nixpkgs nixpkgsArgs
88
, evalPackages ? import nixpkgs nixpkgsArgs
9-
# This version is used to make our GitHub Action runners happy
10-
# Using `nixpkgs-unstable` currently results in:
11-
# version `GLIBCXX_3.4.30' not found
12-
, nixpkgsForGitHubAction ? haskellNix.sources.nixpkgs-2211
13-
, pkgsForGitHubAction ? import nixpkgsForGitHubAction (nixpkgsArgs // { inherit (pkgs) system; })
149
, ifdLevel ? 1000
1510
, compiler-nix-name ? throw "No `compiler-nix-name` passed to build.nix"
1611
, haskellNix ? (import ./default.nix {})
@@ -62,10 +57,10 @@ in rec {
6257
inherit evalPackages;
6358
src = pkgs.haskell-nix.sources."hls-2.2";
6459
};
65-
} // pkgs.lib.optionalAttrs (ghcFromTo "9.0" "9.8.3" || ghcFromTo "9.10" "9.11") {
66-
"hls-29" = tool compiler-nix-name "haskell-language-server" {
60+
} // pkgs.lib.optionalAttrs (ghcFromTo "9.0" "9.10.2") {
61+
"hls" = tool compiler-nix-name "haskell-language-server" {
6762
inherit evalPackages;
68-
src = pkgs.haskell-nix.sources."hls-2.9";
63+
src = pkgs.haskell-nix.sources."hls-2.10";
6964
};
7065
})
7166
);
@@ -98,7 +93,7 @@ in rec {
9893
nix-tools = haskell.nix-tools-unchecked; # includes cabal-install and default-setup
9994
};
10095
check-materialization-concurrency = pkgs.buildPackages.callPackage ./scripts/check-materialization-concurrency/check.nix {};
101-
check-path-support = pkgsForGitHubAction.buildPackages.callPackage ./scripts/check-path-support.nix {
96+
check-path-support = pkgs.buildPackages.callPackage ./scripts/check-path-support.nix {
10297
inherit compiler-nix-name;
10398
};
10499
};

builder/comp-builder.nix

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,15 @@ let
210210
(enableFeature enableShared "shared")
211211
(enableFeature enableExecutableDynamic "executable-dynamic")
212212
(enableFeature doCoverage "coverage")
213-
(enableFeature (enableLibraryForGhci && !stdenv.hostPlatform.isGhcjs) "library-for-ghci")
213+
# For Android (or really anything that uses lld), -r will silently drop
214+
# "lazy" symbols. Those are leaf symbols with no referenes. This however
215+
# does not work when loading the objects into the linker, because then we
216+
# occationally miss symbols when subsequent libraries depending on the one
217+
# that dropped the symbol are loaded. bfd and lld support --whole-archive
218+
# lld -r --whole-archive ... will _not_ drop lazy symbols. However the
219+
# --whole-archive flag needs to come _before_ the objects, it's applied in
220+
# sequence. The proper fix is thusly to add --while-archive to Cabal.
221+
(enableFeature (enableLibraryForGhci && !stdenv.hostPlatform.isGhcjs && !stdenv.hostPlatform.isAndroid) "library-for-ghci")
214222
] ++ lib.optionals (stdenv.hostPlatform.isMusl && (haskellLib.isExecutableType componentId)) [
215223
# These flags will make sure the resulting executable is statically linked.
216224
# If it uses other libraries it may be necessary for to add more
@@ -378,8 +386,8 @@ let
378386
inherit (package.identifier) version;
379387
nativeBuildInputs = [shellWrappers.drv] ++ attrs.nativeBuildInputs;
380388
});
381-
profiled = self (drvArgs // { enableLibraryProfiling = true; });
382-
dwarf = self (drvArgs // { enableDWARF = true; });
389+
profiled = lib.makeOverridable self (drvArgs // { enableLibraryProfiling = true; });
390+
dwarf = lib.makeOverridable self (drvArgs // { enableDWARF = true; });
383391
} // lib.optionalAttrs (haskellLib.isLibrary componentId || haskellLib.isTest componentId) ({
384392
inherit haddock;
385393
inherit (haddock) haddockDir; # This is null if `doHaddock = false`

builder/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ let
6464
let
6565
haskellPackages = {
6666
# For musl we can use haddock from the buildGHC
67-
ghc = if stdenv.hostPlatform.isLinux && stdenv.targetPlatform.isMusl && !haskellLib.isNativeMusl
67+
ghc = if stdenv.targetPlatform.isMusl
6868
then ghc.buildGHC
6969
else ghc;
7070
inherit packages hoogle;

builder/ghc-for-component-wrapper.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ let
2323
libDir = "$wrappedGhc/${configFiles.libDir}";
2424
docDir = "$wrappedGhc/share/doc/ghc/html";
2525
# For musl we can use haddock from the buildGHC
26-
haddock = if stdenv.hostPlatform.isLinux && stdenv.targetPlatform.isMusl && !haskellLib.isNativeMusl
26+
haddock = if stdenv.targetPlatform.isMusl
2727
then ghc.buildGHC
2828
else ghc;
2929

@@ -125,7 +125,7 @@ let
125125
done
126126
127127
''
128-
+ lib.optionalString (stdenv.targetPlatform.isMusl && !haskellLib.isNativeMusl && builtins.compareVersions ghc.version "9.9" >0) ''
128+
+ lib.optionalString (haskellLib.isNativeMusl && builtins.compareVersions ghc.version "9.9" >0) ''
129129
ln -s $wrappedGhc/bin/${targetPrefix}unlit $wrappedGhc/bin/unlit
130130
ln -s $wrappedGhc/bin/${ghcCommand}-iserv $wrappedGhc/bin/ghc-iserv
131131
ln -s $wrappedGhc/bin/${ghcCommand}-iserv-prof $wrappedGhc/bin/ghc-iserv-prof

0 commit comments

Comments
 (0)