|
1 |
| -{ pkgs ? import ./nix |
2 |
| -}: |
3 |
| - |
4 |
| -with pkgs.haskell.lib; |
5 |
| - |
| 1 | +{ pkgs ? import <nixpkgs> {} }: |
6 | 2 | let
|
7 |
| - cabal-src = pkgs.fetchFromGitHub |
8 |
| - { owner = "haskell"; |
9 |
| - repo = "cabal"; |
10 |
| - sha256 = "13x3dr257ivalhgiffjnyazffimn4a817dj3p96vvi50nx67cml2"; |
11 |
| - rev = "3af1731c01c35614fd902ee5c1aec40f5587fde6"; |
12 |
| - }; |
13 |
| - ghcidSrc = pkgs.fetchFromGitHub |
14 |
| - { owner = "ndmitchell"; |
15 |
| - repo = "ghcid"; |
16 |
| - sha256 = "0bsjbb6n7ssg411k2xj4f881v392hvb7xln99bq1r3vkg14mqqsd"; |
17 |
| - rev = "e2852979aa644c8fed92d46ab529d2c6c1c62b59"; |
18 |
| - }; |
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; |
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 pkgs.gcc]) (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 |
| - }); |
97 |
| - |
98 |
| - ghcid = |
99 |
| - doJailbreak (self.callCabal2nix "ghcid" ghcidSrc {}); |
100 |
| - dap = |
101 |
| - self.callCabal2nix "dap" ./. {}; |
102 |
| - }; |
103 |
| - |
104 |
| - hPkgs924 = pkgs.haskell.packages.ghc924.override { overrides = overrides924; }; |
105 |
| - hPkgs961 = pkgs.haskell.packages.ghc961.override { overrides = overrides961; }; |
106 |
| - |
| 3 | + dap = pkgs.haskellPackages.callCabal2nix "dap" ./. {}; |
107 | 4 | in
|
108 | 5 | {
|
109 |
| - inherit pkgs; |
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 |
120 |
| - ghcid |
121 |
| - dap; |
| 6 | + inherit dap pkgs; |
122 | 7 | }
|
0 commit comments