diff --git a/pkgs/development/coq-modules/CakeMLExtraction/default.nix b/pkgs/development/coq-modules/CakeMLExtraction/default.nix new file mode 100644 index 000000000000..320af5310043 --- /dev/null +++ b/pkgs/development/coq-modules/CakeMLExtraction/default.nix @@ -0,0 +1,58 @@ +{ + lib, + mkCoqDerivation, + coq, + ceres-bs, + equations, + metarocq-erasure-plugin, + version ? null, +}: + +(mkCoqDerivation { + pname = "CakeMLExtraction"; + owner = "peregrine-project"; + repo = "cakeml-backend"; + opam-name = "rocq-cakeml-extraction"; + + inherit version; + defaultVersion = + let + case = coq: mr: out: { + cases = [ + coq + mr + ]; + inherit out; + }; + in + with lib.versions; + lib.switch + [ + coq.coq-version + metarocq-erasure-plugin.version + ] + [ + (case (range "9.0" "9.1") (range "1.4" "1.5.1") "0.1.0") + ] + null; + release = { + "0.1.0".sha256 = "sha256-diDUTj0l4vliov9+Lg8lNRdkLE7JAfJn8OU7J/HgmDE="; + }; + releaseRev = v: "v${v}"; + + mlPlugin = false; + useDune = false; + + buildInputs = [ + equations + metarocq-erasure-plugin + ceres-bs + ]; + propagatedBuildInputs = [ coq.ocamlPackages.findlib ]; + + meta = with lib; { + homepage = "https://peregrine-project.github.io/"; + description = "CakeML backend for Peregrine"; + maintainers = with maintainers; [ _4ever2 ]; + }; +}) diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index b2b98903066c..b0204719a753 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -68,6 +68,7 @@ let callPackage ../development/coq-modules/bignums { } else null; + CakeMLExtraction = callPackage ../development/coq-modules/CakeMLExtraction { }; category-theory = callPackage ../development/coq-modules/category-theory { }; ceres = callPackage ../development/coq-modules/ceres { }; ceres-bs = callPackage ../development/coq-modules/ceres-bs { };