Commit 4fc61bc7 authored by Vincent Laporte's avatar Vincent Laporte Committed by Vincent Laporte
Browse files

ocamlPackages.sail: 0.16 → 0.18

parent e8539cc7
Loading
Loading
Loading
Loading
+26 −43
Original line number Diff line number Diff line
{
  stdenv,
  fetchFromGitHub,
  fetchpatch,
  lib,
  arch,
  ocamlPackages,
  ocaml,
  cmake,
  gmp,
  pkg-config,
  sail,
  ninja,
  zlib,
  z3,
}:

stdenv.mkDerivation rec {
  pname = "sail-riscv";
  version = "0.5";
  version = "0.6";

  src = fetchFromGitHub {
    owner = "riscv";
    repo = pname;
    rev = version;
    hash = "sha256-7PZNNUMaCZEBf0lOCqkquewRgZPooBOjIbGF7JlLnEo=";
    hash = "sha256-cO0ZOr2frMMLE9NUGDxy9+KpuyBnixw6wcNzUArxDiE=";
  };

  nativeBuildInputs = with ocamlPackages; [
    ocamlbuild
    findlib
    ocaml
  nativeBuildInputs = [
    z3
    cmake
    pkg-config
    ninja
    sail
  ];
  buildInputs = with ocamlPackages; [
  buildInputs = [
    zlib
    linksem
    gmp
  ];
  strictDeps = true;

  patches = [
    (fetchpatch {
      url = "https://github.com/riscv/sail-riscv/pull/250/commits/8bd37c484b83a8ce89c8bb7a001b8ae34dc4d77f.patch";
      hash = "sha256-tDgkGhcbT6phoCAvilxMI56YUuUqQFgvh+2QduOjdMg=";
    })
  ];

  postPatch =
    ''
  postPatch = ''
    rm -r prover_snapshots
    ''
    + lib.optionalString stdenv.hostPlatform.isDarwin ''
      substituteInPlace Makefile --replace "-flto" ""
  '';

  makeFlags = [
    "SAIL=sail"
    "ARCH=${arch}"
    "SAIL_DIR=${ocamlPackages.sail}/share/sail"
    "LEM_DIR=${ocamlPackages.sail}/share/lem"
  ];

  installPhase = ''
    runHook preInstall

    mkdir -p $out/bin
    cp c_emulator/riscv_sim_${arch} $out/bin
    mkdir $out/share/
    cp -r generated_definitions/{coq,hol4,isabelle} $out/share/

    runHook postInstall
  preBuild = ''
    ninja \
      riscv_sim_rv32d      \
      riscv_sim_rv32d_rvfi \
      riscv_sim_rv32f      \
      riscv_sim_rv32f_rvfi \
      riscv_sim_rv64d      \
      riscv_sim_rv64d_rvfi \
      riscv_sim_rv64f      \
      riscv_sim_rv64f_rvfi
  '';

  meta = with lib; {
    homepage = "https://github.com/riscv/sail-riscv";
    description = "Formal specification of the RISC-V architecture, written in Sail";
    maintainers = with maintainers; [ genericnerdyusername ];
    broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
    license = licenses.bsd2;
  };
}
+21 −14
Original line number Diff line number Diff line
{
  lib,
  fetchFromGitHub,
  stdenv,
  darwin,
  fetchurl,
  buildDunePackage,
  base64,
  omd,
  menhir,
  menhirLib,
  ott,
  linenoise,
  dune-site,
@@ -13,26 +16,29 @@
  lem,
  linksem,
  yojson,
  version ? "0.18",
}:

buildDunePackage rec {
buildDunePackage {
  pname = "sail";
  version = "0.16";
  inherit version;

  src = fetchFromGitHub {
    owner = "rems-project";
    repo = "sail";
    rev = version;
    hash = "sha256-HY/rgWi0S7ZiAWZF0fVIRK6fpoJ7Xp5EQcxoPRCPJ5Y=";
  src = fetchurl {
    url = "https://github.com/rems-project/sail/releases/download/${version}/sail-${version}.tbz";
    hash = "sha256-/NvaFPHtWfow4j2jSr4CVHQW48KoP77uVgbhAKXtzzU=";
  };

  minimalOCamlVersion = "4.08";

  nativeBuildInputs = [
  nativeBuildInputs =
    [
      makeWrapper
      ott
      menhir
      lem
    ]
    ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
      darwin.sigtool
    ];

  propagatedBuildInputs = [
@@ -40,6 +46,7 @@ buildDunePackage rec {
    omd
    dune-site
    linenoise
    menhirLib
    pprint
    linksem
    yojson
+2 −6
Original line number Diff line number Diff line
@@ -17766,12 +17766,8 @@ with pkgs;
  xdragon = lowPrio (callPackage ../tools/X11/xdragon { });
  sail-riscv-rv32 = callPackage ../applications/virtualization/sail-riscv {
    arch = "RV32";
  };
  sail-riscv-rv64 = callPackage ../applications/virtualization/sail-riscv {
    arch = "RV64";
  sail-riscv = callPackage ../applications/virtualization/sail-riscv {
    inherit (ocamlPackages) sail;
  };
  timeloop = pkgs.darwin.apple_sdk_11_0.callPackage ../applications/science/computer-architecture/timeloop { };