2017-11-04 17:45:34 +00:00
|
|
|
{ stdenv, fetchFromGitHub,
|
|
|
|
# perl, which, nettools,
|
|
|
|
sbcl }:
|
2016-01-24 12:49:33 +00:00
|
|
|
|
2017-11-04 17:45:34 +00:00
|
|
|
let hashes = {
|
2018-02-24 21:56:56 +00:00
|
|
|
"8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r";
|
2020-04-23 00:47:27 +01:00
|
|
|
"8.3" = "0c0wimaf16nrr3d6cxq6p7nr7rxffvpmn66hkpwc1m6zpcipf0y5";
|
2018-09-21 11:07:07 +01:00
|
|
|
};
|
|
|
|
revs = {
|
|
|
|
"8.0" = "8.0";
|
2020-04-23 00:47:27 +01:00
|
|
|
"8.3" = "8.3";
|
2017-11-04 17:45:34 +00:00
|
|
|
};
|
|
|
|
in stdenv.mkDerivation rec {
|
2019-08-15 13:41:18 +01:00
|
|
|
pname = "acl2";
|
2020-04-23 00:47:27 +01:00
|
|
|
version = "8.3";
|
2009-08-13 15:32:52 +01:00
|
|
|
|
2017-11-04 17:45:34 +00:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "acl2-devel";
|
|
|
|
repo = "acl2-devel";
|
2019-08-13 22:52:01 +01:00
|
|
|
rev = revs.${version};
|
|
|
|
sha256 = hashes.${version};
|
2009-08-13 15:32:52 +01:00
|
|
|
};
|
|
|
|
|
2017-11-04 17:45:34 +00:00
|
|
|
buildInputs = [ sbcl
|
|
|
|
# which perl nettools
|
|
|
|
];
|
|
|
|
|
|
|
|
enableParallelBuilding = true;
|
2009-08-13 15:32:52 +01:00
|
|
|
|
2016-01-24 12:49:33 +00:00
|
|
|
phases = "unpackPhase installPhase";
|
2009-08-13 15:32:52 +01:00
|
|
|
|
|
|
|
installSuffix = "acl2";
|
2016-01-24 12:49:33 +00:00
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/share/${installSuffix}
|
2017-11-04 17:45:34 +00:00
|
|
|
mkdir -p $out/bin
|
2016-01-24 12:49:33 +00:00
|
|
|
cp -R . $out/share/${installSuffix}
|
2009-08-13 15:32:52 +01:00
|
|
|
cd $out/share/${installSuffix}
|
2017-11-04 17:45:34 +00:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|
2016-01-24 12:49:33 +00:00
|
|
|
cp saved_acl2 $out/bin/acl2
|
|
|
|
'';
|
|
|
|
|
2009-08-13 15:32:52 +01:00
|
|
|
meta = {
|
|
|
|
description = "An interpreter and a prover for a Lisp dialect";
|
2017-11-04 17:45:34 +00:00
|
|
|
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.
|
|
|
|
'';
|
2020-04-01 02:11:51 +01:00
|
|
|
homepage = "http://www.cs.utexas.edu/users/moore/acl2/";
|
|
|
|
downloadPage = "https://github.com/acl2-devel/acl2-devel/releases";
|
2017-11-04 17:45:34 +00:00
|
|
|
# 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 ];
|
2020-04-23 00:47:27 +01:00
|
|
|
platforms = stdenv.lib.platforms.all;
|
|
|
|
broken = stdenv.isAarch64 && stdenv.isLinux;
|
2009-08-13 15:32:52 +01:00
|
|
|
};
|
|
|
|
}
|