about summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
blob: d6672c22a20357cb7b874fe34efb33cc1d86ea0f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
{ pkgs, haskellLib }:

with haskellLib;

let
  inherit (pkgs.stdenv.hostPlatform) isDarwin;
in

self: super: {

  llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;

  # Disable GHC core libraries.
  array = null;
  base = null;
  binary = null;
  bytestring = null;
  Cabal = null;
  Cabal-syntax = null;
  containers = null;
  deepseq = null;
  directory = null;
  exceptions = null;
  filepath = null;
  ghc-bignum = null;
  ghc-boot = null;
  ghc-boot-th = null;
  ghc-compact = null;
  ghc-heap = null;
  ghc-prim = null;
  ghci = null;
  haskeline = null;
  hpc = null;
  integer-gmp = null;
  libiserv = null;
  mtl = null;
  parsec = null;
  pretty = null;
  process = null;
  rts = null;
  stm = null;
  system-cxx-std-lib = null;
  template-haskell = null;
  # GHC only builds terminfo if it is a native compiler
  terminfo = if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then null else doDistribute self.terminfo_0_4_1_6;
  text = null;
  time = null;
  transformers = null;
  unix = null;
  xhtml = null;

  # HLS
  # https://haskell-language-server.readthedocs.io/en/latest/support/plugin-support.html
  haskell-language-server = super.haskell-language-server.override {
    hls-class-plugin = null;
    hls-floskell-plugin = null;
    hls-fourmolu-plugin = null;
    hls-gadt-plugin = null;
    hls-hlint-plugin = null;
    hls-ormolu-plugin = null;
    hls-refactor-plugin = null;
    hls-rename-plugin = null;
    hls-retrie-plugin = null;
    hls-splice-plugin = null;
    hls-stylish-haskell-plugin = null;
  };

  # Version upgrades
  alex = doDistribute self.alex_3_4_0_1;
  some = doDistribute self.some_1_0_6;
  tagged = doDistribute self.tagged_0_8_8;
  th-abstraction = doDistribute self.th-abstraction_0_6_0_0;
  hspec-core = doDistribute self.hspec-core_2_11_7;
  hspec-meta = doDistribute self.hspec-meta_2_11_7;
  hspec-discover = doDistribute self.hspec-discover_2_11_7;
  hspec = doDistribute self.hspec_2_11_7;
  hspec-expectations = doDistribute self.hspec-expectations_0_8_4;
  bifunctors = doDistribute self.bifunctors_5_6_1;
  free = doDistribute self.free_5_2;
  semigroupoids = doDistribute self.semigroupoids_6_0_0_1;
  doctest = doDistribute self.doctest_0_22_2;
  ghc-lib-parser = doDistribute self.ghc-lib-parser_9_8_1_20231121;
  ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_8_0_0;
  ghc-lib = doDistribute self.ghc-lib_9_8_1_20231121;
  megaparsec = doDistribute self.megaparsec_9_6_1;
  tasty-hspec = doDistribute self.tasty-hspec_1_2_0_4;
  hedgehog = doDistribute self.hedgehog_1_4;
  rebase = doDistribute self.rebase_1_20_2;
  rerebase = doDistribute self.rerebase_1_20_2;
  aeson = doDistribute self.aeson_2_2_1_0;
  aeson-pretty = doDistribute self.aeson-pretty_0_8_10;
  attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_0_1;
  ormolu = doDistribute self.ormolu_0_7_3_0;
  fourmolu = doDistribute (dontCheck self.fourmolu_0_14_1_0);

  # Jailbreaks
  commutative-semigroups = doJailbreak super.commutative-semigroups; # base < 4.19
  ghc-trace-events = doJailbreak super.ghc-trace-events; # text < 2.1, bytestring < 0.12, base < 4.19
  primitive-unlifted = doJailbreak super.primitive-unlifted; # bytestring < 0.12
  newtype-generics = doJailbreak super.newtype-generics; # base < 4.19
  hw-prim = doJailbreak super.hw-prim; # doctest < 0.22, ghc-prim < 0.11, hedgehog < 1.4
  hw-fingertree = doJailbreak super.hw-fingertree; # deepseq <1.5, doctest < 0.22, hedgehog < 1.4
  # Too strict bound on base, believe it or not.
  # https://github.com/judah/terminfo/pull/55#issuecomment-1876894232
  terminfo_0_4_1_6 = doJailbreak super.terminfo_0_4_1_6;

  # Test suite issues
  unordered-containers = dontCheck super.unordered-containers; # ChasingBottoms doesn't support base 4.20
  lifted-base = dontCheck super.lifted-base; # doesn't compile with transformers == 0.6.*
  # https://github.com/wz1000/HieDb/issues/64
  hiedb = overrideCabal (drv: {
    testFlags = drv.testFlags or [ ] ++ [
      "--match" "!/hiedb/Command line/point-info/correctly prints type signatures/"
    ];
  }) super.hiedb;

  # Unbroken due to hspec* upgrades
  hspec-api = doDistribute (unmarkBroken super.hspec-api);
}