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