pkgs: add havm

This is a dependency for Tiger Compiler [1].

[1]: https://assignments.lrde.epita.fr/
This commit is contained in:
Bruno BELANYI 2021-04-20 17:35:01 +00:00
parent 9a9ec81204
commit e438b7b5f5
2 changed files with 32 additions and 0 deletions

View file

@ -1,5 +1,7 @@
{ pkgs }: { pkgs }:
{ {
havm = pkgs.callPackage ./havm { };
lohr = pkgs.callPackage ./lohr { }; lohr = pkgs.callPackage ./lohr { };
nolimips = pkgs.callPackage ./nolimips { }; nolimips = pkgs.callPackage ./nolimips { };

30
pkgs/havm/default.nix Normal file
View file

@ -0,0 +1,30 @@
{ fetchurl, ghc, lib, stdenv, which }:
stdenv.mkDerivation rec {
pname = "havm";
version = "0.28";
src = fetchurl {
url = "https://www.lrde.epita.fr/~tiger/download/${pname}-${version}.tar.gz";
sha256 = "sha256-FDi4FZ8rjGqRkFlROtcJsv+mks7MmIXQGV4bZrwkQrA=";
};
buildInputs = [
ghc
which # Used by tests
];
doCheck = true;
meta = with lib; {
description = "A simple virtual machine to execute Andrew Appel's HIR/LIR";
longDescription = ''
HAVM is a virtual machine designed to execute simple register based high
level intermediate code. It is based on the intermediate representations
("canonicalized" or not) defined by Andrew Appel in his "Modern Compiler
Implementation".
'';
homepage = "https://www.lrde.epita.fr/wiki/Havm";
license = licenses.gpl2Plus;
platforms = platforms.all;
};
}