• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.. sparse documentation master file.
2
3Welcome to sparse's documentation
4=================================
5
6.. toctree::
7   :maxdepth: 1
8
9About Sparse
10------------
11
12Sparse, the semantic parser, provides a compiler frontend capable of
13parsing most of ANSI C as well as many GCC extensions, and a collection
14of sample compiler backends, including a static analyzer also called `sparse`.
15Sparse provides a set of annotations designed to convey semantic information
16about types, such as what address space pointers point to, or what locks
17function acquires or releases.
18
19Linus Torvalds started writing Sparse in 2003, initially targeting issues such
20as mixing pointers to user address space and pointers to kernel address space.
21
22Josh Triplett was Sparse's first maintainer in 2006. This role was taken over
23by Christopher Li in 2009 and by Luc Van Oostenryck in late 2018.
24
25Getting Sparse
26--------------
27
28The most recent version can be obtained directly from the Git
29repository with the command::
30
31	git clone git://git.kernel.org/pub/scm/devel/sparse/sparse.git
32
33You can also `browse the Git repository <https://git.kernel.org/pub/scm/devel/sparse/sparse.git>`_
34or use the mirror at https://github.com/lucvoo/sparse.
35The tarballs of released versions of Sparse and their signatures can be found at
36https://www.kernel.org/pub/software/devel/sparse/dist/.
37
38Once you have the sources, to build Sparse and install it in your ~/bin
39directory, just do::
40
41	cd sparse
42	make
43	make install
44
45To install it in another directory, use::
46
47	make PREFIX=<some directory> install
48
49Contributing and reporting bugs
50-------------------------------
51
52Submission of patches and reporting of bugs, as well as discussions
53related to Sparse, should be done via the mailing list:
54linux-sparse@vger.kernel.org.
55You do not have to be subscribed to the list to send a message there.
56Previous discussions and bug reports are available on the list
57archives at https://marc.info/?l=linux-sparse.
58
59To subscribe to the list, send an email with
60``subscribe linux-sparse`` in the body to ``majordomo@vger.kernel.org``.
61
62Bugs can also be reported and tracked via the `Linux kernel's bugzilla for sparse
63<https://bugzilla.kernel.org/enter_bug.cgi?component=Sparse&product=Tools>`_.
64
65
66.. toctree::
67   :caption: User Documentation
68   :maxdepth: 1
69
70   annotations
71
72Some interesting external documentation:
73
74* `Sparse: a look under the hood <https://lwn.net/Articles/689907/>`_
75* `Sparse: a short overview <https://sil2.osadl.org/events/ewc-2019-hands-on/sparse_slides.pdf>`_
76
77.. toctree::
78   :caption: Development
79   :maxdepth: 1
80
81   submitting-patches
82   types
83   api
84   dev-options
85   IR
86   test-suite
87   doc-guide
88   TODO
89
90.. toctree::
91   :caption: Release Notes
92   :maxdepth: 1
93
94   release-notes/index
95
96Indices and tables
97==================
98
99* :ref:`genindex`
100