Skip to content

Commit

Permalink
Emit, build and test the Haskell code from agda-spec
Browse files Browse the repository at this point in the history
  • Loading branch information
geo2a committed Dec 13, 2024
1 parent 4e65a0e commit 576bde3
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions nix/agda.nix
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,31 @@ let
dontInstall = true;
};

# this derivation generates the Haskell code from the Agda spec, but does
# not build or test it.
# TODO(georgy.lukyanov): share agda typechecking with the docs derivation
hsSrc = pkgs.stdenv.mkDerivation {
inherit (locales) LANG LC_ALL LOCALE_ARCHIVE;
pname = "agda-spec-hs-src";
version = "0.1";
src = ../docs/agda-spec;
meta = { };
buildInputs = [ agda customAgda.ghc customAgda.cabal-install ];
buildPhase = ''
OUT_DIR=$out make hs
'';
doCheck = true;
checkPhase = ''
test -n "$(find $out/haskell/ -type f -name '*.hs')"
'';
dontInstall = true;
};

# this derivation picks up the Haskell project generated by hsSrc and
# builds and tests it. Note that the profiled build is intentionally disabled
# as is causes some GHC versions to panic.
hsExe = customAgda.haskell.lib.disableLibraryProfiling (customAgda.haskellPackages.callCabal2nixWithOptions "cardano-consensus-executable-spec" "${hsSrc}/haskell/Spec" "--no-haddock" {});

shell = pkgs.mkShell {
packages = [ agda latex customAgda.ghc customAgda.cabal-install];
};
Expand Down

0 comments on commit 576bde3

Please sign in to comment.