biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / development / haskell-modules / configuration-ghc-9.8.x.nix
blob7e89ea668e0280673ee3146a8347009e6f0cef9a
1 { pkgs, haskellLib }:
3 with haskellLib;
5 let
6   inherit (pkgs.stdenv.hostPlatform) isDarwin;
8 in
10 self: super: {
12   llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
14   # Disable GHC core libraries.
15   array = null;
16   base = null;
17   binary = null;
18   bytestring = null;
19   Cabal = null;
20   Cabal-syntax = null;
21   containers = null;
22   deepseq = null;
23   directory = null;
24   exceptions = null;
25   filepath = null;
26   ghc-bignum = null;
27   ghc-boot = null;
28   ghc-boot-th = null;
29   ghc-compact = null;
30   ghc-heap = null;
31   ghc-prim = null;
32   ghci = null;
33   haskeline = null;
34   hpc = null;
35   integer-gmp = null;
36   libiserv = null;
37   mtl = null;
38   parsec = null;
39   pretty = null;
40   process = null;
41   rts = null;
42   stm = null;
43   system-cxx-std-lib = null;
44   template-haskell = null;
45   # GHC only builds terminfo if it is a native compiler
46   terminfo = if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then null else doDistribute self.terminfo_0_4_1_6;
47   text = null;
48   time = null;
49   transformers = null;
50   unix = null;
51   xhtml = null;
53   #
54   # Version upgrades
55   #
56   th-abstraction = doDistribute self.th-abstraction_0_7_0_0;
57   ghc-lib-parser = doDistribute self.ghc-lib-parser_9_8_2_20240223;
58   ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_8_0_2;
59   ghc-lib = doDistribute self.ghc-lib_9_8_2_20240223;
60   megaparsec = doDistribute self.megaparsec_9_6_1;
61   # aeson 2.2.3.0 seemingly unnecessesarily bumped the lower bound on hashable
62   # https://github.com/haskell/aeson/commit/1a666febd0775d8e88d315ece1b97cd20602fb5f
63   aeson = doJailbreak (doDistribute self.aeson_2_2_3_0);
64   attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_2_0;
65   xmonad = doDistribute self.xmonad_0_18_0;
66   apply-refact = self.apply-refact_0_14_0_0;
67   ormolu = self.ormolu_0_7_4_0;
68   fourmolu = self.fourmolu_0_15_0_0;
69   stylish-haskell = self.stylish-haskell_0_14_6_0;
70   hlint = self.hlint_3_8;
71   ghc-syntax-highlighter = self.ghc-syntax-highlighter_0_0_12_0;
72   websockets = self.websockets_0_13_0_0;
73   th-desugar = doJailbreak self.th-desugar_1_16; # th-abstraction >=0.6 && <0.7
74   singletons-th = self.singletons-th_3_3;
75   singletons-base = self.singletons-base_3_3;
76   ghc-tags = self.ghc-tags_1_8;
78   # A given major version of ghc-exactprint only supports one version of GHC.
79   ghc-exactprint = self.ghc-exactprint_1_8_0_0;
80   ghc-exactprint_1_8_0_0 = addBuildDepends [
81     self.Diff
82     self.HUnit
83     self.data-default
84     self.extra
85     self.free
86     self.ghc-paths
87     self.ordered-containers
88     self.silently
89     self.syb
90   ] super.ghc-exactprint_1_8_0_0;
92   #
93   # Jailbreaks
94   #
95   blaze-svg = doJailbreak super.blaze-svg; # base <4.19
96   commutative-semigroups = doJailbreak super.commutative-semigroups; # base < 4.19
97   dependent-sum-template = doJailbreak super.dependent-sum-template_0_2_0_1; # template-haskell < 2.21
98   diagrams-lib = doJailbreak super.diagrams-lib; # base <4.19, text <2.1
99   diagrams-postscript = doJailbreak super.diagrams-postscript;  # base <4.19, bytestring <0.12
100   diagrams-svg = doJailbreak super.diagrams-svg;  # base <4.19, text <2.1
101   generics-sop = doJailbreak super.generics-sop_0_5_1_4; # th-abstraction >=0.6 && <0.7
102   ghc-trace-events = doJailbreak super.ghc-trace-events; # text < 2.1, bytestring < 0.12, base < 4.19
103   hashing = doJailbreak super.hashing; # bytestring <0.12
104   json-sop = doJailbreak super.json-sop; # aeson <2.2, base <4.19, text <2.1
105   primitive-unlifted = doJailbreak super.primitive-unlifted; # bytestring < 0.12
106   statestack = doJailbreak super.statestack; # base < 4.19
107   newtype-generics = doJailbreak super.newtype-generics; # base < 4.19
108   hw-prim = doJailbreak super.hw-prim; # doctest < 0.22, ghc-prim < 0.11, hedgehog < 1.4
109   svg-builder = doJailbreak super.svg-builder; # base <4.19, bytestring <0.12, text <2.1
110   # Too strict bound on base, believe it or not.
111   # https://github.com/judah/terminfo/pull/55#issuecomment-1876894232
112   terminfo_0_4_1_6 = doJailbreak super.terminfo_0_4_1_6;
113   HaskellNet-SSL = doJailbreak super.HaskellNet-SSL; # bytestring >=0.9 && <0.12
114   raven-haskell = doJailbreak super.raven-haskell; # aeson <2.2
115   saltine = doJailbreak super.saltine; # bytestring  && <0.12, deepseq <1.5, text > 1.2 && <1.3 || >=2.0 && <2.1
116   stripe-concepts = doJailbreak super.stripe-concepts; # text >=1.2.5 && <1.3 || >=2.0 && <2.1
117   stripe-signature = doJailbreak super.stripe-signature; # text >=1.2.5 && <1.3 || >=2.0 && <2.1
118   string-random = doJailbreak super.string-random; # text >=1.2.2.1 && <2.1
119   inflections = doJailbreak super.inflections; # text >=0.2 && <2.1
120   universe-some = doJailbreak super.universe-some; # th-abstraction < 0.7
122   #
123   # Test suite issues
124   #
125   unordered-containers = dontCheck super.unordered-containers; # ChasingBottoms doesn't support base 4.20
126   lifted-base = dontCheck super.lifted-base; # doesn't compile with transformers == 0.6.*
127   bsb-http-chunked = dontCheck super.bsb-http-chunked; # umaintained, test suite doesn't compile anymore
128   pcre-heavy = dontCheck super.pcre-heavy; # GHC warnings cause the tests to fail
130   #
131   # Other build fixes
132   #
134   # 2023-12-23: It needs this to build under ghc-9.6.3.
135   #   A factor of 100 is insufficent, 200 seems seems to work.
136   hip = appendConfigureFlag "--ghc-options=-fsimpl-tick-factor=200" super.hip;
138   # Loosen bounds
139   patch = appendPatch (pkgs.fetchpatch {
140     url = "https://github.com/reflex-frp/patch/commit/91fed138483a7bf2b098d45b9e5cc36191776320.patch";
141     sha256 = "sha256-/KLfIshia88lU5G/hA7ild7+a2mqc7qgSa9AEBqEqkQ=";
142   }) super.patch;
143   reflex = appendPatch (pkgs.fetchpatch {
144     url = "https://github.com/reflex-frp/reflex/commit/0ac53ca3eab2649dd3f3edc585e10af8d13b28cd.patch";
145     sha256 = "sha256-umjwgdSKebJdRrXjwHhsi8HBqotx1vFibY9ttLkyT/0=";
146   }) super.reflex;