<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Preface</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Spirit Repository 0.1">
<link rel="up" href="../index.html" title="Spirit Repository 0.1">
<link rel="prev" href="../index.html" title="Spirit Repository 0.1">
<link rel="next" href="qi_components.html" title="Qi Components">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="qi_components.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="spirit_repository.preface"></a><a class="link" href="preface.html" title="Preface">Preface</a>
</h2></div></div></div>
<a name="spirit_repository.preface.the_spirit_repository"></a><h4>
<a name="id759774"></a>
      <a class="link" href="preface.html#spirit_repository.preface.the_spirit_repository">The Spirit
      Repository</a>
    </h4>
<p>
      The <a href="http://spirit.sourceforge.net" target="_top">Spirit</a> repository is
      a community effort collecting different reusable components (primitives, directives,
      grammars, etc.) for <span class="emphasis"><em>Spirit.Qi</em></span> parsers and <span class="emphasis"><em>Spirit.Karma</em></span>
      generators. All components in the repository have been peer reviewed and/or
      discussed on the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
      General List</a>. The aim is to broaden the scope of the <a href="http://spirit.sourceforge.net" target="_top">Spirit</a>
      library while being able to maintain its high standards in terms of code quality,
      flexibility, and maintainability. At the same time it encourages people to
      contribute even small components as it lessens the hurdle of becoming a <a href="http://www.boost.org/" target="_top">Boost</a> and <a href="http://spirit.sourceforge.net" target="_top">Spirit</a>
      author.
    </p>
<p>
      Maintainability of the code and author commitment over a longer period of time
      are crucial for <span class="emphasis"><em>Spirit's</em></span> success (as it is for the whole
      <a href="http://www.boost.org/" target="_top">Boost</a> project). That allows the
      repository to play an additional role in terms of being a proving ground for
      interested authors. It is a lot easier to remove code from the repository than
      from the <span class="emphasis"><em>Spirit</em></span> core library. So if an author can't maintain
      his/her contribution anymore for any reason, we are able to remove those parts
      from the repository more easily.
    </p>
<p>
      The repository is an excellent way of evolving things. The <span class="emphasis"><em>Spirit</em></span>
      core has been developed for years, so we have a certain confidence of it being
      properly designed and exposing a proven API. On the other hand, new ideas often
      need some time to 'come to the point'. Changing API's is part of this business.
      At the same time changing API's always mean user disruption, which we want
      to keep to a minimum. Again, changing things in the repository is ought to
      be a lot easier than in the core library.
    </p>
<p>
      The quality of contributions is another key to success. That includes not only
      the code itself, but takes into consideration such things as documentation,
      tests, examples. The authors activity on the mailing list is related as well,
      it's an important point. Only well supported things will evolve over time into
      usable, high quality components. The mandatory discussions and the review of
      contributions on the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
      General List</a> ensure the targeted high quality standards.
    </p>
<p>
      Based on the user feedback and general usability of things it it possible over
      time to move repository components<span class="emphasis"><em>grammars into the /Spirit</em></span>
      core library.
    </p>
<a name="spirit_repository.preface.how_to_use_this_manual"></a><h4>
<a name="id759903"></a>
      <a class="link" href="preface.html#spirit_repository.preface.how_to_use_this_manual">How to use
      this manual</a>
    </h4>
<p>
      Some icons are used to mark certain topics indicative of their relevance. These
      icons precede some text to indicate:
    </p>
<div class="table">
<a name="id759921"></a><p class="title"><b>Table&#160;1.&#160;Icons</b></p>
<div class="table-contents"><table class="table" summary="Icons">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
              <p>
                Icon
              </p>
            </th>
<th>
              <p>
                Name
              </p>
            </th>
<th>
              <p>
                Meaning
              </p>
            </th>
</tr></thead>
<tbody>
<tr>
<td>
              <p>
                <span class="inlinemediaobject"><img src="../images/note.png" alt="note"></span>
              </p>
            </td>
<td>
              <p>
                Note
              </p>
            </td>
<td>
              <p>
                Generally useful information (an aside that doesn't fit in the flow
                of the text)
              </p>
            </td>
</tr>
<tr>
<td>
              <p>
                <span class="inlinemediaobject"><img src="../images/tip.png" alt="tip"></span>
              </p>
            </td>
<td>
              <p>
                Tip
              </p>
            </td>
<td>
              <p>
                Suggestion on how to do something (especially something that not
                be obvious)
              </p>
            </td>
</tr>
<tr>
<td>
              <p>
                <span class="inlinemediaobject"><img src="../images/important.png" alt="important"></span>
              </p>
            </td>
<td>
              <p>
                Important
              </p>
            </td>
<td>
              <p>
                Important note on something to take particular notice of
              </p>
            </td>
</tr>
<tr>
<td>
              <p>
                <span class="inlinemediaobject"><img src="../images/caution.png" alt="caution"></span>
              </p>
            </td>
<td>
              <p>
                Caution
              </p>
            </td>
<td>
              <p>
                Take special care with this - it may not be what you expect and may
                cause bad results
              </p>
            </td>
</tr>
<tr>
<td>
              <p>
                <span class="inlinemediaobject"><img src="../images/alert.png" alt="alert"></span>
              </p>
            </td>
<td>
              <p>
                Danger
              </p>
            </td>
<td>
              <p>
                This is likely to cause serious trouble if ignored
              </p>
            </td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><p>
      This documentation is automatically generated by Boost QuickBook documentation
      tool. QuickBook can be found in the <a href="http://www.boost.org/tools/index.html" target="_top">Boost
      Tools</a>.
    </p>
<a name="spirit_repository.preface.support"></a><h4>
<a name="id760179"></a>
      <a class="link" href="preface.html#spirit_repository.preface.support">Support</a>
    </h4>
<p>
      Please direct all questions to Spirit's mailing list. You can subscribe to
      the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
      General List</a>. The mailing list has a searchable archive. A search link
      to this archive is provided in <a href="http://spirit.sourceforge.net" target="_top">Spirit</a>'s
      home page. You may also read and post messages to the mailing list through
      <a href="news://news.gmane.org/gmane.comp.spirit.general" target="_top">Spirit General
      NNTP news portal</a> (thanks to <a href="http://www.gmane.org" target="_top">Gmane</a>).
      The news group mirrors the mailing list. Here is a link to the archives: <a href="http://news.gmane.org/gmane.comp.parsers.spirit.general" target="_top">http://news.gmane.org/gmane.comp.parsers.spirit.general</a>.
    </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2010 Joel de Guzman, Hartmut Kaiser<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="qi_components.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
