Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 buildPackages,
3 pkgsBuildBuild,
4 pkgsBuildTarget,
5 pkgs,
6 newScope,
7 stdenv,
8}:
9
10let
11 # These are attributes in compiler that support integer-simple.
12 integerSimpleIncludes = [
13 "ghc88"
14 "ghc884"
15 "ghc810"
16 "ghc8107"
17 ];
18
19 nativeBignumExcludes = integerSimpleIncludes ++ [
20 # haskell.compiler sub groups
21 "integer-simple"
22 "native-bignum"
23 # Binary GHCs
24 "ghc865Binary"
25 "ghc8107Binary"
26 "ghc902Binary"
27 "ghc924Binary"
28 "ghc963Binary"
29 "ghc984Binary"
30 # ghcjs
31 "ghcjs"
32 "ghcjs810"
33 ];
34
35 haskellLibUncomposable = import ../development/haskell-modules/lib {
36 inherit (pkgs) lib;
37 inherit pkgs;
38 };
39
40 callPackage = newScope {
41 haskellLib = haskellLibUncomposable.compose;
42 overrides = pkgs.haskell.packageOverrides;
43 };
44
45 bootstrapPackageSet = self: super: {
46 mkDerivation =
47 drv:
48 super.mkDerivation (
49 drv
50 // {
51 doCheck = false;
52 doHaddock = false;
53 enableExecutableProfiling = false;
54 enableLibraryProfiling = false;
55 enableSharedExecutables = false;
56 enableSharedLibraries = false;
57 }
58 );
59 };
60
61 # Use this rather than `rec { ... }` below for sake of overlays.
62 inherit (pkgs.haskell) compiler packages;
63
64in
65{
66 lib = haskellLibUncomposable;
67
68 package-list = callPackage ../development/haskell-modules/package-list.nix { };
69
70 # Always get boot compilers from `pkgsBuildBuild`. The boot (stage0) compiler
71 # is used to build another compiler (stage1) that'll be used to build the
72 # final compiler (stage2) (except when building a cross-compiler). This means
73 # that stage1's host platform is the same as stage0: build. Consequently,
74 # stage0 needs to be build->build.
75 #
76 # Note that we use bb.haskell.packages.*. haskell.packages.*.ghc is similar to
77 # stdenv: The ghc comes from the previous package set, i.e. this predicate holds:
78 # `name: pkgs: pkgs.haskell.packages.${name}.ghc == pkgs.buildPackages.haskell.compiler.${name}.ghc`.
79 # This isn't problematic since pkgsBuildBuild.buildPackages is also build->build,
80 # just something to keep in mind.
81 compiler =
82 let
83 bb = pkgsBuildBuild.haskell;
84 in
85 {
86 ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix {
87 # Should be llvmPackages_6 which has been removed from nixpkgs
88 llvmPackages = null;
89 };
90
91 ghc8107Binary = callPackage ../development/compilers/ghc/8.10.7-binary.nix {
92 llvmPackages = pkgs.llvmPackages_12;
93 };
94
95 ghc902Binary = callPackage ../development/compilers/ghc/9.0.2-binary.nix {
96 llvmPackages = pkgs.llvmPackages_12;
97 };
98
99 ghc924Binary = callPackage ../development/compilers/ghc/9.2.4-binary.nix {
100 llvmPackages = pkgs.llvmPackages_12;
101 };
102
103 ghc963Binary = callPackage ../development/compilers/ghc/9.6.3-binary.nix {
104 llvmPackages = pkgs.llvmPackages_15;
105 };
106
107 ghc984Binary = callPackage ../development/compilers/ghc/9.8.4-binary.nix {
108 llvmPackages = pkgs.llvmPackages_15;
109 };
110
111 ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix {
112 bootPkgs =
113 # the oldest ghc with aarch64-darwin support is 8.10.5
114 if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
115 # to my (@a-m-joseph) knowledge there are no newer official binaries for this platform
116 bb.packages.ghc865Binary
117 else
118 bb.packages.ghc8107Binary;
119 inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12
120 python3 = buildPackages.python311; # so that we don't have two of them
121 # Need to use apple's patched xattr until
122 # https://github.com/xattr/xattr/issues/44 and
123 # https://github.com/xattr/xattr/issues/55 are solved.
124 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
125 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
126 llvmPackages = pkgs.llvmPackages_12;
127 };
128 ghc810 = compiler.ghc8107;
129 ghc902 = callPackage ../development/compilers/ghc/9.0.2.nix {
130 bootPkgs =
131 # the oldest ghc with aarch64-darwin support is 8.10.5
132 if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
133 bb.packages.ghc810
134 else
135 bb.packages.ghc8107Binary;
136 inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12
137 python3 = buildPackages.python311; # so that we don't have two of them
138 inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr;
139 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
140 llvmPackages = pkgs.llvmPackages_12;
141 };
142 ghc90 = compiler.ghc902;
143 ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix {
144 bootPkgs =
145 # GHC >= 9.0 removed the armv7l bindist
146 if stdenv.buildPlatform.isAarch32 then
147 bb.packages.ghc8107Binary
148 # No suitable bindists for powerpc64le
149 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
150 bb.packages.ghc902
151 else
152 bb.packages.ghc902Binary;
153 inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12
154 python3 = buildPackages.python311; # so that we don't have two of them
155 # Need to use apple's patched xattr until
156 # https://github.com/xattr/xattr/issues/44 and
157 # https://github.com/xattr/xattr/issues/55 are solved.
158 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
159 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
160 llvmPackages = pkgs.llvmPackages_12;
161 };
162 ghc92 = compiler.ghc928;
163 ghc947 = callPackage ../development/compilers/ghc/9.4.7.nix {
164 bootPkgs =
165 # Building with 9.2 is broken due to
166 # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
167
168 # No suitable bindists for powerpc64le
169 if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
170 bb.packages.ghc902
171 else
172 bb.packages.ghc902Binary;
173 inherit (buildPackages.python3Packages) sphinx;
174 # Need to use apple's patched xattr until
175 # https://github.com/xattr/xattr/issues/44 and
176 # https://github.com/xattr/xattr/issues/55 are solved.
177 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
178 # Support range >= 10 && < 14
179 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
180 llvmPackages = pkgs.llvmPackages_12;
181 };
182 ghc948 = callPackage ../development/compilers/ghc/9.4.8.nix {
183 bootPkgs =
184 # Building with 9.2 is broken due to
185 # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
186
187 # No suitable bindists for powerpc64le
188 if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
189 bb.packages.ghc902
190 else
191 bb.packages.ghc902Binary;
192 inherit (buildPackages.python3Packages) sphinx;
193 # Need to use apple's patched xattr until
194 # https://github.com/xattr/xattr/issues/44 and
195 # https://github.com/xattr/xattr/issues/55 are solved.
196 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
197 # Support range >= 10 && < 14
198 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
199 llvmPackages = pkgs.llvmPackages_12;
200 };
201 ghc94 = compiler.ghc948;
202 ghc963 = callPackage ../development/compilers/ghc/9.6.3.nix {
203 bootPkgs =
204 # For GHC 9.2 no armv7l bindists are available.
205 if stdenv.buildPlatform.isAarch32 then
206 bb.packages.ghc928
207 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
208 bb.packages.ghc928
209 else
210 bb.packages.ghc924Binary;
211 inherit (buildPackages.python3Packages) sphinx;
212 # Need to use apple's patched xattr until
213 # https://github.com/xattr/xattr/issues/44 and
214 # https://github.com/xattr/xattr/issues/55 are solved.
215 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
216 # Support range >= 11 && < 16
217 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
218 llvmPackages = pkgs.llvmPackages_15;
219 };
220 ghc964 = callPackage ../development/compilers/ghc/9.6.4.nix {
221 bootPkgs =
222 # For GHC 9.2 no armv7l bindists are available.
223 if stdenv.buildPlatform.isAarch32 then
224 bb.packages.ghc928
225 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
226 bb.packages.ghc928
227 else
228 bb.packages.ghc924Binary;
229 inherit (buildPackages.python3Packages) sphinx;
230 # Need to use apple's patched xattr until
231 # https://github.com/xattr/xattr/issues/44 and
232 # https://github.com/xattr/xattr/issues/55 are solved.
233 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
234 # Support range >= 11 && < 16
235 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
236 llvmPackages = pkgs.llvmPackages_15;
237 };
238 ghc965 = callPackage ../development/compilers/ghc/9.6.5.nix {
239 bootPkgs =
240 # For GHC 9.2 no armv7l bindists are available.
241 if stdenv.buildPlatform.isAarch32 then
242 bb.packages.ghc928
243 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
244 bb.packages.ghc928
245 else
246 bb.packages.ghc924Binary;
247 inherit (buildPackages.python3Packages) sphinx;
248 # Need to use apple's patched xattr until
249 # https://github.com/xattr/xattr/issues/44 and
250 # https://github.com/xattr/xattr/issues/55 are solved.
251 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
252 # Support range >= 11 && < 16
253 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
254 llvmPackages = pkgs.llvmPackages_15;
255 };
256 ghc966 = callPackage ../development/compilers/ghc/9.6.6.nix {
257 bootPkgs =
258 # For GHC 9.2 no armv7l bindists are available.
259 if stdenv.buildPlatform.isAarch32 then
260 bb.packages.ghc928
261 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
262 bb.packages.ghc928
263 else
264 bb.packages.ghc924Binary;
265 inherit (buildPackages.python3Packages) sphinx;
266 # Need to use apple's patched xattr until
267 # https://github.com/xattr/xattr/issues/44 and
268 # https://github.com/xattr/xattr/issues/55 are solved.
269 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
270 # Support range >= 11 && < 16
271 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
272 llvmPackages = pkgs.llvmPackages_15;
273 };
274 ghc967 = callPackage ../development/compilers/ghc/9.6.7.nix {
275 bootPkgs =
276 # For GHC 9.2 no armv7l bindists are available.
277 if stdenv.buildPlatform.isAarch32 then
278 bb.packages.ghc928
279 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
280 bb.packages.ghc928
281 else
282 bb.packages.ghc924Binary;
283 inherit (buildPackages.python3Packages) sphinx;
284 # Need to use apple's patched xattr until
285 # https://github.com/xattr/xattr/issues/44 and
286 # https://github.com/xattr/xattr/issues/55 are solved.
287 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
288 # Support range >= 11 && < 16
289 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
290 llvmPackages = pkgs.llvmPackages_15;
291 };
292 ghc96 = compiler.ghc967;
293 ghc981 = callPackage ../development/compilers/ghc/9.8.1.nix {
294 bootPkgs =
295 # For GHC 9.6 no armv7l bindists are available.
296 if stdenv.buildPlatform.isAarch32 then
297 bb.packages.ghc963
298 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
299 bb.packages.ghc963
300 else
301 bb.packages.ghc963Binary;
302 inherit (buildPackages.python3Packages) sphinx;
303 # Need to use apple's patched xattr until
304 # https://github.com/xattr/xattr/issues/44 and
305 # https://github.com/xattr/xattr/issues/55 are solved.
306 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
307 # Support range >= 11 && < 16
308 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
309 llvmPackages = pkgs.llvmPackages_15;
310 };
311 ghc982 = callPackage ../development/compilers/ghc/9.8.2.nix {
312 bootPkgs =
313 # For GHC 9.6 no armv7l bindists are available.
314 if stdenv.buildPlatform.isAarch32 then
315 bb.packages.ghc963
316 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
317 bb.packages.ghc963
318 else
319 bb.packages.ghc963Binary;
320 inherit (buildPackages.python3Packages) sphinx;
321 # Need to use apple's patched xattr until
322 # https://github.com/xattr/xattr/issues/44 and
323 # https://github.com/xattr/xattr/issues/55 are solved.
324 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
325 # Support range >= 11 && < 16
326 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
327 llvmPackages = pkgs.llvmPackages_15;
328 };
329 ghc983 = callPackage ../development/compilers/ghc/9.8.3.nix {
330 bootPkgs =
331 # For GHC 9.6 no armv7l bindists are available.
332 if stdenv.buildPlatform.isAarch32 then
333 bb.packages.ghc963
334 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
335 bb.packages.ghc963
336 else
337 bb.packages.ghc963Binary;
338 inherit (buildPackages.python3Packages) sphinx;
339 # Need to use apple's patched xattr until
340 # https://github.com/xattr/xattr/issues/44 and
341 # https://github.com/xattr/xattr/issues/55 are solved.
342 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
343 # Support range >= 11 && < 16
344 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
345 llvmPackages = pkgs.llvmPackages_15;
346 };
347 ghc984 = callPackage ../development/compilers/ghc/9.8.4.nix {
348 bootPkgs =
349 if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isMusl then
350 bb.packages.ghc984Binary
351 else if stdenv.buildPlatform.isAarch32 then
352 # For GHC 9.6 no armv7l bindists are available.
353 bb.packages.ghc963
354 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
355 bb.packages.ghc963
356 else
357 bb.packages.ghc963Binary;
358 inherit (buildPackages.python3Packages) sphinx;
359 # Need to use apple's patched xattr until
360 # https://github.com/xattr/xattr/issues/44 and
361 # https://github.com/xattr/xattr/issues/55 are solved.
362 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
363 # Support range >= 11 && < 16
364 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
365 llvmPackages = pkgs.llvmPackages_15;
366 };
367 ghc98 = compiler.ghc984;
368 ghc9101 = callPackage ../development/compilers/ghc/9.10.1.nix {
369 bootPkgs =
370 # For GHC 9.6 no armv7l bindists are available.
371 if stdenv.buildPlatform.isAarch32 then
372 bb.packages.ghc963
373 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
374 bb.packages.ghc963
375 else if stdenv.buildPlatform.isDarwin then
376 # it seems like the GHC 9.6.* bindists are built with a different
377 # toolchain than we are using (which I'm guessing from the fact
378 # that 9.6.4 bindists pass linker flags our ld doesn't support).
379 # With both 9.6.3 and 9.6.4 binary it is impossible to link against
380 # the clock package (probably a hsc2hs problem).
381 bb.packages.ghc963
382 else
383 bb.packages.ghc963Binary;
384 inherit (buildPackages.python3Packages) sphinx;
385 # Need to use apple's patched xattr until
386 # https://github.com/xattr/xattr/issues/44 and
387 # https://github.com/xattr/xattr/issues/55 are solved.
388 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
389 # 2023-01-15: Support range >= 11 && < 16
390 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
391 llvmPackages = pkgs.llvmPackages_15;
392 };
393 ghc9102 = callPackage ../development/compilers/ghc/9.10.2.nix {
394 bootPkgs =
395 # For GHC 9.6 no armv7l bindists are available.
396 if stdenv.buildPlatform.isAarch32 then
397 bb.packages.ghc963
398 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
399 bb.packages.ghc963
400 else if stdenv.buildPlatform.isDarwin then
401 # it seems like the GHC 9.6.* bindists are built with a different
402 # toolchain than we are using (which I'm guessing from the fact
403 # that 9.6.4 bindists pass linker flags our ld doesn't support).
404 # With both 9.6.3 and 9.6.4 binary it is impossible to link against
405 # the clock package (probably a hsc2hs problem).
406 bb.packages.ghc963
407 else
408 bb.packages.ghc963Binary;
409 inherit (buildPackages.python3Packages) sphinx;
410 # Need to use apple's patched xattr until
411 # https://github.com/xattr/xattr/issues/44 and
412 # https://github.com/xattr/xattr/issues/55 are solved.
413 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
414 # 2023-01-15: Support range >= 11 && < 16
415 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
416 llvmPackages = pkgs.llvmPackages_15;
417 };
418 ghc910 = compiler.ghc9102;
419 ghc9121 = callPackage ../development/compilers/ghc/9.12.1.nix {
420 bootPkgs =
421 # No suitable bindist packaged yet
422 bb.packages.ghc9102;
423 inherit (buildPackages.python3Packages) sphinx;
424 # Need to use apple's patched xattr until
425 # https://github.com/xattr/xattr/issues/44 and
426 # https://github.com/xattr/xattr/issues/55 are solved.
427 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
428 # 2024-12-21: Support range >= 13 && < 20
429 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_19;
430 llvmPackages = pkgs.llvmPackages_19;
431 };
432 ghc9122 = callPackage ../development/compilers/ghc/9.12.2.nix {
433 bootPkgs =
434 # No suitable bindist packaged yet
435 bb.packages.ghc9102;
436 inherit (buildPackages.python3Packages) sphinx;
437 # Need to use apple's patched xattr until
438 # https://github.com/xattr/xattr/issues/44 and
439 # https://github.com/xattr/xattr/issues/55 are solved.
440 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
441 # 2024-12-21: Support range >= 13 && < 20
442 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_19;
443 llvmPackages = pkgs.llvmPackages_19;
444 };
445 ghc912 = compiler.ghc9122;
446 ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
447 bootPkgs =
448 # No armv7l bindists are available.
449 if stdenv.buildPlatform.isAarch32 then
450 bb.packages.ghc984
451 else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
452 bb.packages.ghc984
453 else
454 bb.packages.ghc984Binary;
455 inherit (buildPackages.python3Packages) sphinx;
456 # Need to use apple's patched xattr until
457 # https://github.com/xattr/xattr/issues/44 and
458 # https://github.com/xattr/xattr/issues/55 are solved.
459 inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
460 # 2023-01-15: Support range >= 11 && < 16
461 buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_18;
462 llvmPackages = pkgs.llvmPackages_18;
463 };
464
465 ghcjs = compiler.ghcjs810;
466 ghcjs810 = callPackage ../development/compilers/ghcjs/8.10 {
467 bootPkgs = bb.packages.ghc810;
468 ghcjsSrcJson = ../development/compilers/ghcjs/8.10/git.json;
469 stage0 = ../development/compilers/ghcjs/8.10/stage0.nix;
470 };
471
472 # The integer-simple attribute set contains all the GHC compilers
473 # build with integer-simple instead of integer-gmp.
474 integer-simple =
475 let
476 integerSimpleGhcNames = pkgs.lib.filter (name: builtins.elem name integerSimpleIncludes) (
477 pkgs.lib.attrNames compiler
478 );
479 in
480 pkgs.recurseIntoAttrs (
481 pkgs.lib.genAttrs integerSimpleGhcNames (
482 name: compiler.${name}.override { enableIntegerSimple = true; }
483 )
484 );
485
486 # Starting from GHC 9, integer-{simple,gmp} is replaced by ghc-bignum
487 # with "native" and "gmp" backends.
488 native-bignum =
489 let
490 nativeBignumGhcNames = pkgs.lib.filter (name: !(builtins.elem name nativeBignumExcludes)) (
491 pkgs.lib.attrNames compiler
492 );
493 in
494 pkgs.recurseIntoAttrs (
495 pkgs.lib.genAttrs nativeBignumGhcNames (
496 name: compiler.${name}.override { enableNativeBignum = true; }
497 )
498 );
499 };
500
501 # Default overrides that are applied to all package sets.
502 packageOverrides = self: super: { };
503
504 # Always get compilers from `buildPackages`
505 packages =
506 let
507 bh = buildPackages.haskell;
508 in
509 {
510
511 ghc865Binary = callPackage ../development/haskell-modules {
512 buildHaskellPackages = bh.packages.ghc865Binary;
513 ghc = bh.compiler.ghc865Binary;
514 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
515 packageSetConfig = bootstrapPackageSet;
516 };
517 ghc8107Binary = callPackage ../development/haskell-modules {
518 buildHaskellPackages = bh.packages.ghc8107Binary;
519 ghc = bh.compiler.ghc8107Binary;
520 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
521 packageSetConfig = bootstrapPackageSet;
522 };
523 ghc902Binary = callPackage ../development/haskell-modules {
524 buildHaskellPackages = bh.packages.ghc902Binary;
525 ghc = bh.compiler.ghc902Binary;
526 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.0.x.nix { };
527 packageSetConfig = bootstrapPackageSet;
528 };
529 ghc924Binary = callPackage ../development/haskell-modules {
530 buildHaskellPackages = bh.packages.ghc924Binary;
531 ghc = bh.compiler.ghc924Binary;
532 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
533 packageSetConfig = bootstrapPackageSet;
534 };
535 ghc963Binary = callPackage ../development/haskell-modules {
536 buildHaskellPackages = bh.packages.ghc963Binary;
537 ghc = bh.compiler.ghc963Binary;
538 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
539 packageSetConfig = bootstrapPackageSet;
540 };
541 ghc984Binary = callPackage ../development/haskell-modules {
542 buildHaskellPackages = bh.packages.ghc984Binary;
543 ghc = bh.compiler.ghc984Binary;
544 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.8.x.nix { };
545 packageSetConfig = bootstrapPackageSet;
546 };
547 ghc8107 = callPackage ../development/haskell-modules {
548 buildHaskellPackages = bh.packages.ghc8107;
549 ghc = bh.compiler.ghc8107;
550 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
551 };
552 ghc810 = packages.ghc8107;
553 ghc902 = callPackage ../development/haskell-modules {
554 buildHaskellPackages = bh.packages.ghc902;
555 ghc = bh.compiler.ghc902;
556 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.0.x.nix { };
557 };
558 ghc90 = packages.ghc902;
559 ghc928 = callPackage ../development/haskell-modules {
560 buildHaskellPackages = bh.packages.ghc928;
561 ghc = bh.compiler.ghc928;
562 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
563 };
564 ghc92 = packages.ghc928;
565 ghc947 = callPackage ../development/haskell-modules {
566 buildHaskellPackages = bh.packages.ghc947;
567 ghc = bh.compiler.ghc947;
568 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
569 };
570 ghc948 = callPackage ../development/haskell-modules {
571 buildHaskellPackages = bh.packages.ghc948;
572 ghc = bh.compiler.ghc948;
573 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
574 };
575 ghc94 = packages.ghc948;
576 ghc963 = callPackage ../development/haskell-modules {
577 buildHaskellPackages = bh.packages.ghc963;
578 ghc = bh.compiler.ghc963;
579 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
580 };
581 ghc964 = callPackage ../development/haskell-modules {
582 buildHaskellPackages = bh.packages.ghc964;
583 ghc = bh.compiler.ghc964;
584 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
585 };
586 ghc965 = callPackage ../development/haskell-modules {
587 buildHaskellPackages = bh.packages.ghc965;
588 ghc = bh.compiler.ghc965;
589 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
590 };
591 ghc966 = callPackage ../development/haskell-modules {
592 buildHaskellPackages = bh.packages.ghc966;
593 ghc = bh.compiler.ghc966;
594 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
595 };
596 ghc967 = callPackage ../development/haskell-modules {
597 buildHaskellPackages = bh.packages.ghc967;
598 ghc = bh.compiler.ghc967;
599 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
600 };
601 ghc96 = packages.ghc967;
602 ghc981 = callPackage ../development/haskell-modules {
603 buildHaskellPackages = bh.packages.ghc981;
604 ghc = bh.compiler.ghc981;
605 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.8.x.nix { };
606 };
607 ghc982 = callPackage ../development/haskell-modules {
608 buildHaskellPackages = bh.packages.ghc982;
609 ghc = bh.compiler.ghc982;
610 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.8.x.nix { };
611 };
612 ghc983 = callPackage ../development/haskell-modules {
613 buildHaskellPackages = bh.packages.ghc983;
614 ghc = bh.compiler.ghc983;
615 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.8.x.nix { };
616 };
617 ghc984 = callPackage ../development/haskell-modules {
618 buildHaskellPackages = bh.packages.ghc984;
619 ghc = bh.compiler.ghc984;
620 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.8.x.nix { };
621 };
622 ghc98 = packages.ghc984;
623 ghc9101 = callPackage ../development/haskell-modules {
624 buildHaskellPackages = bh.packages.ghc9101;
625 ghc = bh.compiler.ghc9101;
626 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.10.x.nix { };
627 };
628 ghc9102 = callPackage ../development/haskell-modules {
629 buildHaskellPackages = bh.packages.ghc9102;
630 ghc = bh.compiler.ghc9102;
631 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.10.x.nix { };
632 };
633 ghc910 = packages.ghc9102;
634 ghc9121 = callPackage ../development/haskell-modules {
635 buildHaskellPackages = bh.packages.ghc9121;
636 ghc = bh.compiler.ghc9121;
637 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.12.x.nix { };
638 };
639 ghc9122 = callPackage ../development/haskell-modules {
640 buildHaskellPackages = bh.packages.ghc9122;
641 ghc = bh.compiler.ghc9122;
642 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.12.x.nix { };
643 };
644 ghc912 = packages.ghc9122;
645 ghcHEAD = callPackage ../development/haskell-modules {
646 buildHaskellPackages = bh.packages.ghcHEAD;
647 ghc = bh.compiler.ghcHEAD;
648 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.14.x.nix { };
649 };
650
651 ghcjs = packages.ghcjs810;
652 ghcjs810 = callPackage ../development/haskell-modules rec {
653 buildHaskellPackages = ghc.bootPkgs;
654 ghc = bh.compiler.ghcjs810;
655 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
656 packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs-8.x.nix { };
657 };
658
659 # The integer-simple attribute set contains package sets for all the GHC compilers
660 # using integer-simple instead of integer-gmp.
661 integer-simple =
662 let
663 integerSimpleGhcNames = pkgs.lib.filter (name: builtins.elem name integerSimpleIncludes) (
664 pkgs.lib.attrNames packages
665 );
666 in
667 pkgs.lib.genAttrs integerSimpleGhcNames (
668 name:
669 packages.${name}.override (oldAttrs: {
670 ghc = bh.compiler.integer-simple.${name};
671 buildHaskellPackages = bh.packages.integer-simple.${name};
672 overrides = pkgs.lib.composeExtensions (oldAttrs.overrides or (_: _: { })) (
673 _: _: { integer-simple = null; }
674 );
675 })
676 );
677
678 native-bignum =
679 let
680 nativeBignumGhcNames = pkgs.lib.filter (name: !(builtins.elem name nativeBignumExcludes)) (
681 pkgs.lib.attrNames compiler
682 );
683 in
684 pkgs.lib.genAttrs nativeBignumGhcNames (
685 name:
686 packages.${name}.override {
687 ghc = bh.compiler.native-bignum.${name};
688 buildHaskellPackages = bh.packages.native-bignum.${name};
689 }
690 );
691 };
692}