nixpkgs/pkgs/development/interpreters/acl2/default.nix
2020-04-23 17:15:41 -07:00

79 lines
2.3 KiB
Nix

{ stdenv, fetchFromGitHub,
# perl, which, nettools,
sbcl }:
let hashes = {
"8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r";
"8.3" = "0c0wimaf16nrr3d6cxq6p7nr7rxffvpmn66hkpwc1m6zpcipf0y5";
};
revs = {
"8.0" = "8.0";
"8.3" = "8.3";
};
in stdenv.mkDerivation rec {
pname = "acl2";
version = "8.3";
src = fetchFromGitHub {
owner = "acl2-devel";
repo = "acl2-devel";
rev = revs.${version};
sha256 = hashes.${version};
};
buildInputs = [ sbcl
# which perl nettools
];
enableParallelBuilding = true;
phases = "unpackPhase installPhase";
installSuffix = "acl2";
installPhase = ''
mkdir -p $out/share/${installSuffix}
mkdir -p $out/bin
cp -R . $out/share/${installSuffix}
cd $out/share/${installSuffix}
# make ACL2 image
make LISP=${sbcl}/bin/sbcl
# The community books don't build properly under Nix yet.
rm -rf books
#make ACL2=$out/share/saved_acl2 USE_QUICKLISP=1 regression-everything
cp saved_acl2 $out/bin/acl2
'';
meta = {
description = "An interpreter and a prover for a Lisp dialect";
longDescription = ''
ACL2 is a logic and programming language in which you can model
computer systems, together with a tool to help you prove
properties of those models. "ACL2" denotes "A Computational
Logic for Applicative Common Lisp".
ACL2 is part of the Boyer-Moore family of provers, for which its
authors have received the 2005 ACM Software System Award.
NOTE: In nixpkgs, the community books that usually ship with
ACL2 have been removed because it is not currently possible to
build them with Nix.
'';
homepage = "http://www.cs.utexas.edu/users/moore/acl2/";
downloadPage = "https://github.com/acl2-devel/acl2-devel/releases";
# There are a bunch of licenses in the community books, but since
# they currently get deleted during the build, we don't mention
# their licenses here. ACL2 proper is released under a BSD
# 3-clause license.
#license = with stdenv.lib.licenses;
#[ free bsd3 mit gpl2 llgpl21 cc0 publicDomain ];
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [ kini raskin ];
platforms = stdenv.lib.platforms.all;
broken = stdenv.isAarch64 && stdenv.isLinux;
};
}