{ inputs.nixpkgs.url = "flake:nixpkgs"; inputs.symantic-base.url = "git://git.sourcephile.fr/haskell/symantic-base"; inputs.symantic-base.inputs.nixpkgs.follows = "nixpkgs"; outputs = inputs: let pkg = "symantic-parser"; lib = inputs.nixpkgs.lib; forAllSystems = f: lib.genAttrs lib.systems.flakeExposed (system: f rec { inherit system; pkgs = inputs.nixpkgs.legacyPackages.${system}; haskellPackages = pkgs.haskellPackages.extend (with pkgs.haskell.lib; hfinal: hsuper: { ${pkg} = doBenchmark (buildFromSdist (hfinal.callCabal2nix pkg ./. {})); eventlog2html = doJailbreak (unmarkBroken hsuper.eventlog2html); hs-speedscope = doJailbreak (unmarkBroken hsuper.hs-speedscope); #ormolu = doJailbreak (unmarkBroken hsuper.ormolu); symantic-base = buildFromSdist (hfinal.callCabal2nix "symantic-base" inputs.symantic-base {}); #text-short = dontCheck hsuper.text-short; #trie-simple = doJailbreak (unmarkBroken hsuper.trie-simple); #criterion = dontCheck hsuper.criterion; # Reason "killed for running longer than 30 seconds!" }); }); in { # nix -L build defaultPackage = forAllSystems ({haskellPackages, ...}: haskellPackages.${pkg}); # nix -L develop devShell = forAllSystems ({pkgs, haskellPackages, ...}: haskellPackages.shellFor { packages = ps: [ ps.${pkg} ]; nativeBuildInputs = [ haskellPackages.cabal-install #haskellPackages.eventlog2html #haskellPackages.ghc-events haskellPackages.ghcid haskellPackages.haskell-language-server haskellPackages.hlint #haskellPackages.hs-speedscope haskellPackages.ormolu #haskellPackages.profiteur pkgs.git-chglog pkgs.reuse ]; withHoogle = false; doBenchmark = true; # FIXME: remove when Nixpkgs' haskellPackages.ormolu is no longer broken CABAL_TEST_FLAGS = "-fdisable-ormolu-check"; }); }; }