2017-11-04 18:45:34 +01:00
|
|
|
{ stdenv, fetchFromGitHub,
|
|
|
|
# perl, which, nettools,
|
|
|
|
sbcl }:
|
2016-01-24 13:49:33 +01:00
|
|
|
|
2017-11-04 18:45:34 +01:00
|
|
|
let hashes = {
|
2018-02-24 22:56:56 +01:00
|
|
|
"8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r";
|
2018-09-21 18:09:29 +02:00
|
|
|
"8.1" = "0isi75j94q79x4341rhd94c60228iwvccy71ssnyvh1025m93xcd";
|
2018-09-21 12:07:07 +02:00
|
|
|
};
|
|
|
|
revs = {
|
|
|
|
"8.0" = "8.0";
|
2018-09-21 18:09:29 +02:00
|
|
|
"8.1" = "8.1";
|
2017-11-04 18:45:34 +01:00
|
|
|
};
|
|
|
|
in stdenv.mkDerivation rec {
|
2016-01-24 13:49:33 +01:00
|
|
|
name = "acl2-${version}";
|
2018-09-21 18:09:29 +02:00
|
|
|
version = "8.1";
|
2009-08-13 16:32:52 +02:00
|
|
|
|
2017-11-04 18:45:34 +01:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "acl2-devel";
|
|
|
|
repo = "acl2-devel";
|
2018-09-21 12:07:07 +02:00
|
|
|
rev = revs."${version}";
|
2017-11-04 18:45:34 +01:00
|
|
|
sha256 = hashes."${version}";
|
2009-08-13 16:32:52 +02:00
|
|
|
};
|
|
|
|
|
2017-11-04 18:45:34 +01:00
|
|
|
buildInputs = [ sbcl
|
|
|
|
# which perl nettools
|
|
|
|
];
|
|
|
|
|
|
|
|
enableParallelBuilding = true;
|
2009-08-13 16:32:52 +02:00
|
|
|
|
2016-01-24 13:49:33 +01:00
|
|
|
phases = "unpackPhase installPhase";
|
2009-08-13 16:32:52 +02:00
|
|
|
|
|
|
|
installSuffix = "acl2";
|
2016-01-24 13:49:33 +01:00
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/share/${installSuffix}
|
2017-11-04 18:45:34 +01:00
|
|
|
mkdir -p $out/bin
|
2016-01-24 13:49:33 +01:00
|
|
|
cp -R . $out/share/${installSuffix}
|
2009-08-13 16:32:52 +02:00
|
|
|
cd $out/share/${installSuffix}
|
2017-11-04 18:45:34 +01: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 13:49:33 +01:00
|
|
|
cp saved_acl2 $out/bin/acl2
|
|
|
|
'';
|
|
|
|
|
2009-08-13 16:32:52 +02:00
|
|
|
meta = {
|
|
|
|
description = "An interpreter and a prover for a Lisp dialect";
|
2017-11-04 18:45:34 +01: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.
|
|
|
|
'';
|
|
|
|
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 ];
|
2016-01-24 13:49:33 +01:00
|
|
|
platforms = stdenv.lib.platforms.linux;
|
2009-08-13 16:32:52 +02:00
|
|
|
};
|
|
|
|
}
|