summary refs log tree commit diff
path: root/pkgs/development/interpreters/acl2/default.nix
blob: 9445d42f24e4cecbdb2d6347feffb9cd8fe495f8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{ stdenv, fetchFromGitHub,
  # perl, which, nettools,
  sbcl }:

let hashes = {
  "8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r";
  "8.2" = "1x33kv6w9cbqzvyrihn61pzmqlvnk3drm8ksd5v0arg38i95awi3";
};
revs = {
  "8.0" = "8.0";
  "8.2" = "8.2";
};
in stdenv.mkDerivation rec {
  pname = "acl2";
  version = "8.2";

  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.linux;
  };
}