diff options
Diffstat (limited to 'pkgs/development/compilers/fstar/default.nix')
-rw-r--r-- | pkgs/development/compilers/fstar/default.nix | 54 |
1 files changed, 42 insertions, 12 deletions
diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix index 7abdf132b51e..fec71dc46fdc 100644 --- a/pkgs/development/compilers/fstar/default.nix +++ b/pkgs/development/compilers/fstar/default.nix @@ -1,36 +1,66 @@ { lib, stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles }: +let + # FStar requires sedlex < 2.4 + # see https://github.com/FStarLang/FStar/issues/2343 + sedlex-2_3 = ocamlPackages.sedlex_2.overrideAttrs (_: rec { + pname = "sedlex"; + version = "2.3"; + src = fetchFromGitHub { + owner = "ocaml-community"; + repo = "sedlex"; + rev = "v${version}"; + sha256 = "WXUXUuIaBUrFPQOKtZ7dgDZYdpEVnoJck0dkrCi8g0c="; + }; + }); +in + stdenv.mkDerivation rec { pname = "fstar"; - version = "0.9.6.0"; + version = "2021.07.31"; src = fetchFromGitHub { owner = "FStarLang"; repo = "FStar"; rev = "v${version}"; - sha256 = "0wix7l229afkn6c6sk4nwkfq0nznsiqdkds4ixi2yyf72immwmmb"; + sha256 = "KZTmphpt8nYpOd8EReAZ6iIkS4uY3ZziKQ3A70BL/90="; }; nativeBuildInputs = [ makeWrapper installShellFiles ]; - buildInputs = with ocamlPackages; [ - z3 ocaml findlib batteries menhir menhirLib stdint - zarith camlp4 yojson pprint - ulex ocaml-migrate-parsetree process ppx_deriving ppx_deriving_yojson ocamlbuild - ]; + buildInputs = [ + z3 + ] ++ (with ocamlPackages; [ + ocaml + findlib + ocamlbuild + batteries + zarith + stdint + yojson + fileutils + menhir + menhirLib + pprint + sedlex-2_3 + ppxlib + ppx_deriving + ppx_deriving_yojson + process + ]); makeFlags = [ "PREFIX=$(out)" ]; - preBuild = '' - patchShebangs src/tools - patchShebangs bin + buildFlags = [ "libs" ]; + + postPatch = '' + patchShebangs ulib/gen_mllib.sh + substituteInPlace src/ocaml-output/Makefile --replace '$(COMMIT)' 'v${version}' ''; - buildFlags = [ "-C" "src/ocaml-output" ]; preInstall = '' mkdir -p $out/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/fstarlib ''; - installFlags = [ "-C" "src/ocaml-output" ]; postInstall = '' wrapProgram $out/bin/fstar.exe --prefix PATH ":" "${z3}/bin" installShellCompletion --bash .completion/bash/fstar.exe.bash |