coqPackages: fix Rocq shim for Coq >= 9
This commit is contained in:
parent
2bbba780d7
commit
151a2eced2
@ -19,6 +19,7 @@
|
|||||||
ocamlPackages_4_10,
|
ocamlPackages_4_10,
|
||||||
ocamlPackages_4_12,
|
ocamlPackages_4_12,
|
||||||
ocamlPackages_4_14,
|
ocamlPackages_4_14,
|
||||||
|
rocqPackages, # for versions >= 9.0 that are transition shims on top of Rocq
|
||||||
ncurses,
|
ncurses,
|
||||||
buildIde ? null, # default is true for Coq < 8.14 and false for Coq >= 8.14
|
buildIde ? null, # default is true for Coq < 8.14 and false for Coq >= 8.14
|
||||||
glib,
|
glib,
|
||||||
@ -27,7 +28,6 @@
|
|||||||
makeDesktopItem,
|
makeDesktopItem,
|
||||||
copyDesktopItems,
|
copyDesktopItems,
|
||||||
csdp ? null,
|
csdp ? null,
|
||||||
rocq-core, # for versions >= 9.0 that are transition shims on top of Rocq
|
|
||||||
version,
|
version,
|
||||||
coq-version ? null,
|
coq-version ? null,
|
||||||
}@args:
|
}@args:
|
||||||
@ -148,7 +148,6 @@ let
|
|||||||
self = stdenv.mkDerivation {
|
self = stdenv.mkDerivation {
|
||||||
pname = "coq";
|
pname = "coq";
|
||||||
inherit (fetched) version src;
|
inherit (fetched) version src;
|
||||||
exact-version = args.version;
|
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit coq-version;
|
inherit coq-version;
|
||||||
@ -161,6 +160,7 @@ let
|
|||||||
findlib
|
findlib
|
||||||
num
|
num
|
||||||
;
|
;
|
||||||
|
rocqPackages = lib.optionalAttrs (coqAtLeast "8.21") rocqPackages;
|
||||||
emacsBufferSetup = pkgs: ''
|
emacsBufferSetup = pkgs: ''
|
||||||
; Propagate coq paths to children
|
; Propagate coq paths to children
|
||||||
(inherit-local-permanent coq-prog-name "${self}/bin/coqtop")
|
(inherit-local-permanent coq-prog-name "${self}/bin/coqtop")
|
||||||
@ -334,7 +334,7 @@ if coqAtLeast "8.21" then
|
|||||||
self.overrideAttrs (o: {
|
self.overrideAttrs (o: {
|
||||||
# coq-core is now a shim for rocq
|
# coq-core is now a shim for rocq
|
||||||
propagatedBuildInputs = o.propagatedBuildInputs ++ [
|
propagatedBuildInputs = o.propagatedBuildInputs ++ [
|
||||||
(rocq-core.override { version = o.exact-version; })
|
rocqPackages.rocq-core
|
||||||
];
|
];
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
runHook preBuild
|
runHook preBuild
|
||||||
|
|||||||
@ -2,85 +2,62 @@
|
|||||||
lib,
|
lib,
|
||||||
mkCoqDerivation,
|
mkCoqDerivation,
|
||||||
coq,
|
coq,
|
||||||
rocqPackages_9_0,
|
|
||||||
rocqPackages_9_1,
|
|
||||||
rocqPackages,
|
|
||||||
stdlib,
|
stdlib,
|
||||||
version ? null,
|
version ? null,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
(mkCoqDerivation {
|
let
|
||||||
pname = "bignums";
|
derivation = mkCoqDerivation {
|
||||||
owner = "rocq-community";
|
pname = "bignums";
|
||||||
inherit version;
|
owner = "rocq-community";
|
||||||
defaultVersion =
|
inherit version;
|
||||||
let
|
defaultVersion =
|
||||||
case = case: out: { inherit case out; };
|
let
|
||||||
in
|
case = case: out: { inherit case out; };
|
||||||
with lib.versions;
|
in
|
||||||
lib.switch coq.coq-version [
|
with lib.versions;
|
||||||
(case (range "9.0" "9.1") "9.0.0+rocq${coq.coq-version}")
|
lib.switch coq.coq-version [
|
||||||
(case (range "8.13" "8.20") "9.0.0+coq${coq.coq-version}")
|
(case (range "8.13" "8.20") "9.0.0+coq${coq.coq-version}")
|
||||||
(case (range "8.6" "8.17") "${coq.coq-version}.0")
|
(case (range "8.6" "8.17") "${coq.coq-version}.0")
|
||||||
] null;
|
] null;
|
||||||
|
|
||||||
release."9.0.0+rocq9.1".sha256 = "sha256-MSjlfJs3JOakuShOj+isNlus0bKlZ+rkvzRoKZQK5RQ=";
|
release."9.0.0+coq8.20".sha256 = "sha256-pkvyDaMXRalc6Uu1eBTuiqTpRauRrzu946c6TavyTKY=";
|
||||||
release."9.0.0+rocq9.0".sha256 = "sha256-ctnwpyNVhryEUA5YEsAImrcJsNMhtBgDSOz+z5Z4R78=";
|
release."9.0.0+coq8.19".sha256 = "sha256-02uL+qWbUveHe67zKfc8w3U0iN3X2DKBsvP3pKpW8KQ=";
|
||||||
release."9.0.0+coq8.20".sha256 = "sha256-pkvyDaMXRalc6Uu1eBTuiqTpRauRrzu946c6TavyTKY=";
|
release."9.0.0+coq8.18".sha256 = "sha256-vLeJ0GNKl4M84Uj2tAwlrxJOSR6VZoJQvdlDhxJRge8=";
|
||||||
release."9.0.0+coq8.19".sha256 = "sha256-02uL+qWbUveHe67zKfc8w3U0iN3X2DKBsvP3pKpW8KQ=";
|
release."9.0.0+coq8.17".sha256 = "sha256-Mn85LqxJKPDIfpxRef9Uh5POwOKlTQ7jsMVz1wnQwuY=";
|
||||||
release."9.0.0+coq8.18".sha256 = "sha256-vLeJ0GNKl4M84Uj2tAwlrxJOSR6VZoJQvdlDhxJRge8=";
|
release."9.0.0+coq8.16".sha256 = "sha256-pwFTl4Unr2ZIirAB3HTtfhL2YN7G/Pg88RX9AhKWXbE=";
|
||||||
release."9.0.0+coq8.17".sha256 = "sha256-Mn85LqxJKPDIfpxRef9Uh5POwOKlTQ7jsMVz1wnQwuY=";
|
release."9.0.0+coq8.15".sha256 = "sha256-2oGOANn3XULHNIlyqjZ5ppQTQa2QF1zzf3YjHAd/pjo=";
|
||||||
release."9.0.0+coq8.16".sha256 = "sha256-pwFTl4Unr2ZIirAB3HTtfhL2YN7G/Pg88RX9AhKWXbE=";
|
release."9.0.0+coq8.14".sha256 = "sha256-qTU152Dz34W6nFZ0pPbja9ouUm/714ZrLQ/Z4N/HIC4=";
|
||||||
release."9.0.0+coq8.15".sha256 = "sha256-2oGOANn3XULHNIlyqjZ5ppQTQa2QF1zzf3YjHAd/pjo=";
|
release."9.0.0+coq8.13".sha256 = "sha256-zvAqV3VAB7cN+nlMhjSXzxuDkdd387ju2VSb2EUthI0=";
|
||||||
release."9.0.0+coq8.14".sha256 = "sha256-qTU152Dz34W6nFZ0pPbja9ouUm/714ZrLQ/Z4N/HIC4=";
|
release."8.17.0".sha256 = "sha256-MXYjqN86+3O4hT2ql62U83T5H03E/8ysH8erpvC/oyw=";
|
||||||
release."9.0.0+coq8.13".sha256 = "sha256-zvAqV3VAB7cN+nlMhjSXzxuDkdd387ju2VSb2EUthI0=";
|
release."8.16.0".sha256 = "sha256-DH3iWwatPlhhCVYVlgL2WLkvneSVzSXUiKo2e0+1zR4=";
|
||||||
release."8.17.0".sha256 = "sha256-MXYjqN86+3O4hT2ql62U83T5H03E/8ysH8erpvC/oyw=";
|
release."8.15.0".sha256 = "093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns";
|
||||||
release."8.16.0".sha256 = "sha256-DH3iWwatPlhhCVYVlgL2WLkvneSVzSXUiKo2e0+1zR4=";
|
release."8.14.0".sha256 = "0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06";
|
||||||
release."8.15.0".sha256 = "093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns";
|
release."8.13.0".sha256 = "1n66i7hd9222b2ks606mak7m4f0dgy02xgygjskmmav6h7g2sx7y";
|
||||||
release."8.14.0".sha256 = "0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06";
|
release."8.12.0".sha256 = "14ijb3qy2hin3g4djx437jmnswxxq7lkfh3dwh9qvrds9a015yg8";
|
||||||
release."8.13.0".sha256 = "1n66i7hd9222b2ks606mak7m4f0dgy02xgygjskmmav6h7g2sx7y";
|
release."8.11.0".sha256 = "1xcd7c7qlvs0narfba6px34zq0mz8rffnhxw0kzhhg6i4iw115dp";
|
||||||
release."8.12.0".sha256 = "14ijb3qy2hin3g4djx437jmnswxxq7lkfh3dwh9qvrds9a015yg8";
|
release."8.10.0".sha256 = "0bpb4flckn4nqxbs3wjiznyx1k7r8k93qdigp3qwmikp2lxvcbw5";
|
||||||
release."8.11.0".sha256 = "1xcd7c7qlvs0narfba6px34zq0mz8rffnhxw0kzhhg6i4iw115dp";
|
release."8.9.0".sha256 = "03qz1w2xb2j5p06liz5yyafl0fl9vprcqm6j0iwi7rxwghl00p01";
|
||||||
release."8.10.0".sha256 = "0bpb4flckn4nqxbs3wjiznyx1k7r8k93qdigp3qwmikp2lxvcbw5";
|
release."8.8.0".sha256 = "1ymxyrvjygscxkfj3qkq66skl3vdjhb670rzvsvgmwrjkrakjnfg";
|
||||||
release."8.9.0".sha256 = "03qz1w2xb2j5p06liz5yyafl0fl9vprcqm6j0iwi7rxwghl00p01";
|
release."8.7.0".sha256 = "11c4sdmpd3l6jjl4v6k213z9fhrmmm1xnly3zmzam1wrrdif4ghl";
|
||||||
release."8.8.0".sha256 = "1ymxyrvjygscxkfj3qkq66skl3vdjhb670rzvsvgmwrjkrakjnfg";
|
release."8.6.0".rev = "v8.6.0";
|
||||||
release."8.7.0".sha256 = "11c4sdmpd3l6jjl4v6k213z9fhrmmm1xnly3zmzam1wrrdif4ghl";
|
release."8.6.0".sha256 = "0553pcsy21cyhmns6k9qggzb67az8kl31d0lwlnz08bsqswigzrj";
|
||||||
release."8.6.0".rev = "v8.6.0";
|
releaseRev = v: "${if lib.versions.isGe "9.0" v then "v" else "V"}${v}";
|
||||||
release."8.6.0".sha256 = "0553pcsy21cyhmns6k9qggzb67az8kl31d0lwlnz08bsqswigzrj";
|
|
||||||
releaseRev = v: "${if lib.versions.isGe "9.0" v then "v" else "V"}${v}";
|
|
||||||
|
|
||||||
mlPlugin = true;
|
mlPlugin = true;
|
||||||
|
|
||||||
propagatedBuildInputs = [ stdlib ];
|
propagatedBuildInputs = [ stdlib ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
license = lib.licenses.lgpl2;
|
license = lib.licenses.lgpl2;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}).overrideAttrs
|
in
|
||||||
(
|
# this is just a wrapper for rocqPackages.bignums for Rocq >= 9.0
|
||||||
o:
|
if coq.rocqPackages ? bignums then
|
||||||
# this is just a wrapper for rocPackages.bignums for Rocq >= 9.0
|
coq.rocqPackages.bignums.override {
|
||||||
lib.optionalAttrs
|
inherit version stdlib;
|
||||||
(coq.version != null && (coq.version == "dev" || lib.versions.isGe "9.0" coq.version))
|
inherit (coq.rocqPackages) rocq-core;
|
||||||
(
|
}
|
||||||
let
|
else
|
||||||
case = case: out: { inherit case out; };
|
derivation
|
||||||
rp = lib.switch coq.coq-version [
|
|
||||||
(case (lib.versions.isEq "9.0") rocqPackages_9_0)
|
|
||||||
(case (lib.versions.isEq "9.1") rocqPackages_9_1)
|
|
||||||
] rocqPackages;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
configurePhase = ''
|
|
||||||
echo no configuration
|
|
||||||
'';
|
|
||||||
buildPhase = ''
|
|
||||||
echo building nothing
|
|
||||||
'';
|
|
||||||
installPhase = ''
|
|
||||||
echo installing nothing
|
|
||||||
'';
|
|
||||||
propagatedBuildInputs = o.propagatedBuildInputs ++ [ rp.bignums ];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|||||||
@ -3,9 +3,6 @@
|
|||||||
mkCoqDerivation,
|
mkCoqDerivation,
|
||||||
which,
|
which,
|
||||||
coq,
|
coq,
|
||||||
rocqPackages_9_0,
|
|
||||||
rocqPackages_9_1,
|
|
||||||
rocqPackages,
|
|
||||||
stdlib,
|
stdlib,
|
||||||
version ? null,
|
version ? null,
|
||||||
elpi-version ? null,
|
elpi-version ? null,
|
||||||
@ -23,7 +20,7 @@ let
|
|||||||
in
|
in
|
||||||
with lib.versions;
|
with lib.versions;
|
||||||
lib.switch coq.coq-version [
|
lib.switch coq.coq-version [
|
||||||
(case (range "8.20" "9.1") "2.0.7")
|
(case (range "8.20" "8.20") "2.0.7")
|
||||||
(case (range "8.18" "8.19") "1.18.1")
|
(case (range "8.18" "8.19") "1.18.1")
|
||||||
(case (range "8.16" "8.17") "1.17.0")
|
(case (range "8.16" "8.17") "1.17.0")
|
||||||
(case "8.15" "1.15.0")
|
(case "8.15" "1.15.0")
|
||||||
@ -47,8 +44,8 @@ let
|
|||||||
in
|
in
|
||||||
with lib.versions;
|
with lib.versions;
|
||||||
lib.switch coq.coq-version [
|
lib.switch coq.coq-version [
|
||||||
(case (range "8.20" "9.1") "2.6.0")
|
(case (range "8.20" "8.20") "2.6.0")
|
||||||
(case (range "8.20" "9.0") "2.5.2")
|
(case (range "8.20" "8.20") "2.5.2")
|
||||||
(case "8.19" "2.0.1")
|
(case "8.19" "2.0.1")
|
||||||
(case "8.18" "2.0.0")
|
(case "8.18" "2.0.0")
|
||||||
(case "8.17" "1.18.0")
|
(case "8.17" "1.18.0")
|
||||||
@ -141,42 +138,27 @@ let
|
|||||||
);
|
);
|
||||||
patched-derivation4 = patched-derivation3.overrideAttrs (
|
patched-derivation4 = patched-derivation3.overrideAttrs (
|
||||||
o:
|
o:
|
||||||
# this is just a wrapper for rocPackages.rocq-elpi for Rocq >= 9.0
|
lib.optionalAttrs (o.version != null && (o.version == "dev" || lib.versions.isGe "2.5.0" o.version))
|
||||||
if coq.version != null && (coq.version == "dev" || lib.versions.isGe "9.0" coq.version) then
|
|
||||||
let
|
|
||||||
case = case: out: { inherit case out; };
|
|
||||||
rp = lib.switch coq.coq-version [
|
|
||||||
(case "9.0" rocqPackages_9_0)
|
|
||||||
(case "9.1" rocqPackages_9_1)
|
|
||||||
] rocqPackages;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
echo no configuration
|
make dune-files || true
|
||||||
'';
|
'';
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
echo building nothing
|
dune build -p rocq-elpi @install ''${enableParallelBuilding:+-j $NIX_BUILD_CORES}
|
||||||
'';
|
'';
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
echo installing nothing
|
dune install --root . rocq-elpi --prefix=$out --libdir $OCAMLFIND_DESTDIR
|
||||||
|
mkdir $out/lib/coq/
|
||||||
|
mv $OCAMLFIND_DESTDIR/coq $out/lib/coq/${coq.coq-version}
|
||||||
'';
|
'';
|
||||||
propagatedBuildInputs = o.propagatedBuildInputs ++ [ rp.rocq-elpi ];
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
lib.optionalAttrs (o.version != null && (o.version == "dev" || lib.versions.isGe "2.5.0" o.version))
|
|
||||||
{
|
|
||||||
configurePhase = ''
|
|
||||||
make dune-files || true
|
|
||||||
'';
|
|
||||||
buildPhase = ''
|
|
||||||
dune build -p rocq-elpi @install ''${enableParallelBuilding:+-j $NIX_BUILD_CORES}
|
|
||||||
'';
|
|
||||||
installPhase = ''
|
|
||||||
dune install --root . rocq-elpi --prefix=$out --libdir $OCAMLFIND_DESTDIR
|
|
||||||
mkdir $out/lib/coq/
|
|
||||||
mv $OCAMLFIND_DESTDIR/coq $out/lib/coq/${coq.coq-version}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
in
|
in
|
||||||
patched-derivation4
|
# this is just a wrapper for rocqPackages.stdlib for Rocq >= 9.0
|
||||||
|
if coq.rocqPackages ? rocq-elpi then
|
||||||
|
coq.rocqPackages.rocq-elpi.override {
|
||||||
|
inherit version elpi-version;
|
||||||
|
inherit (coq.rocqPackages) rocq-core;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
patched-derivation4
|
||||||
|
|||||||
@ -2,9 +2,6 @@
|
|||||||
lib,
|
lib,
|
||||||
mkCoqDerivation,
|
mkCoqDerivation,
|
||||||
coq,
|
coq,
|
||||||
rocqPackages_9_0,
|
|
||||||
rocqPackages_9_1,
|
|
||||||
rocqPackages,
|
|
||||||
stdlib,
|
stdlib,
|
||||||
coq-elpi,
|
coq-elpi,
|
||||||
version ? null,
|
version ? null,
|
||||||
@ -21,7 +18,7 @@ let
|
|||||||
in
|
in
|
||||||
with lib.versions;
|
with lib.versions;
|
||||||
lib.switch coq.coq-version [
|
lib.switch coq.coq-version [
|
||||||
(case (range "8.20" "9.1") "1.9.1")
|
(case (range "8.20" "8.20") "1.9.1")
|
||||||
(case (range "8.19" "8.20") "1.8.0")
|
(case (range "8.19" "8.20") "1.8.0")
|
||||||
(case (range "8.18" "8.20") "1.7.1")
|
(case (range "8.18" "8.20") "1.7.1")
|
||||||
(case (range "8.16" "8.18") "1.6.0")
|
(case (range "8.16" "8.18") "1.6.0")
|
||||||
@ -60,44 +57,28 @@ let
|
|||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
hb2 = hb.overrideAttrs (
|
||||||
|
o:
|
||||||
|
lib.optionalAttrs (lib.versions.isGe "1.2.0" o.version || o.version == "dev") {
|
||||||
|
buildPhase = "make build";
|
||||||
|
}
|
||||||
|
// (
|
||||||
|
if lib.versions.isGe "1.1.0" o.version || o.version == "dev" then
|
||||||
|
{ installFlags = [ "DESTDIR=$(out)" ] ++ o.installFlags; }
|
||||||
|
else
|
||||||
|
{ installFlags = [ "VFILES=structures.v" ] ++ o.installFlags; }
|
||||||
|
)
|
||||||
|
// lib.optionalAttrs (o.version != null && o.version == "1.8.1") {
|
||||||
|
propagatedBuildInputs = o.propagatedBuildInputs ++ [ stdlib ];
|
||||||
|
}
|
||||||
|
);
|
||||||
in
|
in
|
||||||
hb.overrideAttrs (
|
# this is just a wrapper for rocqPackages.hierarchy-builder for Rocq >= 9.0
|
||||||
o:
|
if coq.rocqPackages ? hierarchy-builder then
|
||||||
lib.optionalAttrs (lib.versions.isGe "1.2.0" o.version || o.version == "dev") {
|
coq.rocqPackages.hierarchy-builder.override {
|
||||||
buildPhase = "make build";
|
inherit version;
|
||||||
|
inherit (coq.rocqPackages) rocq-core;
|
||||||
|
rocq-elpi = coq-elpi;
|
||||||
}
|
}
|
||||||
// (
|
else
|
||||||
if lib.versions.isGe "1.1.0" o.version || o.version == "dev" then
|
hb2
|
||||||
{ installFlags = [ "DESTDIR=$(out)" ] ++ o.installFlags; }
|
|
||||||
else
|
|
||||||
{ installFlags = [ "VFILES=structures.v" ] ++ o.installFlags; }
|
|
||||||
)
|
|
||||||
// lib.optionalAttrs (o.version != null && o.version == "1.8.1") {
|
|
||||||
propagatedBuildInputs = o.propagatedBuildInputs ++ [ stdlib ];
|
|
||||||
}
|
|
||||||
# this is just a wrapper for rocqPackages.hierarchy-builder for Rocq >= 9.0
|
|
||||||
//
|
|
||||||
lib.optionalAttrs
|
|
||||||
(coq.version != null && (coq.version == "dev" || lib.versions.isGe "9.0" coq.version))
|
|
||||||
(
|
|
||||||
let
|
|
||||||
case = case: out: { inherit case out; };
|
|
||||||
rp = lib.switch coq.coq-version [
|
|
||||||
(case "9.0" rocqPackages_9_0)
|
|
||||||
(case "9.1" rocqPackages_9_1)
|
|
||||||
] rocqPackages;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
configurePhase = ''
|
|
||||||
echo no configuration
|
|
||||||
'';
|
|
||||||
buildPhase = ''
|
|
||||||
echo building nothing
|
|
||||||
'';
|
|
||||||
installPhase = ''
|
|
||||||
echo installing nothing
|
|
||||||
'';
|
|
||||||
propagatedBuildInputs = o.propagatedBuildInputs ++ [ rp.hierarchy-builder ];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|||||||
@ -1,67 +1,43 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
mkCoqDerivation,
|
mkCoqDerivation,
|
||||||
rocqPackages_9_0,
|
|
||||||
rocqPackages_9_1,
|
|
||||||
rocqPackages,
|
|
||||||
which,
|
|
||||||
coq,
|
coq,
|
||||||
version ? null,
|
version ? null,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
(mkCoqDerivation {
|
let
|
||||||
pname = "parseque";
|
derivation = mkCoqDerivation {
|
||||||
repo = "parseque";
|
pname = "parseque";
|
||||||
owner = "rocq-community";
|
repo = "parseque";
|
||||||
|
owner = "rocq-community";
|
||||||
|
|
||||||
inherit version;
|
inherit version;
|
||||||
defaultVersion =
|
defaultVersion =
|
||||||
with versions;
|
let
|
||||||
switch
|
case = case: out: { inherit case out; };
|
||||||
[ coq.coq-version ]
|
in
|
||||||
[
|
with versions;
|
||||||
{
|
switch coq.coq-version [
|
||||||
cases = [ (range "8.16" "9.0") ];
|
(case (range "8.16" "8.20") "0.2.2")
|
||||||
out = "0.2.2";
|
] null;
|
||||||
}
|
|
||||||
]
|
|
||||||
null;
|
|
||||||
|
|
||||||
release."0.2.2".sha256 = "sha256-O50Rs7Yf1H4wgwb7ltRxW+7IF0b04zpfs+mR83rxT+E=";
|
release."0.2.2".sha256 = "sha256-O50Rs7Yf1H4wgwb7ltRxW+7IF0b04zpfs+mR83rxT+E=";
|
||||||
|
|
||||||
releaseRev = v: "v${v}";
|
releaseRev = v: "v${v}";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Total parser combinators in Coq/Rocq";
|
description = "Total parser combinators in Coq/Rocq";
|
||||||
maintainers = with maintainers; [ womeier ];
|
maintainers = with maintainers; [ womeier ];
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}).overrideAttrs
|
in
|
||||||
(
|
# this is just a wrapper for rocqPackages.parseque for Rocq >= 9.0
|
||||||
o:
|
if coq.rocqPackages ? parseque then
|
||||||
# this is just a wrapper for rocPackages.parseque for Rocq >= 9.0
|
coq.rocqPackages.parseque.override {
|
||||||
lib.optionalAttrs
|
inherit version;
|
||||||
(coq.version != null && (coq.version == "dev" || lib.versions.isGe "9.0" coq.version))
|
inherit (coq.rocqPackages) rocq-core;
|
||||||
(
|
}
|
||||||
let
|
else
|
||||||
case = case: out: { inherit case out; };
|
derivation
|
||||||
rp = lib.switch coq.coq-version [
|
|
||||||
(case "9.0" rocqPackages_9_0)
|
|
||||||
(case "9.1" rocqPackages_9_1)
|
|
||||||
] rocqPackages;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
configurePhase = ''
|
|
||||||
echo no configuration
|
|
||||||
'';
|
|
||||||
buildPhase = ''
|
|
||||||
echo building nothing
|
|
||||||
'';
|
|
||||||
installPhase = ''
|
|
||||||
echo installing nothing
|
|
||||||
'';
|
|
||||||
propagatedBuildInputs = [ rp.parseque ];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|||||||
@ -1,67 +1,54 @@
|
|||||||
{
|
{
|
||||||
coq,
|
coq,
|
||||||
rocqPackages_9_0,
|
|
||||||
rocqPackages_9_1,
|
|
||||||
rocqPackages,
|
|
||||||
mkCoqDerivation,
|
mkCoqDerivation,
|
||||||
lib,
|
lib,
|
||||||
version ? null,
|
version ? null,
|
||||||
}@args:
|
}:
|
||||||
(mkCoqDerivation {
|
|
||||||
|
|
||||||
pname = "stdlib";
|
let
|
||||||
repo = "stdlib";
|
derivation = mkCoqDerivation {
|
||||||
owner = "coq";
|
|
||||||
opam-name = "coq-stdlib";
|
|
||||||
|
|
||||||
inherit version;
|
pname = "stdlib";
|
||||||
defaultVersion =
|
repo = "stdlib";
|
||||||
let
|
owner = "coq";
|
||||||
case = case: out: { inherit case out; };
|
opam-name = "coq-stdlib";
|
||||||
in
|
|
||||||
with lib.versions;
|
|
||||||
lib.switch coq.coq-version [
|
|
||||||
(case (isLe "9.1") "9.0.0")
|
|
||||||
# the < 9.0 above is artificial as stdlib was included in Coq before
|
|
||||||
] null;
|
|
||||||
releaseRev = v: "V${v}";
|
|
||||||
|
|
||||||
release."9.0.0".sha256 = "sha256-2l7ak5Q/NbiNvUzIVXOniEneDXouBMNSSVFbD1Pf8cQ=";
|
inherit version;
|
||||||
|
defaultVersion =
|
||||||
configurePhase = ''
|
|
||||||
echo no configuration
|
|
||||||
'';
|
|
||||||
buildPhase = ''
|
|
||||||
echo building nothing
|
|
||||||
'';
|
|
||||||
installPhase = ''
|
|
||||||
echo installing nothing
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Compatibility metapackage for Coq Stdlib library after the Rocq renaming";
|
|
||||||
license = lib.licenses.lgpl21Only;
|
|
||||||
};
|
|
||||||
|
|
||||||
}).overrideAttrs
|
|
||||||
(
|
|
||||||
o:
|
|
||||||
# stdlib is already included in Coq <= 8.20
|
|
||||||
if coq.version != null && coq.version != "dev" && lib.versions.isLt "8.21" coq.version then
|
|
||||||
{
|
|
||||||
installPhase = ''
|
|
||||||
touch $out
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
let
|
let
|
||||||
case = case: out: { inherit case out; };
|
case = case: out: { inherit case out; };
|
||||||
rp = lib.switch coq.coq-version [
|
|
||||||
(case "9.0" rocqPackages_9_0)
|
|
||||||
(case "9.1" rocqPackages_9_1)
|
|
||||||
] rocqPackages;
|
|
||||||
in
|
in
|
||||||
{
|
with lib.versions;
|
||||||
propagatedBuildInputs = [ rp.stdlib ];
|
lib.switch coq.coq-version [
|
||||||
}
|
(case (isLe "9.1") "9.0.0")
|
||||||
)
|
# the < 9.0 above is artificial as stdlib was included in Coq before
|
||||||
|
] null;
|
||||||
|
releaseRev = v: "V${v}";
|
||||||
|
|
||||||
|
release."9.0.0".sha256 = "sha256-2l7ak5Q/NbiNvUzIVXOniEneDXouBMNSSVFbD1Pf8cQ=";
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
echo no configuration
|
||||||
|
'';
|
||||||
|
buildPhase = ''
|
||||||
|
echo building nothing
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
echo installing nothing
|
||||||
|
touch $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Compatibility metapackage for Coq Stdlib library after the Rocq renaming";
|
||||||
|
license = lib.licenses.lgpl21Only;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
# this is just a wrapper for rocqPackages.stdlib for Rocq >= 9.0
|
||||||
|
if coq.rocqPackages ? stdlib then
|
||||||
|
coq.rocqPackages.stdlib.override {
|
||||||
|
inherit version;
|
||||||
|
inherit (coq.rocqPackages) rocq-core;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
derivation
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
mkRocqDerivation,
|
mkRocqDerivation,
|
||||||
which,
|
|
||||||
stdlib,
|
stdlib,
|
||||||
rocq-core,
|
rocq-core,
|
||||||
version ? null,
|
version ? null,
|
||||||
|
|||||||
@ -15462,6 +15462,21 @@ with pkgs;
|
|||||||
ocamlPackages = ocaml-ng.ocamlPackages_4_12;
|
ocamlPackages = ocaml-ng.ocamlPackages_4_12;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inherit
|
||||||
|
(callPackage ./rocq-packages.nix {
|
||||||
|
inherit (ocaml-ng)
|
||||||
|
ocamlPackages_4_14
|
||||||
|
;
|
||||||
|
})
|
||||||
|
mkRocqPackages
|
||||||
|
rocqPackages_9_0
|
||||||
|
rocq-core_9_0
|
||||||
|
rocqPackages_9_1
|
||||||
|
rocq-core_9_1
|
||||||
|
rocqPackages
|
||||||
|
rocq-core
|
||||||
|
;
|
||||||
|
|
||||||
inherit
|
inherit
|
||||||
(callPackage ./coq-packages.nix {
|
(callPackage ./coq-packages.nix {
|
||||||
inherit (ocaml-ng)
|
inherit (ocaml-ng)
|
||||||
@ -15471,6 +15486,11 @@ with pkgs;
|
|||||||
ocamlPackages_4_12
|
ocamlPackages_4_12
|
||||||
ocamlPackages_4_14
|
ocamlPackages_4_14
|
||||||
;
|
;
|
||||||
|
inherit
|
||||||
|
rocqPackages_9_0
|
||||||
|
rocqPackages_9_1
|
||||||
|
rocqPackages
|
||||||
|
;
|
||||||
})
|
})
|
||||||
mkCoqPackages
|
mkCoqPackages
|
||||||
coqPackages_8_5
|
coqPackages_8_5
|
||||||
@ -15513,21 +15533,6 @@ with pkgs;
|
|||||||
coq
|
coq
|
||||||
;
|
;
|
||||||
|
|
||||||
inherit
|
|
||||||
(callPackage ./rocq-packages.nix {
|
|
||||||
inherit (ocaml-ng)
|
|
||||||
ocamlPackages_4_14
|
|
||||||
;
|
|
||||||
})
|
|
||||||
mkRocqPackages
|
|
||||||
rocqPackages_9_0
|
|
||||||
rocq-core_9_0
|
|
||||||
rocqPackages_9_1
|
|
||||||
rocq-core_9_1
|
|
||||||
rocqPackages
|
|
||||||
rocq-core
|
|
||||||
;
|
|
||||||
|
|
||||||
coq-kernel = callPackage ../applications/editors/jupyter-kernels/coq { };
|
coq-kernel = callPackage ../applications/editors/jupyter-kernels/coq { };
|
||||||
|
|
||||||
cubicle = callPackage ../applications/science/logic/cubicle {
|
cubicle = callPackage ../applications/science/logic/cubicle {
|
||||||
|
|||||||
@ -11,6 +11,9 @@
|
|||||||
ocamlPackages_4_10,
|
ocamlPackages_4_10,
|
||||||
ocamlPackages_4_12,
|
ocamlPackages_4_12,
|
||||||
ocamlPackages_4_14,
|
ocamlPackages_4_14,
|
||||||
|
rocqPackages_9_0,
|
||||||
|
rocqPackages_9_1,
|
||||||
|
rocqPackages,
|
||||||
fetchpatch,
|
fetchpatch,
|
||||||
makeWrapper,
|
makeWrapper,
|
||||||
coq2html,
|
coq2html,
|
||||||
@ -265,7 +268,7 @@ let
|
|||||||
) (lib.attrNames set)
|
) (lib.attrNames set)
|
||||||
);
|
);
|
||||||
mkCoq =
|
mkCoq =
|
||||||
version:
|
version: rp:
|
||||||
callPackage ../applications/science/logic/coq {
|
callPackage ../applications/science/logic/coq {
|
||||||
inherit
|
inherit
|
||||||
version
|
version
|
||||||
@ -275,6 +278,7 @@ let
|
|||||||
ocamlPackages_4_12
|
ocamlPackages_4_12
|
||||||
ocamlPackages_4_14
|
ocamlPackages_4_14
|
||||||
;
|
;
|
||||||
|
rocqPackages = rp;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
@ -295,24 +299,24 @@ rec {
|
|||||||
in
|
in
|
||||||
self.filterPackages (!coq.dontFilter or false);
|
self.filterPackages (!coq.dontFilter or false);
|
||||||
|
|
||||||
coq_8_5 = mkCoq "8.5";
|
coq_8_5 = mkCoq "8.5" { };
|
||||||
coq_8_6 = mkCoq "8.6";
|
coq_8_6 = mkCoq "8.6" { };
|
||||||
coq_8_7 = mkCoq "8.7";
|
coq_8_7 = mkCoq "8.7" { };
|
||||||
coq_8_8 = mkCoq "8.8";
|
coq_8_8 = mkCoq "8.8" { };
|
||||||
coq_8_9 = mkCoq "8.9";
|
coq_8_9 = mkCoq "8.9" { };
|
||||||
coq_8_10 = mkCoq "8.10";
|
coq_8_10 = mkCoq "8.10" { };
|
||||||
coq_8_11 = mkCoq "8.11";
|
coq_8_11 = mkCoq "8.11" { };
|
||||||
coq_8_12 = mkCoq "8.12";
|
coq_8_12 = mkCoq "8.12" { };
|
||||||
coq_8_13 = mkCoq "8.13";
|
coq_8_13 = mkCoq "8.13" { };
|
||||||
coq_8_14 = mkCoq "8.14";
|
coq_8_14 = mkCoq "8.14" { };
|
||||||
coq_8_15 = mkCoq "8.15";
|
coq_8_15 = mkCoq "8.15" { };
|
||||||
coq_8_16 = mkCoq "8.16";
|
coq_8_16 = mkCoq "8.16" { };
|
||||||
coq_8_17 = mkCoq "8.17";
|
coq_8_17 = mkCoq "8.17" { };
|
||||||
coq_8_18 = mkCoq "8.18";
|
coq_8_18 = mkCoq "8.18" { };
|
||||||
coq_8_19 = mkCoq "8.19";
|
coq_8_19 = mkCoq "8.19" { };
|
||||||
coq_8_20 = mkCoq "8.20";
|
coq_8_20 = mkCoq "8.20" { };
|
||||||
coq_9_0 = mkCoq "9.0";
|
coq_9_0 = mkCoq "9.0" rocqPackages_9_0;
|
||||||
coq_9_1 = mkCoq "9.1";
|
coq_9_1 = mkCoq "9.1" rocqPackages_9_1;
|
||||||
|
|
||||||
coqPackages_8_5 = mkCoqPackages coq_8_5;
|
coqPackages_8_5 = mkCoqPackages coq_8_5;
|
||||||
coqPackages_8_6 = mkCoqPackages coq_8_6;
|
coqPackages_8_6 = mkCoqPackages coq_8_6;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user