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
| | ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmaiL.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages sparse)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages perl))
(define-public sparse
(package
(name "sparse")
(version "0.4.4")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.kernel.org/pub/software/devel/sparse/dist/"
"sparse-" version ".tar.bz2"))
(sha256
(base32
"1bv50z84blz3qdh22jk6ay1aga30zwm18x2w1gf6fzjn6dz3pkjp"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))
#:phases (alist-replace
'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system* "make" "install"
(string-append "PREFIX=" out)))))
(alist-delete 'configure %standard-phases))))
(inputs
`(("perl" ,perl)))
(home-page "https://sparse.wiki.kernel.org/")
(synopsis "A semantic parser")
(description
"Sparse, the semantic parser, provides a compiler frontend capable of
parsing most of ANSI C as well as many GCC extensions, and a collection of
sample compiler backends, including a static analyzer also called \"sparse\".
Sparse provides a set of annotations designed to convey semantic information
about types, such as what address space pointers point to, or what locks a
function acquires or releases.
Linus Torvalds started writing Sparse in 2003, initially targeting issues such
as mixing pointers to user address space and pointers to kernel address space.
Josh Triplett maintained Sparse 2006~2009. As of 2009, Christopher Li is the
current maintainer of Sparse.")
(license osl)))
|