packages feed

symantic-parser-0.2.0.20210703: default.nix

{ pkgs ? import <nixpkgs> {}
, ghc ? "ghc901"
, withHoogle ? false
, inputs
}:
let
  haskellPackages =
    if ghc == null
    then pkgs.haskellPackages
    else pkgs.haskell.packages.${ghc};
  hs = haskellPackages.extend (with pkgs.haskell.lib; hself: hsuper:
    {
      #symantic-parser = enableExecutableProfiling (doCheck ( hself.callCabal2nix "symantic-parser" ./. {}));
      # FIXME: this should not be necessary, but haskellPackages.ormolu is currently broken.
      ormolu = pkgs.ormolu;
      text-short = dontCheck hsuper.text-short;
      hs-speedscope = doJailbreak (unmarkBroken hsuper.hs-speedscope);
      eventlog2html = doJailbreak (unmarkBroken hsuper.eventlog2html);
      trie-simple = doJailbreak (unmarkBroken hsuper.trie-simple);
      symantic-base = buildFromSdist (hself.callCabal2nix "symantic-base" inputs.symantic-base {});
      symantic-parser = doBenchmark (buildFromSdist (hself.callCabal2nix "symantic-parser" ./. {}));
      /*
      hlint = hsuper.hlint_3_3_1.overrideScope (self: super: {
        ghc-lib-parser = overrideCabal self.ghc-lib-parser_9_0_1_20210324 {
          doHaddock = false;
        };
        ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_0_0_4;
      });
      */
    }
  );
in hs.symantic-parser // {
  shell = hs.shellFor {
    doBenchmark = true;
    packages = p: [ p.symantic-parser ];
    # FIXME: remove when Nixpkgs' haskellPackages.ormolu is no longer broken
    CABAL_TEST_FLAGS = "-fdisable-ormolu-check";
    nativeBuildInputs = [
      hs.cabal-install
      hs.eventlog2html
      hs.ghc-events
      hs.ghcid
      #hs.hlint
      hs.hs-speedscope
      hs.ormolu
      hs.profiteur
      #hs.threadscope
      #hs.ghc-events-analyze
      #hs.haskell-language-server
      #hs.hpc
    ];
    buildInputs = [
      #hs.ghcid
      pkgs.cabal2nix
      #hs.hlint
      #pkgs.nixpkgs-fmt
    ];
    inherit withHoogle;
  };
}