{ inputs.nixpkgs.url = "flake:nixpkgs"; inputs.symantic-base.url = "git+https://git.code.sourcephile.fr/~julm/symantic-base?ref=main"; inputs.symantic-base.inputs.nixpkgs.follows = "nixpkgs"; outputs = inputs: let pkg = "symantic-parser"; lib = inputs.nixpkgs.lib; forAllSystems = f: lib.genAttrs lib.systems.supported.hydra (system: f rec { inherit system; pkgs = inputs.nixpkgs.legacyPackages.${system}; haskellPackages = pkgs.haskell.packages."ghc901".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); }); }); 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"; }); }; }