|
4 | 4 | with pkgs.haskell.lib;
|
5 | 5 |
|
6 | 6 | let
|
| 7 | + cabal-src = pkgs.fetchFromGitHub |
| 8 | + { owner = "haskell"; |
| 9 | + repo = "cabal"; |
| 10 | + sha256 = "13x3dr257ivalhgiffjnyazffimn4a817dj3p96vvi50nx67cml2"; |
| 11 | + rev = "3af1731c01c35614fd902ee5c1aec40f5587fde6"; |
| 12 | + }; |
7 | 13 | ghcidSrc = pkgs.fetchFromGitHub
|
8 | 14 | { owner = "ndmitchell";
|
9 | 15 | repo = "ghcid";
|
10 | 16 | sha256 = "0bsjbb6n7ssg411k2xj4f881v392hvb7xln99bq1r3vkg14mqqsd";
|
11 | 17 | rev = "e2852979aa644c8fed92d46ab529d2c6c1c62b59";
|
12 | 18 | };
|
13 | | - hgdbmiSrc = pkgs.fetchFromGitHub |
14 | | - { owner = "copton"; |
15 | | - repo = "hgdbmi"; |
16 | | - sha256 = "1s6gqd1680sm4xlxy324s6vvdn90hrw17s57zl34ljcck3r5qj6x"; |
17 | | - rev = "faa0881cad2ac3cc3c28009fd589b9bd7866c8dc"; |
| 19 | + zip-cmd-src = pkgs.fetchFromGitHub |
| 20 | + { owner = "grin-compiler"; |
| 21 | + repo = "zip-cmd"; |
| 22 | + sha256 = "1gsdcip4qrd8bbxira7v9yz1b05c0y7jbbd440hwdh5z6y94ah9g"; |
| 23 | + rev = "97a6a768803958faee855de115c0402f29bad32b"; |
| 24 | + }; |
| 25 | + external-stg-src = pkgs.fetchFromGitHub |
| 26 | + { owner = "grin-compiler"; |
| 27 | + repo = "ghc-whole-program-compiler-project"; |
| 28 | + sha256 = "0a9qxm29cn0vy5v0d399944j0155ck8pqqk58w1y350g70anych0"; |
| 29 | + rev = "9d7a96a0b831f980d8c9d5a30a9185b64fbbfa31"; |
| 30 | + }; |
| 31 | + souffle-haskell-src = pkgs.fetchFromGitHub |
| 32 | + { owner = "luc-tielen"; |
| 33 | + repo = "souffle-haskell"; |
| 34 | + sha256 = "sha256-/BdDkSTlxh3m3ApxqdbDQ1yIGiE6mTfDljfpEYgE5Tg="; |
| 35 | + rev = "f8c9fc45eed709110af3d3301393f63f4535c71e"; |
| 36 | + }; |
| 37 | + type-errors-pretty-src = pkgs.fetchFromGitHub |
| 38 | + { owner = "kowainik"; |
| 39 | + repo = "type-errors-pretty"; |
| 40 | + sha256 = "1yylw5c8ffzybcv7cm6ff0k88an4iz0fhc59md09s9zlns03f3d0"; |
| 41 | + rev = "c85d6d0a7bf2278ddb03abddb5782a5b6095d343"; |
| 42 | + }; |
| 43 | + ghc-wpc-src = builtins.fetchGit |
| 44 | + { url = "https://github.com/grin-compiler/ghc-wpc.git"; |
| 45 | + ref = "ghc-whole-program-compiler"; |
| 46 | + submodules = true; |
18 | 47 | };
|
| 48 | + ghc-patch = pkgs.fetchpatch { |
| 49 | + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/ad2ef3a13f1eb000eab8e3d64592373b91a52806.patch"; |
| 50 | + sha256 = "sha256-Dm9nOcS20wiA5Op4vF9Y8YqcgSSC3IKRlYusBukzf8Y="; |
| 51 | + }; |
| 52 | + |
| 53 | + overrides961 = self: super: { |
| 54 | + Cabal = self.callCabal2nix "Cabal" "${cabal-src}/Cabal" {}; |
| 55 | + Cabal-syntax = self.callCabal2nix "Cabal-syntax" "${cabal-src}/Cabal-syntax" {}; |
| 56 | + Cabal-tests = (self.callCabal2nix "Cabal-tests" "${cabal-src}/Cabal-tests" {}); |
| 57 | + cabal-install-solver = (self.callCabal2nix "cabal-install-solver" "${cabal-src}/cabal-install-solver" {}); |
| 58 | + cabal-install = (self.callCabal2nix "cabal-install" "${cabal-src}/cabal-install" {}); |
| 59 | + Cabal-described = (self.callCabal2nix "Cabal-described" "${cabal-src}/Cabal-described" {}); |
| 60 | + Cabal-QuickCheck = (self.callCabal2nix "Cabal-QuickCheck" "${cabal-src}/Cabal-QuickCheck" {}); |
| 61 | + Cabal-tree-diff = (self.callCabal2nix "Cabal-tree-diff" "${cabal-src}/Cabal-tree-diff" {}); |
| 62 | + zip-cmd = doJailbreak (self.callCabal2nix "zip-cmd" zip-cmd-src {}); |
| 63 | + zip = dontCheck (doJailbreak (super.zip)); |
| 64 | + wpc-plugin = self.callCabal2nix "wpc-plugin" "${external-stg-src}/wpc-plugin" {}; |
| 65 | + external-stg = self.callCabal2nix "external-stg" "${external-stg-src}/external-stg" {}; |
| 66 | + external-stg-syntax = self.callCabal2nix "external-stg-syntax" "${external-stg-src}/external-stg-syntax" {}; |
| 67 | + hello = with self; |
| 68 | + pkgs.lib.overrideDerivation (addBuildDepends (callCabal2nix "hello" ./hello {}) [zip-cmd external-stg]) (drv: { |
| 69 | + postInstall = '' |
| 70 | + ${external-stg}/bin/mkfullpak -a dist/build/hello/hello.o_ghc_stgapp |
| 71 | + mv -v dist/build/hello/hello.fullpak $out/bin/hello.fullpak |
| 72 | + ''; |
| 73 | + }); |
| 74 | + }; |
| 75 | + |
| 76 | + overrides924 = self: super: { |
| 77 | + type-errors-pretty = |
| 78 | + dontCheck (doJailbreak (self.callCabal2nix "type-errors-pretty" type-errors-pretty-src {})); |
| 79 | + external-stg = |
| 80 | + self.callCabal2nix "external-stg" "${external-stg-src}/external-stg" {}; |
| 81 | + external-stg-interpreter = with pkgs.haskell.lib; |
| 82 | + self.callCabal2nix "external-stg-interpreter" "${external-stg-src}/external-stg-interpreter" |
| 83 | + (pkgs.lib.optionalAttrs (pkgs.stdenv.isDarwin) { omp = pkgs.llvmPackages.openmp; }); |
| 84 | + external-stg-syntax = |
| 85 | + self.callCabal2nix "external-stg-syntax" "${external-stg-src}/external-stg-syntax" {}; |
| 86 | + souffle-haskell = with pkgs; |
| 87 | + overrideCabal |
| 88 | + (addBuildTool (self.callCabal2nix "souffle-haskell" souffle-haskell-src { }) souffle) |
| 89 | + (o: { |
| 90 | + doCheck = true; |
| 91 | + checkPhase = '' |
| 92 | + runHook preCheck |
| 93 | + DATALOG_DIR="${o.src}/tests/fixtures/" SOUFFLE_BIN="${souffle}/bin/souffle" ./Setup test |
| 94 | + runHook postCheck |
| 95 | + ''; |
| 96 | + }); |
19 | 97 |
|
20 | | - overrides = self: super: { |
21 | 98 | ghcid =
|
22 | 99 | doJailbreak (self.callCabal2nix "ghcid" ghcidSrc {});
|
23 | | - hgdbmi = |
24 | | - dontCheck (doJailbreak (self.callCabal2nix "hgdbmi" hgdbmiSrc {})); |
25 | 100 | dap =
|
26 | 101 | self.callCabal2nix "dap" ./. {};
|
27 | 102 | };
|
28 | 103 |
|
29 | | - hPkgs = |
30 | | - pkgs.haskell.packages.ghc924.override { inherit overrides; }; |
| 104 | + hPkgs924 = pkgs.haskell.packages.ghc924.override { overrides = overrides924; }; |
| 105 | + hPkgs961 = pkgs.haskell.packages.ghc961.override { overrides = overrides961; }; |
| 106 | + |
31 | 107 | in
|
32 | 108 | {
|
33 | 109 | inherit pkgs;
|
34 | | - inherit (hPkgs) |
35 | | - hgdbmi |
| 110 | + inherit (hPkgs961) |
| 111 | + hello |
| 112 | + zip-cmd |
| 113 | + cabal-install |
| 114 | + wpc-plugin; |
| 115 | + inherit (hPkgs924) |
| 116 | + external-stg |
| 117 | + external-stg-interpreter |
| 118 | + external-stg-syntax |
| 119 | + souffle-haskell |
36 | 120 | ghcid
|
37 | 121 | dap;
|
38 | 122 | }
|
0 commit comments