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