compcert: 3.7 → 3.8

wip/yesman
Vincent Laporte 4 years ago committed by Vincent Laporte
parent 23290bd131
commit a35e7daa2b
  1. 47
      pkgs/development/compilers/compcert/default.nix
  2. 8
      pkgs/top-level/coq-packages.nix

@ -1,36 +1,52 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, makeWrapper
, coq, ocamlPackages, coq2html
{ stdenv, fetchFromGitHub, fetchpatch, makeWrapper
, coqPackages, ocamlPackages, coq2html
, tools ? stdenv.cc
, version ? "3.8"
}:
let
ocaml-pkgs = with ocamlPackages; [ ocaml findlib menhir ];
ccomp-platform = if stdenv.isDarwin then "x86_64-macosx" else "x86_64-linux";
inherit (coqPackages) coq flocq;
inherit (stdenv.lib) optional optionalString;
in
let param = {
"3.7" = {
sha256 = "1h4zhk9rrqki193nxs9vjvya7nl9yxjcf07hfqb6g77riy1vd2jr";
patches = [
(fetchpatch {
url = "https://github.com/AbsInt/CompCert/commit/0a2db0269809539ccc66f8ec73637c37fbd23580.patch";
sha256 = "0n8qrba70x8f422jdvq9ddgsx6avf2dkg892g4ldh3jiiidyhspy";
})
(fetchpatch {
url = "https://github.com/AbsInt/CompCert/commit/5e29f8b5ba9582ecf2a1d0baeaef195873640607.patch";
sha256 = "184nfdgxrkci880lkaj5pgnify3plka7xfgqrgv16275sqppc5hc";
})
];
};
"3.8" = {
sha256 = "1gzlyxvw64ca12qql3wnq3bidcx9ygsklv9grjma3ib4hvg7vnr7";
useExternalFlocq = true;
};
}."${version}"; in
stdenv.mkDerivation rec {
pname = "compcert";
version = "3.7";
inherit version;
src = fetchFromGitHub {
owner = "AbsInt";
repo = "CompCert";
rev = "v${version}";
sha256 = "1h4zhk9rrqki193nxs9vjvya7nl9yxjcf07hfqb6g77riy1vd2jr";
inherit (param) sha256;
};
patches = [
(fetchpatch {
url = "https://github.com/AbsInt/CompCert/commit/0a2db0269809539ccc66f8ec73637c37fbd23580.patch";
sha256 = "0n8qrba70x8f422jdvq9ddgsx6avf2dkg892g4ldh3jiiidyhspy";
})
(fetchpatch {
url = "https://github.com/AbsInt/CompCert/commit/5e29f8b5ba9582ecf2a1d0baeaef195873640607.patch";
sha256 = "184nfdgxrkci880lkaj5pgnify3plka7xfgqrgv16275sqppc5hc";
})
];
patches = param.patches or [];
nativeBuildInputs = [ makeWrapper ];
buildInputs = ocaml-pkgs ++ [ coq coq2html ];
propagatedBuildInputs = optional (param.useExternalFlocq or false) flocq;
enableParallelBuilding = true;
postPatch = ''
@ -43,6 +59,7 @@ stdenv.mkDerivation rec {
-prefix $out \
-coqdevdir $lib/lib/coq/${coq.coq-version}/user-contrib/compcert/ \
-toolprefix ${tools}/bin/ \
${optionalString (param.useExternalFlocq or false) "-use-external-Flocq"} \
${ccomp-platform}
'';
@ -68,7 +85,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Formally verified C compiler";
homepage = "http://compcert.inria.fr";
homepage = "https://compcert.org";
license = licenses.inria-compcert;
platforms = [ "x86_64-linux" "x86_64-darwin" ];
maintainers = with maintainers; [ thoughtpolice jwiegley vbgl ];

@ -1,4 +1,6 @@
{ lib, callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05, ocamlPackages_4_09 }:
{ lib, callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05, ocamlPackages_4_09
, compcert
}:
let
mkCoqPackages' = self: coq:
@ -59,7 +61,9 @@ let
tlc = callPackage ../development/coq-modules/tlc {};
Velisarios = callPackage ../development/coq-modules/Velisarios {};
Verdi = callPackage ../development/coq-modules/Verdi {};
VST = callPackage ../development/coq-modules/VST {};
VST = callPackage ../development/coq-modules/VST {
compcert = compcert.override { version = "3.7"; };
};
filterPackages = filterCoqPackages;
};

Loading…
Cancel
Save