aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Documentation/index.rst
blob: 9c76419ba5dd8b86aec77190241d58e9ec979221 (plain)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
.. sparse documentation master file.

Welcome to sparse's documentation
=================================

.. toctree::
   :maxdepth: 1

About Sparse
------------

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
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 was Sparse's first maintainer in 2006. This role was taken over
by Christopher Li in 2009 and by Luc Van Oostenryck in late 2018.

Getting Sparse
--------------

You can find tarballs of released versions of Sparse at
http://www.kernel.org/pub/software/devel/sparse/dist/.

The most recent version can be obtained directly from the Git
repository with the command::

	git clone git://git.kernel.org/pub/scm/devel/sparse/sparse.git

You can also `browse the Git repository <https://git.kernel.org/pub/scm/devel/sparse/sparse.git>`_
or use the mirror at https://github.com/lucvoo/sparse.

Once you have the sources, to build Sparse and install it in your ~/bin
directory, just do::

	cd sparse
	make
	make install

To install it in another directory, use::

	make PREFIX=<some directory> install

Contributing and reporting bugs
-------------------------------

Submission of patches and reporting of bugs, as well as discussions
related to Sparse, should be done via the mailing list:
linux-sparse@vger.kernel.org.
You do not have to be subscribed to the list to send a message there.
Previous discussions and bug reports are available on the list
archives at https://marc.info/?l=linux-sparse.

To subscribe to the list, send an email with
``subscribe linux-sparse`` in the body to ``majordomo@vger.kernel.org``.

Bugs can also be reported and tracked via the Linux kernel's bugzilla:
http://bugzilla.kernel.org/enter_bug.cgi?component=Sparse&product=Tools.

User documentation
------------------
.. toctree::
   :maxdepth: 1

   annotations
   nocast-vs-bitwise

Developer documentation
-----------------------
.. toctree::
   :maxdepth: 1

   test-suite
   dev-options
   api
   IR
   types

How to contribute
-----------------
.. toctree::
   :maxdepth: 1

   submitting-patches
   TODO

Documentation
-------------
.. toctree::
   :maxdepth: 1

   doc-guide

Release Notes
-------------
.. toctree::
   :maxdepth: 1

   release-notes/index

Indices and tables
==================

* :ref:`genindex`