Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
86 lines
2.0 KiB
Nix
86 lines
2.0 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
runtimeShell,
|
|
fetchFromGitHub,
|
|
ocaml,
|
|
findlib,
|
|
num,
|
|
zarith,
|
|
camlp5,
|
|
camlp-streams,
|
|
}:
|
|
|
|
let
|
|
use_zarith = lib.versionAtLeast ocaml.version "4.14";
|
|
load_num =
|
|
if use_zarith then
|
|
''
|
|
-I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/zarith \
|
|
-I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
|
|
''
|
|
else
|
|
lib.optionalString (num != null) ''
|
|
-I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
|
|
-I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
|
|
-I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
|
|
'';
|
|
|
|
start_script = ''
|
|
#!${runtimeShell}
|
|
cd $out/lib/hol_light
|
|
export OCAMLPATH="''${OCAMLPATH-}''${OCAMLPATH:+:}${camlp5}/lib/ocaml/${ocaml.version}/site-lib/"
|
|
exec ${ocaml}/bin/ocaml \
|
|
-I \`${camlp5}/bin/camlp5 -where\` \
|
|
${load_num} \
|
|
-I ${findlib}/lib/ocaml/${ocaml.version}/site-lib/ \
|
|
-I ${camlp-streams}/lib/ocaml/${ocaml.version}/site-lib/camlp-streams camlp_streams.cma \
|
|
-init make.ml
|
|
'';
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
pname = "hol_light";
|
|
version = "unstable-2024-07-07";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "jrh13";
|
|
repo = "hol-light";
|
|
rev = "16b184e30e7e3fe9add7d1ee93242323ed2e1726";
|
|
hash = "sha256-V0OtsmX5pa+CH3ZXmNG3juXwXZ5+A0k13eMCAfaRziQ=";
|
|
};
|
|
|
|
patches = [ ./0004-Fix-compilation-with-camlp5-7.11.patch ];
|
|
|
|
strictDeps = true;
|
|
|
|
nativeBuildInputs = [
|
|
ocaml
|
|
findlib
|
|
camlp5
|
|
];
|
|
propagatedBuildInputs = [
|
|
camlp-streams
|
|
(if use_zarith then zarith else num)
|
|
];
|
|
|
|
installPhase = ''
|
|
mkdir -p "$out/lib/hol_light" "$out/bin"
|
|
cp -a . $out/lib/hol_light
|
|
echo "${start_script}" > "$out/bin/hol_light"
|
|
chmod a+x "$out/bin/hol_light"
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Interactive theorem prover based on Higher-Order Logic";
|
|
homepage = "http://www.cl.cam.ac.uk/~jrh13/hol-light/";
|
|
license = licenses.bsd2;
|
|
platforms = platforms.unix;
|
|
maintainers = with maintainers; [
|
|
thoughtpolice
|
|
maggesi
|
|
vbgl
|
|
];
|
|
};
|
|
}
|