From ba46868fa6a2c67534be9e23992c9962d3240ee6 Mon Sep 17 00:00:00 2001 From: 4ever2 <3417013+4ever2@users.noreply.github.com> Date: Thu, 19 Mar 2026 00:05:50 +0100 Subject: [PATCH] coqPackages.CakeMLExtraction: init at 0.1.0 --- .../coq-modules/CakeMLExtraction/default.nix | 58 +++++++++++++++++++ pkgs/top-level/coq-packages.nix | 1 + 2 files changed, 59 insertions(+) create mode 100644 pkgs/development/coq-modules/CakeMLExtraction/default.nix 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 22ed5cc6f4b1..8a2627b35704 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 { };