]> Git — Sourcephile - haskell/symantic-parser.git/blob - default.nix
grammar: sort symantics by name
[haskell/symantic-parser.git] / default.nix
1 { pkgs ? import <nixpkgs> {}
2 , ghc ? "ghc901"
3 , withHoogle ? false
4 }:
5 let
6 haskellPackages =
7 if ghc == null
8 then pkgs.haskellPackages
9 else pkgs.haskell.packages.${ghc};
10 hs = haskellPackages.extend (with pkgs.haskell.lib;
11 hself: hsuper:
12 {
13 data-fix = doJailbreak hsuper.data-fix;
14 primitive = doJailbreak hsuper.primitive;
15 assoc = doJailbreak hsuper.assoc;
16 these = doJailbreak hsuper.these;
17 dump-core = dontCheck (unmarkBroken hsuper.dump-core);
18 #profunctors = doJailbreak (unmarkBroken hsuper.profunctors);
19 #th-expand-syns = doJailbreak (unmarkBroken hsuper.th-expand-syns);
20 profunctors = dontCheck (unmarkBroken (doJailbreak (hsuper.callHackageDirect
21 { pkg = "profunctors";
22 ver = "5.6.2";
23 sha256 = "sha256-Vrlp6lvMNi+Bk+AHBMbnQE9NVzdASrcrFaWbkJew9qU=";
24 } {})));
25 system-fileio = doJailbreak hsuper.system-fileio;
26 turtle = doJailbreak hsuper.turtle;
27
28 #symantic-parser = enableExecutableProfiling (doCheck ( hself.callCabal2nix "symantic-parser" ./. {}));
29 } //
30 packageSourceOverrides {
31 symantic-parser = ./.;
32 } hself hsuper
33 );
34 in hs.symantic-parser // {
35 shell = hs.shellFor {
36 packages = p: [ p.symantic-parser ];
37 nativeBuildInputs = [
38 hs.cabal-install
39 #hs.ghc-events
40 #hs.ghc-events-analyze
41 #hs.threadscope
42 #hs.haskell-language-server
43 #hs.hpc
44 ];
45 buildInputs = [
46 #hs.ghcid
47 pkgs.ormolu
48 #hs.hlint
49 #pkgs.nixpkgs-fmt
50 ];
51 inherit withHoogle;
52 };
53 }