|
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