function_hooks: add add_function_param_hook()
[smatch.git] / Documentation / index.rst
blobe29a5643849a9a2ddfb210fcf381e9976046dc29
1 .. sparse documentation master file.
3 Welcome to sparse's documentation
4 =================================
6 .. toctree::
7    :maxdepth: 1
9 About Sparse
10 ------------
12 Sparse, the semantic parser, provides a compiler frontend capable of
13 parsing most of ANSI C as well as many GCC extensions, and a collection
14 of sample compiler backends, including a static analyzer also called `sparse`.
15 Sparse provides a set of annotations designed to convey semantic information
16 about types, such as what address space pointers point to, or what locks
17 function acquires or releases.
19 Linus Torvalds started writing Sparse in 2003, initially targeting issues such
20 as mixing pointers to user address space and pointers to kernel address space.
22 Josh Triplett was Sparse's first maintainer in 2006. This role was taken over
23 by Christopher Li in 2009 and by Luc Van Oostenryck in late 2018.
25 Getting Sparse
26 --------------
28 The most recent version can be obtained directly from the Git
29 repository with the command::
31         git clone git://git.kernel.org/pub/scm/devel/sparse/sparse.git
33 You can also `browse the Git repository <https://git.kernel.org/pub/scm/devel/sparse/sparse.git>`_
34 or use the mirror at https://github.com/lucvoo/sparse.
35 The tarballs of released versions of Sparse and their signatures can be found at
36 https://www.kernel.org/pub/software/devel/sparse/dist/.
38 Once you have the sources, to build Sparse and install it in your ~/bin
39 directory, just do::
41         cd sparse
42         make
43         make install
45 To install it in another directory, use::
47         make PREFIX=<some directory> install
49 Contributing and reporting bugs
50 -------------------------------
52 Submission of patches and reporting of bugs, as well as discussions
53 related to Sparse, should be done via the mailing list:
54 linux-sparse@vger.kernel.org.
55 You do not have to be subscribed to the list to send a message there.
56 Previous discussions and bug reports are available on the list
57 archives at https://marc.info/?l=linux-sparse.
59 To subscribe to the list, send an email with
60 ``subscribe linux-sparse`` in the body to ``majordomo@vger.kernel.org``.
62 Bugs 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>`_.
66 .. toctree::
67    :caption: User Documentation
68    :maxdepth: 1
70    annotations
72 Some interesting external documentation:
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>`_
77 .. toctree::
78    :caption: Development
79    :maxdepth: 1
81    submitting-patches
82    types
83    api
84    dev-options
85    IR
86    test-suite
87    doc-guide
88    TODO
90 .. toctree::
91    :caption: Release Notes
92    :maxdepth: 1
94    release-notes/index
96 Indices and tables
97 ==================
99 * :ref:`genindex`