Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / top-level / haskell-packages.nix
blobb8f11100d39cd3bcf6e993c11ddcdb3ee3f7bc1a
1 { buildPackages, 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   nativeBignumIncludes = [
13     "ghc90"
14     "ghc902"
15     "ghc92"
16     "ghc924"
17     "ghc925"
18     "ghc926"
19     "ghc927"
20     "ghc928"
21     "ghc94"
22     "ghc942"
23     "ghc943"
24     "ghc944"
25     "ghc945"
26     "ghc946"
27     "ghc947"
28     "ghc948"
29     "ghc96"
30     "ghc962"
31     "ghc963"
32     "ghc98"
33     "ghc981"
34     "ghcHEAD"
35   ];
37   haskellLibUncomposable = import ../development/haskell-modules/lib {
38     inherit (pkgs) lib;
39     inherit pkgs;
40   };
42   callPackage = newScope {
43     haskellLib = haskellLibUncomposable.compose;
44     overrides = pkgs.haskell.packageOverrides;
45   };
47   bootstrapPackageSet = self: super: {
48     mkDerivation = drv: super.mkDerivation (drv // {
49       doCheck = false;
50       doHaddock = false;
51       enableExecutableProfiling = false;
52       enableLibraryProfiling = false;
53       enableSharedExecutables = false;
54       enableSharedLibraries = false;
55     });
56   };
58   # Use this rather than `rec { ... }` below for sake of overlays.
59   inherit (pkgs.haskell) compiler packages;
61 in {
62   lib = haskellLibUncomposable;
64   package-list = callPackage ../development/haskell-modules/package-list.nix {};
66   compiler = {
67     ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix {
68       llvmPackages = pkgs.llvmPackages_6;
69     };
71     ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
72       llvmPackages = pkgs.llvmPackages_9;
73     };
75     ghc8107Binary = callPackage ../development/compilers/ghc/8.10.7-binary.nix {
76       llvmPackages = pkgs.llvmPackages_12;
77     };
79     ghc924Binary = callPackage ../development/compilers/ghc/9.2.4-binary.nix {
80       llvmPackages = pkgs.llvmPackages_12;
81     };
83     ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
84       bootPkgs =
85         # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
86         # 8.10.2 is needed as using 8.10.7 is broken due to RTS-incompatibilities
87         # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
88         if stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isMusl then
89           packages.ghc8102Binary
90         else
91           packages.ghc865Binary;
92       inherit (buildPackages.python3Packages) sphinx;
93       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_7;
94       llvmPackages = pkgs.llvmPackages_7;
95     };
96     ghc88 = compiler.ghc884;
97     ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix {
98       bootPkgs =
99         # the oldest ghc with aarch64-darwin support is 8.10.5
100         if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
101           # to my (@a-m-joseph) knowledge there are no newer official binaries for this platform
102           packages.ghc865Binary
103         else
104           packages.ghc8107Binary;
105       inherit (buildPackages.python3Packages) sphinx;
106       # Need to use apple's patched xattr until
107       # https://github.com/xattr/xattr/issues/44 and
108       # https://github.com/xattr/xattr/issues/55 are solved.
109       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
110       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
111       llvmPackages = pkgs.llvmPackages_12;
112     };
113     ghc810 = compiler.ghc8107;
114     ghc902 = callPackage ../development/compilers/ghc/9.0.2.nix {
115       bootPkgs =
116         # the oldest ghc with aarch64-darwin support is 8.10.5
117         if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
118           packages.ghc810
119         else
120           packages.ghc8107Binary;
121       inherit (buildPackages.python3Packages) sphinx;
122       inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr;
123       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
124       llvmPackages = pkgs.llvmPackages_12;
125     };
126     ghc90 = compiler.ghc902;
127     ghc924 = callPackage ../development/compilers/ghc/9.2.4.nix {
128       bootPkgs =
129         if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
130           packages.ghc810
131         else
132           packages.ghc8107Binary;
133       inherit (buildPackages.python3Packages) sphinx;
134       # Need to use apple's patched xattr until
135       # https://github.com/xattr/xattr/issues/44 and
136       # https://github.com/xattr/xattr/issues/55 are solved.
137       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
138       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
139       llvmPackages = pkgs.llvmPackages_12;
140     };
141     ghc925 = callPackage ../development/compilers/ghc/9.2.5.nix {
142       bootPkgs =
143         if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
144           packages.ghc810
145         else
146           packages.ghc8107Binary;
147       inherit (buildPackages.python3Packages) sphinx;
148       # Need to use apple's patched xattr until
149       # https://github.com/xattr/xattr/issues/44 and
150       # https://github.com/xattr/xattr/issues/55 are solved.
151       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
152       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
153       llvmPackages = pkgs.llvmPackages_12;
154     };
155     ghc926 = callPackage ../development/compilers/ghc/9.2.6.nix {
156       bootPkgs =
157         if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
158           packages.ghc810
159         else
160           packages.ghc8107Binary;
161       inherit (buildPackages.python3Packages) sphinx;
162       # Need to use apple's patched xattr until
163       # https://github.com/xattr/xattr/issues/44 and
164       # https://github.com/xattr/xattr/issues/55 are solved.
165       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
166       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
167       llvmPackages = pkgs.llvmPackages_12;
168     };
169     ghc927 = callPackage ../development/compilers/ghc/9.2.7.nix {
170       bootPkgs =
171         if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
172           packages.ghc810
173         else
174           packages.ghc8107Binary;
175       inherit (buildPackages.python3Packages) sphinx;
176       # Need to use apple's patched xattr until
177       # https://github.com/xattr/xattr/issues/44 and
178       # https://github.com/xattr/xattr/issues/55 are solved.
179       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
180       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
181       llvmPackages = pkgs.llvmPackages_12;
182     };
183     ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix {
184       bootPkgs =
185         if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
186           packages.ghc810
187         else
188           packages.ghc8107Binary;
189       inherit (buildPackages.python3Packages) sphinx;
190       # Need to use apple's patched xattr until
191       # https://github.com/xattr/xattr/issues/44 and
192       # https://github.com/xattr/xattr/issues/55 are solved.
193       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
194       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
195       llvmPackages = pkgs.llvmPackages_12;
196     };
197     ghc92 = compiler.ghc928;
198     ghc942 = callPackage ../development/compilers/ghc/9.4.2.nix {
199       bootPkgs =
200         # Building with 9.2 is broken due to
201         # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
202         # Use 8.10 as a workaround where possible to keep bootstrap path short.
204         # On ARM text won't build with GHC 8.10.*
205         if stdenv.hostPlatform.isAarch then
206           # TODO(@sternenseemann): package bindist
207           packages.ghc902
208         # No suitable bindists for powerpc64le
209         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
210           packages.ghc902
211         else
212           packages.ghc8107Binary;
213       inherit (buildPackages.python3Packages) sphinx;
214       # Need to use apple's patched xattr until
215       # https://github.com/xattr/xattr/issues/44 and
216       # https://github.com/xattr/xattr/issues/55 are solved.
217       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
218       # Support range >= 10 && < 14
219       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
220       llvmPackages = pkgs.llvmPackages_12;
221     };
222     ghc943 = callPackage ../development/compilers/ghc/9.4.3.nix {
223       bootPkgs =
224         # Building with 9.2 is broken due to
225         # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
226         # Use 8.10 as a workaround where possible to keep bootstrap path short.
228         # On ARM text won't build with GHC 8.10.*
229         if stdenv.hostPlatform.isAarch then
230           # TODO(@sternenseemann): package bindist
231           packages.ghc902
232         # No suitable bindists for powerpc64le
233         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
234           packages.ghc902
235         else
236           packages.ghc8107Binary;
237       inherit (buildPackages.python3Packages) sphinx;
238       # Need to use apple's patched xattr until
239       # https://github.com/xattr/xattr/issues/44 and
240       # https://github.com/xattr/xattr/issues/55 are solved.
241       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
242       # Support range >= 10 && < 14
243       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
244       llvmPackages = pkgs.llvmPackages_12;
245     };
246     ghc944 = callPackage ../development/compilers/ghc/9.4.4.nix {
247       bootPkgs =
248         # Building with 9.2 is broken due to
249         # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
250         # Use 8.10 as a workaround where possible to keep bootstrap path short.
252         # On ARM text won't build with GHC 8.10.*
253         if stdenv.hostPlatform.isAarch then
254           # TODO(@sternenseemann): package bindist
255           packages.ghc902
256         # No suitable bindists for powerpc64le
257         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
258           packages.ghc902
259         else
260           packages.ghc8107Binary;
261       inherit (buildPackages.python3Packages) sphinx;
262       # Need to use apple's patched xattr until
263       # https://github.com/xattr/xattr/issues/44 and
264       # https://github.com/xattr/xattr/issues/55 are solved.
265       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
266       # Support range >= 10 && < 14
267       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
268       llvmPackages = pkgs.llvmPackages_12;
269     };
270     ghc945 = callPackage ../development/compilers/ghc/9.4.5.nix {
271       bootPkgs =
272         # Building with 9.2 is broken due to
273         # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
274         # Use 8.10 as a workaround where possible to keep bootstrap path short.
276         # On ARM text won't build with GHC 8.10.*
277         if stdenv.hostPlatform.isAarch then
278           # TODO(@sternenseemann): package bindist
279           packages.ghc902
280         # No suitable bindists for powerpc64le
281         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
282           packages.ghc902
283         else
284           packages.ghc8107Binary;
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 >= 10 && < 14
291       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
292       llvmPackages = pkgs.llvmPackages_12;
293     };
294     ghc946 = callPackage ../development/compilers/ghc/9.4.6.nix {
295       bootPkgs =
296         # Building with 9.2 is broken due to
297         # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
298         # Use 8.10 as a workaround where possible to keep bootstrap path short.
300         # On ARM text won't build with GHC 8.10.*
301         if stdenv.hostPlatform.isAarch then
302           # TODO(@sternenseemann): package bindist
303           packages.ghc902
304         # No suitable bindists for powerpc64le
305         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
306           packages.ghc902
307         else
308           packages.ghc8107Binary;
309       inherit (buildPackages.python3Packages) sphinx;
310       # Need to use apple's patched xattr until
311       # https://github.com/xattr/xattr/issues/44 and
312       # https://github.com/xattr/xattr/issues/55 are solved.
313       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
314       # Support range >= 10 && < 14
315       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
316       llvmPackages = pkgs.llvmPackages_12;
317     };
318     ghc947 = callPackage ../development/compilers/ghc/9.4.7.nix {
319       bootPkgs =
320         # Building with 9.2 is broken due to
321         # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
322         # Use 8.10 as a workaround where possible to keep bootstrap path short.
324         # On ARM text won't build with GHC 8.10.*
325         if stdenv.hostPlatform.isAarch then
326           # TODO(@sternenseemann): package bindist
327           packages.ghc902
328         # No suitable bindists for powerpc64le
329         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
330           packages.ghc902
331         else
332           packages.ghc8107Binary;
333       inherit (buildPackages.python3Packages) sphinx;
334       # Need to use apple's patched xattr until
335       # https://github.com/xattr/xattr/issues/44 and
336       # https://github.com/xattr/xattr/issues/55 are solved.
337       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
338       # Support range >= 10 && < 14
339       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
340       llvmPackages = pkgs.llvmPackages_12;
341     };
342     ghc948 = callPackage ../development/compilers/ghc/9.4.8.nix {
343       bootPkgs =
344         # Building with 9.2 is broken due to
345         # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
346         # Use 8.10 as a workaround where possible to keep bootstrap path short.
348         # On ARM text won't build with GHC 8.10.*
349         if stdenv.hostPlatform.isAarch then
350           # TODO(@sternenseemann): package bindist
351           packages.ghc902
352         # No suitable bindists for powerpc64le
353         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
354           packages.ghc902
355         else
356           packages.ghc8107Binary;
357       inherit (buildPackages.python3Packages) sphinx;
358       # Need to use apple's patched xattr until
359       # https://github.com/xattr/xattr/issues/44 and
360       # https://github.com/xattr/xattr/issues/55 are solved.
361       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
362       # Support range >= 10 && < 14
363       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
364       llvmPackages = pkgs.llvmPackages_12;
365     };
366     ghc94 = compiler.ghc948;
367     ghc962 = callPackage ../development/compilers/ghc/9.6.2.nix {
368       bootPkgs =
369         # For GHC 9.2 no armv7l bindists are available.
370         if stdenv.hostPlatform.isAarch32 then
371           packages.ghc924
372         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
373           packages.ghc924
374         else
375           packages.ghc924Binary;
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     ghc963 = callPackage ../development/compilers/ghc/9.6.3.nix {
386       bootPkgs =
387         # For GHC 9.2 no armv7l bindists are available.
388         if stdenv.hostPlatform.isAarch32 then
389           packages.ghc924
390         else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
391           packages.ghc924
392         else
393           packages.ghc924Binary;
394       inherit (buildPackages.python3Packages) sphinx;
395       # Need to use apple's patched xattr until
396       # https://github.com/xattr/xattr/issues/44 and
397       # https://github.com/xattr/xattr/issues/55 are solved.
398       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
399       # Support range >= 11 && < 16
400       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
401       llvmPackages = pkgs.llvmPackages_15;
402     };
403     ghc96 = compiler.ghc963;
404     ghc981 = callPackage ../development/compilers/ghc/9.8.1.nix {
405       # No bindist packaged for 9.4.* yet
406       bootPkgs = packages.ghc947;
407       inherit (buildPackages.python3Packages) sphinx;
408       # Need to use apple's patched xattr until
409       # https://github.com/xattr/xattr/issues/44 and
410       # https://github.com/xattr/xattr/issues/55 are solved.
411       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
412       # Support range >= 11 && < 16
413       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
414       llvmPackages = pkgs.llvmPackages_15;
415     };
416     ghc98 = compiler.ghc981;
417     ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
418       bootPkgs = packages.ghc963;
419       inherit (buildPackages.python3Packages) sphinx;
420       # Need to use apple's patched xattr until
421       # https://github.com/xattr/xattr/issues/44 and
422       # https://github.com/xattr/xattr/issues/55 are solved.
423       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
424       # 2023-01-15: Support range >= 11 && < 16
425       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
426       llvmPackages = pkgs.llvmPackages_15;
427     };
429     ghcjs = compiler.ghcjs810;
430     ghcjs810 = callPackage ../development/compilers/ghcjs/8.10 {
431       bootPkgs = packages.ghc810;
432       ghcjsSrcJson = ../development/compilers/ghcjs/8.10/git.json;
433       stage0 = ../development/compilers/ghcjs/8.10/stage0.nix;
434     };
436     # The integer-simple attribute set contains all the GHC compilers
437     # build with integer-simple instead of integer-gmp.
438     integer-simple = let
439       integerSimpleGhcNames = pkgs.lib.filter
440         (name: builtins.elem name integerSimpleIncludes)
441         (pkgs.lib.attrNames compiler);
442     in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
443       integerSimpleGhcNames
444       (name: compiler.${name}.override { enableIntegerSimple = true; }));
446     # Starting from GHC 9, integer-{simple,gmp} is replaced by ghc-bignum
447     # with "native" and "gmp" backends.
448     native-bignum = let
449       nativeBignumGhcNames = pkgs.lib.filter
450         (name: builtins.elem name nativeBignumIncludes)
451         (pkgs.lib.attrNames compiler);
452     in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
453       nativeBignumGhcNames
454       (name: compiler.${name}.override { enableNativeBignum = true; }));
455   };
457   # Default overrides that are applied to all package sets.
458   packageOverrides = self : super : {};
460   # Always get compilers from `buildPackages`
461   packages = let bh = buildPackages.haskell; in {
463     ghc865Binary = callPackage ../development/haskell-modules {
464       buildHaskellPackages = bh.packages.ghc865Binary;
465       ghc = bh.compiler.ghc865Binary;
466       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
467       packageSetConfig = bootstrapPackageSet;
468     };
469     ghc8102Binary = callPackage ../development/haskell-modules {
470       buildHaskellPackages = bh.packages.ghc8102Binary;
471       ghc = bh.compiler.ghc8102Binary;
472       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
473       packageSetConfig = bootstrapPackageSet;
474     };
475     ghc8107Binary = callPackage ../development/haskell-modules {
476       buildHaskellPackages = bh.packages.ghc8107Binary;
477       ghc = bh.compiler.ghc8107Binary;
478       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
479       packageSetConfig = bootstrapPackageSet;
480     };
481     ghc924Binary = callPackage ../development/haskell-modules {
482       buildHaskellPackages = bh.packages.ghc924Binary;
483       ghc = bh.compiler.ghc924Binary;
484       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
485       packageSetConfig = bootstrapPackageSet;
486     };
487     ghc884 = callPackage ../development/haskell-modules {
488       buildHaskellPackages = bh.packages.ghc884;
489       ghc = bh.compiler.ghc884;
490       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
491     };
492     ghc88 = packages.ghc884;
493     ghc8107 = callPackage ../development/haskell-modules {
494       buildHaskellPackages = bh.packages.ghc8107;
495       ghc = bh.compiler.ghc8107;
496       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
497     };
498     ghc810 = packages.ghc8107;
499     ghc902 = callPackage ../development/haskell-modules {
500       buildHaskellPackages = bh.packages.ghc902;
501       ghc = bh.compiler.ghc902;
502       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.0.x.nix { };
503     };
504     ghc90 = packages.ghc902;
505     ghc924 = callPackage ../development/haskell-modules {
506       buildHaskellPackages = bh.packages.ghc924;
507       ghc = bh.compiler.ghc924;
508       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
509     };
510     ghc925 = callPackage ../development/haskell-modules {
511       buildHaskellPackages = bh.packages.ghc925;
512       ghc = bh.compiler.ghc925;
513       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
514     };
515     ghc926 = callPackage ../development/haskell-modules {
516       buildHaskellPackages = bh.packages.ghc926;
517       ghc = bh.compiler.ghc926;
518       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
519     };
520     ghc927 = callPackage ../development/haskell-modules {
521       buildHaskellPackages = bh.packages.ghc927;
522       ghc = bh.compiler.ghc927;
523       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
524     };
525     ghc928 = callPackage ../development/haskell-modules {
526       buildHaskellPackages = bh.packages.ghc928;
527       ghc = bh.compiler.ghc928;
528       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
529     };
530     ghc92 = packages.ghc928;
531     ghc942 = callPackage ../development/haskell-modules {
532       buildHaskellPackages = bh.packages.ghc942;
533       ghc = bh.compiler.ghc942;
534       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
535     };
536     ghc943 = callPackage ../development/haskell-modules {
537       buildHaskellPackages = bh.packages.ghc943;
538       ghc = bh.compiler.ghc943;
539       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
540     };
541     ghc944 = callPackage ../development/haskell-modules {
542       buildHaskellPackages = bh.packages.ghc944;
543       ghc = bh.compiler.ghc944;
544       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
545     };
546     ghc945 = callPackage ../development/haskell-modules {
547       buildHaskellPackages = bh.packages.ghc945;
548       ghc = bh.compiler.ghc945;
549       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
550     };
551     ghc946 = callPackage ../development/haskell-modules {
552       buildHaskellPackages = bh.packages.ghc946;
553       ghc = bh.compiler.ghc946;
554       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
555     };
556     ghc947 = callPackage ../development/haskell-modules {
557       buildHaskellPackages = bh.packages.ghc947;
558       ghc = bh.compiler.ghc947;
559       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
560     };
561     ghc948 = callPackage ../development/haskell-modules {
562       buildHaskellPackages = bh.packages.ghc948;
563       ghc = bh.compiler.ghc948;
564       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
565     };
566     ghc94 = packages.ghc948;
567     ghc962 = callPackage ../development/haskell-modules {
568       buildHaskellPackages = bh.packages.ghc962;
569       ghc = bh.compiler.ghc962;
570       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
571     };
572     ghc963 = callPackage ../development/haskell-modules {
573       buildHaskellPackages = bh.packages.ghc963;
574       ghc = bh.compiler.ghc963;
575       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
576     };
577     ghc96 = packages.ghc963;
578     ghc981 = callPackage ../development/haskell-modules {
579       buildHaskellPackages = bh.packages.ghc981;
580       ghc = bh.compiler.ghc981;
581       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.8.x.nix { };
582     };
583     ghc98 = packages.ghc981;
584     ghcHEAD = callPackage ../development/haskell-modules {
585       buildHaskellPackages = bh.packages.ghcHEAD;
586       ghc = bh.compiler.ghcHEAD;
587       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.10.x.nix { };
588     };
590     ghcjs = packages.ghcjs810;
591     ghcjs810 = callPackage ../development/haskell-modules rec {
592       buildHaskellPackages = ghc.bootPkgs;
593       ghc = bh.compiler.ghcjs810;
594       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
595       packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
596     };
598     # The integer-simple attribute set contains package sets for all the GHC compilers
599     # using integer-simple instead of integer-gmp.
600     integer-simple =
601       let
602         integerSimpleGhcNames = pkgs.lib.filter
603           (name: builtins.elem name integerSimpleIncludes)
604           (pkgs.lib.attrNames packages);
605       in
606       pkgs.lib.genAttrs integerSimpleGhcNames
607         (name:
608           packages.${name}.override (oldAttrs: {
609             ghc = bh.compiler.integer-simple.${name};
610             buildHaskellPackages = bh.packages.integer-simple.${name};
611             overrides =
612               pkgs.lib.composeExtensions
613                 (oldAttrs.overrides or (_: _: {}))
614                 (_: _: { integer-simple = null; });
615           })
616         );
618     native-bignum =
619       let
620         nativeBignumGhcNames = pkgs.lib.filter
621           (name: builtins.elem name nativeBignumIncludes)
622           (pkgs.lib.attrNames compiler);
623       in
624       pkgs.lib.genAttrs nativeBignumGhcNames
625         (name:
626           packages.${name}.override {
627             ghc = bh.compiler.native-bignum.${name};
628             buildHaskellPackages = bh.packages.native-bignum.${name};
629           }
630         );
631   };