{"id":35,"date":"2009-10-31T09:23:48","date_gmt":"2009-10-31T16:23:48","guid":{"rendered":"http:\/\/boost-spirit.com\/home\/?page_id=35"},"modified":"2009-11-19T00:00:10","modified_gmt":"2009-11-19T08:00:10","slug":"news-archive","status":"publish","type":"page","link":"http:\/\/boost-spirit.com\/home\/info\/news-archive\/","title":{"rendered":"News Archive"},"content":{"rendered":"<p><span>October 20, 2008.<\/span><\/p>\n<p style=\"color: #663333;\"><span><strong>IMPORTANT!!!<\/strong> <strong>PLEASE READ!!!<\/strong><\/span><\/p>\n<p>Regarding the evil post-skip (see news <strong><span><em>Post-skips (Important for Boost 1.34 and above users<\/em>)<\/span> <\/strong> below), here&#8217;s an <strong>***IMPORTANT UPDATE***<\/strong>: I just found out that g &gt;&gt; eps_p is wrong. eps_p does not do a pre-skip, so the code will do nothing. The correct code is:<\/p>\n<blockquote><p>parse ( str , g &gt;&gt; !end_p , skipper );<\/p><\/blockquote>\n<p><span>October 19, 2008<\/span>.<\/p>\n<p><strong>Phoenix<\/strong><\/p>\n<p>Phoenix has been accepted into Boost!!! There are  15 votes, 11 of which vote for           acceptance and 4 vote for conditional acceptance.<\/p>\n<p><cite>All reviewers stated that the outstanding quality of the library and its documentation fully merit immediate acceptance. There is no direct concern with regard to the library itself. Phoenix V2 is already in the Boost distribution as a Spirit sub-library and has matured for a long time, proving its stability and usability. On the other hand, Phoenix provides functionality already covered by Boost.Bind and Boost.Lambda. It is the general intention to use Phoenix as the development ground for a new unified Boost library in this area. The review discussions revealed quite some details and certain problems which have to be resolved for this merger to happen. Joel has a full list of these details and promised to address all of them before adding Phoenix to the Boost SVN.<\/cite><\/p>\n<blockquote><p>&#8211;Hartmut Kaiser, Review Manager<\/p><\/blockquote>\n<p><span>August 17, 2008<\/span>.<\/p>\n<p><strong>Spirit2 and Boost 1.36.0 <\/strong><\/p>\n<p><a href=\"http:\/\/www.boost.org\/\">Boost 1.36.0<\/a> has been released. Along with it, comes Spirit 1.8.7, integrated with Spirit V2, &#8220;The New Generation&#8221;. Even if the directory structure has changed (the Spirit Classic headers are now moved to the &#8216;$BOOST_ROOT\/boost\/spirit\/home\/classic&#8217; directory), we created forwarding headers allowing to compile existing applications without any change. These forwarding headers are deprecated, though, which will result in corresponding warnings generated for each of the headers. The forwarding headers are expected to be removed in the future. The recommended way of using Spirit Classic is now to include header files from the directory &#8216;$BOOST_ROOT\/boost\/spirit\/include&#8217;. All files of Spirit Classic have now a &#8216;classic_&#8217; prefixed to their name. For example the include<\/p>\n<p>#include &lt;boost\/spirit\/core\/core.hpp&gt;<\/p>\n<p>now should be written as:<\/p>\n<p>#include &lt;boost\/spirit\/include\/classic_core.hpp&gt;<\/p>\n<p>To avoid namespace conflicts with the new Spirit V2 library we moved Spirit Classic into the namespace boost::spirit::classic . This change will be automatically\u00a0deactivated whenever the deprecated include files are being used. This ensures full backwards compatibility for existing applications. For more details about this change please consult the documentation.<\/p>\n<p><strong>Spirit2 is in beta. <\/strong><em>For the adventurous only<\/em>. The interface is stable (and has been for almost 2 years now). The documentation is still sparse, but there are tons of examples in there. Also, don&#8217;t complain about compile times. We haven&#8217;t optimized on compile times yet. There&#8217;s lots of room for improvement in that area still.<\/p>\n<p><span>April 18, 2008<\/span>.<\/p>\n<p><strong>Spirit2 development<\/strong><\/p>\n<p>FYI, Spirit2 development has been moved to <a href=\"https:\/\/svn.boost.org\/svn\/boost\/trunk\/boost\">Boost SVN trunk<\/a>. We successfully merged with Spirit 1.8.x which is called &#8220;classic&#8221; Spirit now. Users of &#8220;classic&#8221; Spirit should not have to do anything; it&#8217;s fully backward compatible. However, there are changes in the include structure to accommodate different versions under one spirit directory at the same time. While the old includes will still work, they are deprecated with a warning message:<\/p>\n<blockquote><p>&#8220;This header is deprecated. Please use: xxx.hpp&#8221;<\/p><\/blockquote>\n<p>The new include scheme is easy to use. We have an &#8220;include&#8221; directory where we place all forwarding headers to the actual files. For classic spirit, the files are prepended with &#8220;classic_&#8221;. For example, what used to be:<\/p>\n<blockquote><p>&#8220;boost\/spirit\/core\/parser.hpp&#8221;<\/p><\/blockquote>\n<p>is now:<\/p>\n<blockquote><p>&#8220;boost\/spirit\/include\/classic_parser.hpp&#8221;<\/p><\/blockquote>\n<p><span>November 28, 2007<\/span>.<\/p>\n<p><strong>Post-skips (Important for Boost 1.34 and above users) <\/strong><\/p>\n<p><strong>IMPORTANT!!!<\/strong> <strong>PLEASE READ!!!<\/strong><\/p>\n<p>In boost 1.34, if there is a trailing white space characters in an input sequence, parse returns with info.full set to false, even though parsing was (essentially) full. The skip parser is ignored for the last sequence. In 1.33 parsing succeeds as expected.<\/p>\n<p>The change in behavior was intentional. It was made on the grounds of consistency (parsers shouldn&#8217;t consume any more output than what they have matched), as well as to avoid a hang when directly parsing stdin: namely, parse() would hang waiting for a non-whitespace character at the end of a match.<\/p>\n<p>You may workaround this change by adding eps_p or end_p after your grammar, as in:<\/p>\n<blockquote><p>my_grammar g ;<br \/>\nmy_skipper skipper ;<br \/>\nparse ( str , g &gt;&gt; eps_p , skipper ); \/\/ 1<br \/>\nparse ( str , g &gt;&gt; end_p , skipper ); \/\/ 2<\/p><\/blockquote>\n<p>The 2nd option requires a full match, while the first one gets you the previous behaviour without making a full match obligatory.<\/p>\n<p>Here&#8217;s where the change was first announced, for context:<\/p>\n<p><a href=\"http:\/\/thread.gmane.org\/gmane.comp.parsers.spirit.general\/9839\">http:\/\/thread.gmane.org\/gmane.comp.parsers.spirit.general\/9839<\/a><\/p>\n<p><strong>***IMPORTANT UPDATE***<\/strong>: I just found out that g &gt;&gt; eps_p is wrong. eps_p does not do a pre-skip, so the code will do nothing. The correct code is:<\/p>\n<blockquote><p>parse ( str , g &gt;&gt; !end_p , skipper );<\/p><\/blockquote>\n<p><span>September 02, 2007<\/span>.<\/p>\n<p><strong>Spirit 1.8.5 and 1.6.4 released<\/strong><\/p>\n<p>It is my pleasure to announce the release of Spirit 1.8.5 and 1.6.4 .<\/p>\n<p>Spirit 1.8.5 is a standalone variant of the version that is included in Boost 1.34.1; it doesn&#8217;t provide new features, but contains all the fixes that were applied since Spirit 1.8.4 . <a href=\"http:\/\/sourceforge.net\/project\/showfiles.php?group_id=28447&amp;package_id=20317&amp;release_id=536340\">You can download Spirit 1.8.5 here<\/a>.<\/p>\n<p>Spirit 1.6.4 is the latest in a series of releases that are based on an earlier implementation that is friendlier towards older, less standard compliant compilers. This is a bug fix only release and is likely to be the final 1.6.x version. <a href=\"http:\/\/sourceforge.net\/project\/showfiles.php?group_id=28447&amp;package_id=20317&amp;release_id=536348\">Spirit 1.6.4 is available here<\/a>.<\/p>\n<p>Both Spirit 1.8.5 and 1.6.4 are available in the following variants:<\/p>\n<ul>\n<li>Library only (the spirit-1.x.y.zip \/ spirit-1.x.y.tar.gz files) &#8211; These contain only Spirit itself and require an existing Boost installation. Both were tested only with Boost 1.34.0 and 1.34.1, but should work with other reasonably recent releases.<\/li>\n<li>Miniboost (the spirit-1.x.y-miniboost.zip \/ spirit-1.x.y-miniboost.tar.gz files) &#8211; These contain also the minimal subset of Boost that is needed to use Spirit. This is a new version of the Miniboost that is based on Boost 1.34.1 and has the same directory structure as Boost itself.<\/li>\n<\/ul>\n<p>Enjoy!<\/p>\n<p><em>&#8212; Nicola Musatti <\/em><\/p>\n<p><span>April 05, 2007<\/span>.<\/p>\n<p><strong>BoostCon &#8217;07<\/strong><\/p>\n<p><img loading=\"lazy\" src=\"..\/..\/theme\/colorado_bells_sept22_2.jpg\" alt=\"\" width=\"267\" height=\"200\" align=\"right\" \/>Have you heard? <a href=\"http:\/\/www.boost.org\/\">Boost<\/a> will be having its inaugural conference. It will be in Aspen, Colorado, May 14-18 2007. Spirit2 will debut at the Boost conference. It will be a complete parsing and output generation system that attempts to cover the whole spectrum from lexing to output generation.<\/p>\n<p>Spirit2 will be ready before the Boost conference where Hartmut and I will give a talk titled <em>&#8220;A cookbook approach to parsing and output generation with Spirit2&#8221;<\/em>. Dan Marsden and I will also have a talk on <a href=\"..\/..\/dl_more\/fusion_v2\/libs\/fusion\/doc\/html\/index.html\">Boost.Fusion<\/a>. Oh yeah, Eric Niebler will also give a talk on Text processing with Boost in general, and the much anticipated Proto library with which Spirit2 is built on.<\/p>\n<p>I invite you all to come:<\/p>\n<blockquote><p><a href=\"http:\/\/www.boostcon.com\/home\">BoostCon &#8217;07 <\/a><\/p><\/blockquote>\n<p><a href=\"http:\/\/www.boostcon.com\/program\/sessions\">See the sessions here<\/a>. You&#8217;ll see people like Kevlin Henney, Scott Meyers, Sean Parent (Adobe ASL), Dave Abrahams, etc &#8212; all these amazing people. It will be an amazing event &#8212; the first ever Boost Conference! Register now to secure your place at BoostCon 2007. Space is limited.<\/p>\n<p>It will be fun to meet up with &#8220;Spiritistas&#8221; \ud83d\ude42 as one of the pioneers, JCAB, puts it. Let&#8217;s have lods of fun and lotsa pizzas! And of course, not to forget beer!<\/p>\n<p><strong>Spirit 1.8.4 Released<\/strong><\/p>\n<p><span>October 29, 2006<\/span>.<\/p>\n<p>We just released Spirit v1.8.4. The files are available here:<\/p>\n<blockquote><p><a href=\"https:\/\/sourceforge.net\/project\/showfiles.php?group_id=28447&amp;release_id=459393\">https:\/\/sourceforge.net\/project\/showfiles.php?group_id=28447&amp;release_id=459393<\/a><\/p><\/blockquote>\n<p>This is mainly a bugfix release.<\/p>\n<p><strong>Spirit 1.8.4 Release candidate + Roadmap<\/strong><\/p>\n<p><span>October 1, 2006<\/span>.<\/p>\n<p>Spirit 1.8.4 will be released in the next few days. You can get a beta snapshot here:<\/p>\n<blockquote><p><a href=\"..\/..\/dl_more\/spirit-1.8.4.beta1.zip\">http:\/\/boost-spirit.com\/dl_more\/spirit-1.8.4.beta1.zip<br \/>\n<\/a><a href=\"..\/..\/dl_more\/spirit-1.8.4.beta1.tar.gz\">http:\/\/boost-spirit.com\/dl_more\/spirit-1.8.4.beta1.tar.gz <\/a><\/p><\/blockquote>\n<p>These betas are provided to make sure that all is ok. We appreciate feedback and reporting of problems encountered. We&#8217;d like to make sure that the packages are in perfect shape before we do the final release.<\/p>\n<p>Roadmap:<\/p>\n<ul>\n<li>Spirit 1.8.4 release<\/li>\n<li>Soon after the release of Spirit 1.8.4, Spirit 1.8.5 will follow. Spirit 1.8.5 is the bridge to Spirit-2. Spirit 1.8.5 integrates Fusion2 and Phoenix2. It is already in the final stages of development. Spirit 1.8.5 is not 100% backward compatible to Spirit 1.8.4. We shall provide some documents to make the transition as smooth as possible. The difference is minimal. Hopefully, 1.8.5 (and subsequent releases) will ease the transition to 2.0.<\/li>\n<li>Development of Spirit-2 shall proceed parallel to Spirit 1.8.5++.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/lists.sourceforge.net\/lists\/listinfo\/spirit-general\">We welcome comments and feedback.<\/a><\/p>\n<h3>Fusion<\/h3>\n<p><span>September 16, 2006<\/span>. <a href=\"..\/..\/dl_more\/fusion_v2\/libs\/fusion\/doc\/html\/index.html\">Fusion2<\/a> was recently accepted into Boost. See this <a href=\"http:\/\/lists.boost.org\/boost-announce\/2006\/06\/0094.php\">link<\/a>.<\/p>\n<p>It&#8217;s been a year. Most of the time was spent on infrastructure development for the planned Spirit2 development. This includes <a href=\"..\/..\/dl_docs\/phoenix-2\/libs\/spirit\/phoenix\/doc\/html\/index.html\">Phoenix2<\/a> and Fusion2 plus a documentation tool called <a href=\"http:\/\/www.boost.org\/tools\/quickbook\/doc\/html\/index.html\">Quickbook<\/a>. These are major developments. Fusion2 will be the core infrastructure on which Spirit2 will be built. Phoenix2 is already built on top of Fusion2.<\/p>\n<p>What is it? Fusion is a library for working with heterogenous collections of data, commonly referred to as tuples. Collectively the containers and views are referred to as sequences, and Fusion has a suite of algorithms that operate upon the various sequence types, using an iterator concept that binds everything together.<\/p>\n<p>Special thanks to Ronald Garcia, and the review manager and to all the people in the boost community who participated in the review: Andreas Pokorny, Andreas Huber, Jeff Flinn, David Abrahams, Pedro Lamarao, Larry Evans, Ryan Gallagher, Andy Little, Gennadiy Rozental, Tobias Schwinger, Joao Abecasis, Eric Niebler, Oleg Abrosimov, Gary Powell, Eric Friedman, Darren Cook, Martin Bonner and Douglas Gregor.<\/p>\n<h3>New Web Page<\/h3>\n<p><span>August 26, 2005<\/span>. What you are looking at now is a completely redesigned web page. Now that <a href=\"http:\/\/www.boost.org\/\">Boost<\/a> has a brand new web page design, so should Spirit.<\/p>\n<h3>Spirit 1.8.3 and Spirit 1.6.3 Released<\/h3>\n<p><span>August 20, 2005<\/span>. Spirit 1.8.3 and 1.6.3 released. You can <a href=\"..\/..\/download.html\">download the files here<\/a> and <a href=\"..\/..\/distrib\/change_log.html\">view the change log here<\/a>.  As far as 1.8.3 is concerned, this release contains exactly the same files as the Boost 1.33.0 release.<\/p>\n<h3>Boost 1.33.0<\/h3>\n<p><span>August 11, 2005<\/span>. Boost 1.33.0 has been released. See <a href=\"http:\/\/www.boost.org\/\">Boost&#8217;s Site. <\/a>Boost 1.33.0 includes <a href=\"http:\/\/www.boost.org\/libs\/spirit\/index.html\">Spirit 1.8.3<\/a>. Go get it. As usual, a stand-alone Spirit package with a Mini-Boost 1.33 (just enough to get Spirit going) will be released here.<\/p>\n<h3>Boost.Wave<\/h3>\n<p><span>February 23, 2005<\/span>. Wave has been accepted into Boost!<\/p>\n<p>With special thanks to Tom Brinkman, who volunteered to be the review manager.<\/p>\n<p>With thanks to:<\/p>\n<blockquote><p>David Abrahams, Beman Dewes, Reece Dunn, Larry Evans, Doug Gregor, Joel de Guzman, Baptiste Lepilleur, Andy Little, Paul Mensonides, Dan Nuffer, Andreas Pokorny, Vladimir Prus, Gennadiy Rozental, Michiel Salters, Jonathan Turkanis, Chris Uzdavinis, Pavel Vozenilek, Michael Walter.<\/p><\/blockquote>\n<p>for bug reports, fixes and hints during the review process.<\/p>\n<h3>Spirit 1.8.2 and Spirit 1.6.2 Released<\/h3>\n<p><span>December 9, 2004<\/span>. You can <a href=\"..\/..\/index.php?doc=download\/index.html\">get it here <\/a>. What&#8217;s new? You can <a href=\"..\/..\/distrib\/change_log.html\">view the change log here <\/a>.<\/p>\n<h3>Boost 1.32.0<\/h3>\n<p><span>November 21, 2004<\/span>. Ok, Boost 1.32 has been released. See <a href=\"http:\/\/www.boost.org\/\">Boost&#8217;s Site <\/a>. Along with it is <a href=\"http:\/\/www.boost.org\/libs\/spirit\/index.html\">Spirit 1.8.1 <\/a>. Go get it. Right now, we are preparing a stand-alone Spirit package with a Mini-Boost 1.32 (just enough to get Spirit going) for release here. Almost there&#8230;.<\/p>\n<h3>Spirit 1.8.1<\/h3>\n<p><span>August 1, 2004<\/span>. Watch this space. Spirit 1.8.1 will soon be released coinciding with the latest Boost 1.32. Coming very soon &#8230;<\/p>\n<h3>Spirit Repository Available<\/h3>\n<p><span>February 9, 2004<\/span>. See the &#8220;Repository&#8221; link at the left. <a href=\"..\/..\/repository\/applications\/show_contents.php\"> Check it out <\/a> This page lists some full applications that uses the Spirit parser framework. To those who wish to contribute stuff to the repository, please send an email to: joel-at-boost-consulting-dot-com. You can send me a zip file, a cpp file, or even a simple link to your application. Please also send some info regarding the submission (author, overview). <strong>Thanks! <\/strong><\/p>\n<h3>Boost 1.31.0 Released<\/h3>\n<p><span>February 9, 2004<\/span>. Boost 1.31.0 has been released <em>(at last) <\/em>. <strong>Spirit v1.8.0 <\/strong>is part of the release. See the <a href=\"http:\/\/www.boost.org\/\"> Boost&#8217;s home page <\/a> for latest news about what&#8217;s in the release.<br \/>\nWhat&#8217;s new with Spirit 1.8.0:<\/p>\n<ul>\n<li>Multiple grammar start rules<\/li>\n<li>Multiple Scanner rules (no more scanner business woes)<\/li>\n<li>More dynamic parsers<\/li>\n<li>Predefined actors<\/li>\n<li>Numerous bug fixes and QOI stuff<\/li>\n<li><em>&#8230;and more&#8230; <\/em><\/li>\n<\/ul>\n<p>So go right <a href=\"http:\/\/sourceforge.net\/project\/showfiles.php?group_id=7586\">here <\/a> to download.<\/p>\n<h3>Wave 1.0.0 released<\/h3>\n<p><span>January 6, 2004<\/span>. The new           V1.0.0 of the <strong>Wave<\/strong> library is           released.<\/p>\n<p>This is the first release of this library, which is           considered stable. The main changes from the previous           version are bug fixes (and a lot of them). But there were           some minor functionality additions too:<\/p>\n<ul>\n<li>Added support for #pragma once.<\/li>\n<li>Added support for #pragma wave timer() and the             &#8211;timer command line switch, which allows for rough             timings during preprocessing.<\/li>\n<li>Added a generic interface, which allows to add             custom #pragma directives easily.<\/li>\n<li>Included a finite state machine, which supresses             not needed whitespace. This makes the generated output             much more dense.<\/li>\n<li>Added an optional IDL mode, which besides not             recognizing C++ specific tokens doesn&#8217;t recognise any             keywords (except true and false), but only             identifiers.<\/li>\n<li>Incorporated a couple of changes, which improve the             overall performance.<\/li>\n<li>Switched licensing to use the Boost Software             License, Version 1.0.<\/li>\n<\/ul>\n<p>The Wave preprocessor library has shown to be very           stable and Standards conformant now. It is able to           compile the strict pp-lib (Chaos by Paul Mensonides) and           the Order library recently published by Vesa Karvonen and           was tested to correctly preprocess different system           headers of different compilers.<\/p>\n<p>Besides Wave there is currently only one preprocessor,           which is able to compile both mentioned libraries (Chaos           and Order): gcc.<\/p>\n<p>To successfully build <strong>Wave<\/strong> you will           still need to install at least the Boost 1.30.2 release (           <a href=\"http:\/\/www.boost.org\/\">download here<\/a> ) and           the program_options library from Vladimir Prus ( <a href=\"http:\/\/boost-sandbox.sourceforge.net\/program_options\">download           here<\/a> ).<\/p>\n<h3>Merry Christmas and a Happy New Year !!!<\/h3>\n<p>December 23, 2003.<\/p>\n<h3>Spirit in C#&#8230; Spart<\/h3>\n<p><span>December 18, 2003<\/span>. Jonathan           de Halleux has been playing a lot with C# lately so he           wondered if it was possible to port (partially) spirit to           C#&#8230; and the answer is yes! The result is called Spart           and maps as much as possible the Spirit ideas. Of course,           there are a lot of things remaining to do, but he managed           to implement the famous calculator grammar, so he&#8217;s           optimistic.<\/p>\n<p>There were a number of limitations that he had to tackle           but the results look statisfying. The main limitation is           that C# has no templates (until C# 2.0 is out). This is a           big problem when you think spirit is based on TMP           (template metaprogramming). He got rid of templates by           using abstract classes and interfaces. Another limitation           is that C# has a strict policy for defining operators, so           a lot of operators simply cannot be overloaded! For those           interrested to see the result, you can check his article           on http:\/\/www.codeproject.com\/useritems\/spart.asp or           download Spart from http:\/\/www.dotnetwiki.org.<\/p>\n<h3>Release of 1.8.0<\/h3>\n<p><strong>Hi Y&#8217;all,<\/strong><\/p>\n<p><span>November 5, 2003<\/span>. We are           nearing the release of 1.8.0 stable. This will coincide           with the boost 1.31 release due probably by early           December. The pre-release code is branched in           RELEASE_1_8_0 in the CVS. The library is in very good           shape and is a candidate for release. I would like to get           some initial feedback. Most importantly:<\/p>\n<p>Historically, Spirit supported a lot of compilers,           including (to some extent) poorly conforming compilers           such as VC6. Spirit v1.6.x will be the last release that           will support older poorly conforming compilers. Starting           from Spirit v1.8.0, ill conforming compilers will not be           supported. If you are still using one of these older           compilers, you can still use Spirit v1.6.x.<\/p>\n<p>The reason why Spirit v1.6.x worked on old non-conforming           compilers is that the authors laboriously took the           trouble of searching for workarounds to make these           compilers happy. The process takes a lot of time and           energy, especially when one encounters the dreaded ICE or           &#8220;Internal Compiler Error&#8221;. Sometimes searching for a           single workaround takes days or even weeks. Sometimes,           there are no known workarounds. This stifles progress a           lot. And, as the library gets more progressive and takes           on more advanced C++ techniques, the difficulty is           escalated to even new heights.<\/p>\n<p>Spirit v1.6.x will still be supported. Maintenance and           bug fixes will still be applied. There will still be           active development for the back-porting of new features           introduced in Spirit v1.8.0 (and Spirit 1.9.0) to lesser           able compilers; hopefully, fueled by contributions from           the community <strong>(VC++ and Borland experts, we need           your help!)<\/strong> . For instance, there is already a           working AST tree back-port for VC6 and VC7 by Peder           Holt.<\/p>\n<p>Please post feedback to:<br \/>\nSpirit-general mailing list<br \/>\nSpirit-general@lists.sourceforge.net<br \/>\nhttps:\/\/lists.sourceforge.net\/lists\/listinfo\/spirit-general<\/p>\n<h3>CUJ article<\/h3>\n<p><span>September 1, 2003<\/span>.<\/p>\n<p><strong>HI!<\/strong><\/p>\n<p>If you got here from reading the <a href=\"http:\/\/www.cuj.com\/\">CUJ<\/a> September 2003 article &#8220;The           Spirit Parser Library: Inline Parsing in C++&#8221;, well&#8230;           things have changed quite a bit since the article was           written. If you want to try out some of the code from the           article, it is best to either use <a href=\"http:\/\/sourceforge.net\/project\/showfiles.php?group_id=28447&amp;release_id=90505\"> version 1.2<\/a> or download a special CUJ version           <a href=\"ftp:\/\/ftp.cuj.com\/pub\/2003\/2109\/nuffer.zip\">following           this link<\/a> .<\/p>\n<p>Later on, if you want to try out the latest version           (1.6.1), feel free to get it here. If you do, I invite           you to read the docs first to get a feel of what&#8217;s new           and what&#8217;s been changed. It&#8217;s always nice to start here:           <a href=\"..\/..\/distrib\/spirit_1_6_1\/libs\/spirit\/doc\/quick_start.html\"> Quick Start<\/a> .<\/p>\n<h3>Spirit v1.7.0 and v1.6.1 Released!<\/h3>\n<p><span>July 13, 2003<\/span>.<\/p>\n<p>Get it here:<br \/>\n<a href=\"http:\/\/sourceforge.net\/project\/showfiles.php?group_id=28447&amp;release_id=170696\"> Spirit v1.7.0<\/a><br \/>\n<a href=\"http:\/\/sourceforge.net\/project\/showfiles.php?group_id=28447&amp;release_id=170622\"> Spirit v1.6.1<\/a><\/p>\n<p>Take note that by convention, odd minor version releases           (e.g. 1.7.0) are developmental while even minor version           releases (e.g. 1.6.1) are stable.<\/p>\n<p>See <a href=\"..\/..\/distrib\/change_log.html\">What&#8217;s           new.<\/a><\/p>\n<h3>Wave 0.9.3 released<\/h3>\n<p><span>May 15, 2003<\/span>. The new V0.9.3           of the <strong>Wave<\/strong> library is released.<\/p>\n<p>During the last couple of weeks in the           <strong>Wave<\/strong> preprocessor were implemented           several C++ preprocessor extensions to the current           Standard, as recently proposed on the <a href=\"http:\/\/lists.boost.org\/mailman\/listinfo.cgi\/boost\">Boost           list<\/a> . This was done to support the preparation of a           Standards proposal, which is currently under way.<\/p>\n<p>Concretely this paper will propose to:<\/p>\n<ul>\n<li>add variadics and placemarkers to C++ as             standardized in the C99 language<\/li>\n<li>add macro scopes as proposed by Paul Mensonides             (slightly changed after heavy discussions with Paul             Mensonides)<\/li>\n<li>add well defined token-pasting of unrelated tokens             as proposed by Paul Mensonides<\/li>\n<li>the __comma__, __lparen__ and __rparen__             alternative tokens as proposed by Vesa Karvonen<\/li>\n<\/ul>\n<p>These proposals are now implemented in           <strong>Wave<\/strong> (for details see the <a href=\"..\/..\/index.php?doc=docs\/wave_v0_9\/preliminary_cpp0x_support.html\"> documentation<\/a> ). Additionally there were several bug           fixes and minor changes and additions, which are           documented in the Changelog file contained in the           distribution.<\/p>\n<p>To successfully build <strong>Wave<\/strong> you will           still need to install the Boost 1.30.0 release ( <a href=\"http:\/\/www.boost.org\/\">download here<\/a> ) and the           program_options library from Vladimir Prus ( <a href=\"http:\/\/boost-sandbox.sourceforge.net\/program_options\">download           here<\/a> ).<\/p>\n<h3>News flash! Wave got a tracing facility<\/h3>\n<p><span>April 7, 2003<\/span>. If you ever           had the need to debug a macro expansion you had to           discover, that your tools provide only little or no           support for this task. For this reason the           <strong>Wave<\/strong> C++ preprocessor library got a           unique tracing facility, which allows to get selectively           some information from the expansion of a certain           macro.<\/p>\n<p>The tracing facility is plugged into the library           through a policy, which allows for its easy           customization. The <strong>Wave<\/strong> command line           driver utilizes this new feature to generate a complete           log containing information about every stage of the           expansion of a macro under inspection, which allows to           easily analyze foreign code or to debug your own           problematic macros.<\/p>\n<p>As always, the <strong>Wave<\/strong> library may be           downloaded <a href=\"..\/..\/index.php?doc=download\/Wave_0_9.html\"> here<\/a>.<\/p>\n<h3>Wave 0.9.1 released<\/h3>\n<p><span>March 25, 2003<\/span>. A new           version of the <strong><em>Wave<\/em><\/strong> library is           available. You can download it <a href=\"http:\/\/sourceforge.net\/projects\/spirit\/\">here<\/a> .<\/p>\n<p>The highlights:<\/p>\n<ul>\n<li>Full compliance with the C++ Standard reached and             verified with the help of a &#8216;strict&#8217; version of the             Boost.Preprocessor library of Paul Mensonides, which             couldn&#8217;t be used even with EDG based compilers             (Comeau\/Intel).<\/li>\n<li>Implemented variadics (macros with variable             parameter count) and placemarkers (empty macro             arguments) usable as an optional extension to the C++             Standard<\/li>\n<li>Implemented a C99 mode, which has variadics and             placemarkers enabled by default (as mandated by the C99             Standard and which additionally rejects certain C++             tokens (the alternative keywords as &#8216;and&#8217;, &#8216;or&#8217; etc.             and the &#8216;::&#8217;, &#8216;-&gt;*&#8217;, &#8216;.*&#8217; operators), which are             invalid for C99<\/li>\n<li>Updated the <a href=\"..\/..\/index.php?doc=docs\/wave_v0_9\/index.html\"> documentation<\/a><\/li>\n<li>Major speedup (this depends on the complexity of             the compiled code and may reach upto 3-5 times if             compared to the Wave V0.9.0 code)<\/li>\n<li>The interface of the library has settled, there             were fixed a lot of minor and major bugs<\/li>\n<li>Added Jamfile.v2 to allow a convenient build             process for <a href=\"http:\/\/gcc.gnu.org\/\">gcc<\/a> based             environments<\/li>\n<\/ul>\n<p>To successfully build <strong><em>Wave<\/em><\/strong> you will need to install the Boost 1.30.0 release (           <a href=\"http:\/\/www.boost.org\/\">download here<\/a> ) and           the program_options library from Vladimir Prus ( <a href=\"http:\/\/boost-sandbox.sourceforge.net\/program_options\">download           here<\/a> ).<\/p>\n<h3>Spirit v1.6.0 Released<\/h3>\n<p><span>March 21, 2003<\/span>. Download it           from <a href=\"..\/..\/index.php?doc=download\/v1_6.html\"> here<\/a><\/p>\n<h3>Boost 1.30.0<\/h3>\n<p><span>March 20, 2003<\/span>. <a href=\"http:\/\/www.boost.org\/\">Boost<\/a> version 1.30.0 has been           released. The highlights include Spirit v1.6.0 (the           latest stable release) and MPL (Template metaprogramming           framework of compile-time algorithms, sequences and           metafunction classes, from Aleksey Gurtovoy). Spirit           v1.6.0 has started using MPL, an awesome libary very well           suited for template metaprogramming libraries such as           Spirit<\/p>\n<p>Spirit v1.6.0 (stable) and Spirit v1.7.0 (developmental)           will also be released here, as usual, with a miniboost           package that includes only the minimal subset of boost           needed to compile Spirit.<\/p>\n<h3>Spirit v1.6 and v1.7<\/h3>\n<p><span>March 12, 2003<\/span>. Watch this           space&#8230; Spirit v1.6 will very soon be released. This           <strong>IS<\/strong> the official Boost release version           that comes bundled with the upcoming Boost 1.30.0           release. It has been a while since we released a stable           version. This <strong>IS<\/strong> it.<\/p>\n<p>Spirit v1.7 (developmental version) will also be           released. All new experimental features will be developed           on v1.7 (only for the adventurous among us :-).<\/p>\n<h3>Wave! What a rave!<\/h3>\n<p><span>March 12, 2003<\/span>. If you want           the <strong>BEST<\/strong> C++ preprocessor in town, get           Wave! In terms of conformance to the standard, nothing           beats Wave. 100% certified by none other than Paul           Mensonides, the Boost.Preprocessor meister. This Spirit           application totally <strong>ROCKS!<\/strong><\/p>\n<h3>Wave 0.9.0 released<\/h3>\n<p><span>March 8, 2003<\/span>. The           <strong><em>Wave<\/em><\/strong> library is a C++ Standard           conformant preprocessing C++ lexer, which exposes a           [forward] iterator interface that iterates over the           preprocessed C++ tokens. It is built with the help of the           <strong><em>Spirit<\/em><\/strong> library.<\/p>\n<p>A sample driver is included which fully utilizes the           capabilities of the library and provides the           functionality of a full blown text stream &#8211;&gt; text           stream C++ preprocessor.<\/p>\n<p>You can download <strong><em>Wave<\/em><\/strong> <a href=\"http:\/\/sourceforge.net\/projects\/spirit\/\">here<\/a><\/p>\n<p>The main goals of this project are:<br \/>\n&#8211; full conformance to the C++ standard (INCITS\/ISO\/IEC           14882\/1998)<br \/>\n&#8211; usage of <strong><em>Spirit<\/em><\/strong> for the           parsing parts of the game (certainly \ud83d\ude42<br \/>\n&#8211; maximal usage of STL and\/or Boost libraries (for           compactness and maintainability)<br \/>\n&#8211; straightforward extendability for the implementation of           additional features (e.g. variadics and           placemarkers)<br \/>\n&#8211; building a flexible library for different C++ lexing           and preprocessing needs.<\/p>\n<p>To successfully build <strong><em>Wave<\/em><\/strong> you will need to install the Boost 1.30.0 release (           <a href=\"http:\/\/www.boost.org\/\">download here<\/a> ) and           the program_options library from Vladimir Prus ( <a href=\"http:\/\/boost-sandbox.sourceforge.net\/program_options\">download           here<\/a> ).<\/p>\n<h3>Boost Spirit<\/h3>\n<p><span>October 26, 2002<\/span>.           <strong><em>Boost Spirit<\/em><\/strong> Oh, what a           name&#8230;<br \/>\nSpirit has now been accepted into boost!<\/p>\n<p>Thanks to all who participated in the review:<br \/>\nJohn Maddock, our review manager<br \/>\nAleksey Gurtovoy<br \/>\nAndre Hentz<br \/>\nBeman Dawes<br \/>\nCarl Daniel<br \/>\nChristopher Currie<br \/>\nDan Gohman<br \/>\nDan Nuffer<br \/>\nDaryle Walker<br \/>\nDavid Abrahams<br \/>\nDavid B. Held<br \/>\nDirk Gerrits<br \/>\nDouglas Gregor<br \/>\nHartmut Kaiser<br \/>\nIain K.Hanson<br \/>\nJuan Carlos Arevalo-Baeza<br \/>\nLarry Evans<br \/>\nMartin Wille<br \/>\nMattias Flodin<br \/>\nNoah Stein<br \/>\nNuno Lucas<br \/>\nPeter Dimov<br \/>\nPeter Simons<br \/>\nPetr Kocmid<br \/>\nRoss Smith<br \/>\nScott Kirkwood<br \/>\nSteve Cleary<br \/>\nThorsten Ottosen<br \/>\nTom Wenisch<br \/>\nVladimir Prus<\/p>\n<h3>Spirit v1.5.1 released<\/h3>\n<p><span>October 10, 2002<\/span>.<\/p>\n<p>Download it from <a href=\"..\/..\/index.php?doc=download\/v1_5.html\"> here<\/a><br \/>\nChanges from 1.5.0:<br \/>\nAdded &#8211;enable-spirit-threadsafe and &#8211;with-boost=           configure script options.<br \/>\nUse BOOST_STATIC_CONSTANT in Phoenix to increase           portability.<br \/>\nRearranged Spirit debug code so it would always work           regardless of include order.<br \/>\nAdded new group_d directive.<br \/>\nAdded capability for subrules to have contexts.<br \/>\nAdded DEBUG support for subrules.<br \/>\nFixed compile problems with SPIRIT_THREADSAFE.<br \/>\nFixed symbols add() free function.<br \/>\nAdjustments to refactoring parser.<br \/>\nFix ast_xml.cpp example.<br \/>\nAdded tests for object_with_id class.<br \/>\nAdded phoenix_subrule_calc.cpp example.<br \/>\nAdded grouping_calc.cpp example.<\/p>\n<h3>Spirit v1.5.0 released<\/h3>\n<p><span>October 5, 2002<\/span>. It&#8217;s           official! Get it from the download page: <a href=\"..\/..\/index.php?doc=download\/v1_5.html\"> here<\/a><\/p>\n<h3>Spirit v1.5.0<\/h3>\n<p><span>August 28, 2002<\/span>. Watch this           space. Spirit v1.5.0 will soon be released. Coming soon           to a compiler near you \ud83d\ude42 Where is v1.4? Spirit v1.3 has           been merged with Spirit-X and the result is v1.5. There           will be a minor version skip.<\/p>\n<h3>Spirit 1.2.9 released<\/h3>\n<p><span>May 20, 2002<\/span>. This release           fixes the following bugs:<br \/>\nmulti_pass.hpp: Added some missing typename           keywords.<br \/>\nexceptions.ipp: Added some missing inline to fix multiple           symbol definition linker errors when using spirit in more           than one translation unit.<br \/>\nloops.ipp: in finite_loop::parse() changed assert(n1 &lt;           n2); to assert(n1 &lt;= n2);<\/p>\n<p>This release has been tested with <a href=\"http:\/\/gcc.gnu.org\/\">gcc<\/a> 3.1<\/p>\n<h3>Spirit-X<\/h3>\n<p><span>May 10, 2002<\/span>. Here&#8217;s the           semi-final candidate for Spirit-X. This will be the basis           of a formal submission to <a href=\"http:\/\/www.boost.org\/\">boost<\/a> . Still, this is an           experimental version. This is not an official release. As           yet, it does not have all the bells and whistles of           v1.3.2. However, it has some new concepts and features           that were not available before. For instance Spirit-X has           subrules which are efficient versions of the rule.           Subrules allow us to write one-expression grammars. Yes,           subrules push the limit of C++ much further. Also, the           scanner is now policy based. This allows extreme           flexibility and ease of extension over the full parsing           process.<\/p>\n<p>You can get it here: <a href=\"http:\/\/spirit.sf.net\/dl_more\/spirit-x.zip\">spirit-x.zip<\/a> .<\/p>\n<p>***This is not an official release*** but feedback is           most appreciated.<\/p>\n<p>Tested on:.<br \/>\n1) <a href=\"http:\/\/gcc.gnu.org\/\">g++<\/a> 2.95.2<br \/>\n2) <a href=\"http:\/\/gcc.gnu.org\/\">g++<\/a> 3.0.4<br \/>\n3) <a href=\"http:\/\/gcc.gnu.org\/\">g++<\/a> 3.1<br \/>\n4) <a href=\"http:\/\/www.borland.com\/\">Borland<\/a> 5.5.1<br \/>\n5) <a href=\"http:\/\/www.comeaucomputing.com\/\">Comeau<\/a> 4.2.45<br \/>\n6) <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">Microsoft           VC++<\/a> 6<br \/>\n7) <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">Microsoft           VC++<\/a> 7<br \/>\n8) <a href=\"http:\/\/www.intel.com\/\">Intel<\/a> 5.0<br \/>\n9) <a href=\"http:\/\/www.intel.com\/\">Intel<\/a> 6.0<\/p>\n<h3>Virtual Machine (VM) alpha released<\/h3>\n<p><span>April 15, 2002<\/span>. First alpha           release of the virtual machine released. It can be           downloaded at: <a href=\"..\/..\/dl_more\/spirit_vm.zip\">http:\/\/boost-spirit.com\/dl_more\/spirit_vm.zip<\/a> Included are a number of regression tests, and a           spirit\/VM implementation of Stella Finite Difference           Equations used in systems modeling.<\/p>\n<h3>Bugfix Release: 1.2.8<\/h3>\n<p><span>March 23, 2002<\/span>. This release           fixes a bug in the tst class which caused a possible           false match in the symbol table class. Download the           .tar.gz. <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.2.8.tar.gz\">here<\/a> or the .zip <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.2.8.zip\">here<\/a><\/p>\n<h3>Bugfix Release: 1.2.7<\/h3>\n<p><span>March 15, 2002<\/span>. This release           fixes a rare problem that may cause the scanner to scan           past the end of the input. Download the <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.2.7.tar.gz\">tar.gz<\/a> or the <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.2.7.zip\">zip<\/a><\/p>\n<h3>MSVC Port for 1.3.1<\/h3>\n<p><span>March 11, 2002<\/span>. Thanks to           Ragav Satish! The long awaited port to <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">MSVC<\/a> is           here.<br \/>\nIt has been tested on <a href=\"http:\/\/www.microsoft.com\/\">Microsoft<\/a> <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">Visual C++<\/a> 6.0           sp3.<br \/>\nMost of the features of 1.3.1 are supported with the           exception of tree generation and the 1.3.1 policy based           multi_pass (The older multi_pass is supported           instead)<br \/>\nHere&#8217;s the link: <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.3.1MSVC.zip\">spirit-1.3.1MSVC.zip<\/a><\/p>\n<h3>1.3.2 Released<\/h3>\n<p><span>March 7, 2002<\/span>. Finally a new           release of the development code! This release contains a           lot of new features since 1.3.1, including the amazing           Phoenix library.<\/p>\n<h3>Bugfix Release: 1.2.6<\/h3>\n<p><span>March 1, 2002<\/span>. Thanks to           Yogesh Ketkar for finding a bug in spirit 1.2.5 \ud83d\ude42<br \/>\n1.2.6 fixes a bug in finite_loop which may happen when           using the .repeat(min, max) construct. Download the           <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.2.5-1.2.6.patch\"> patch<\/a> , the <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.2.6.tar.gz\">.tar.gz<\/a> , or the <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.2.6.zip\">.zip<\/a><\/p>\n<h3>Phoenix framework<\/h3>\n<p><span>February 21, 2002<\/span>. Please           take note that the Phoenix framework is still alpha and           subject to change (v0.9). For the adventurous only           \ud83d\ude42<\/p>\n<h3>New SEs (named Phoenix)<\/h3>\n<p><span>February 19, 2002<\/span>. Joel           Said:<br \/>\nHere&#8217;s a first shot of the SE framework. This version can           be used outside Spirit (e.g. STL algorithms). It is more           or less complete. The only thing that&#8217;s missing are the           control structures (statements) and the lazy_casts. You           can get a glimpse on what&#8217;s new at:<\/p>\n<p><a href=\"..\/..\/dl_more\/Phoenix.zip\">http:\/\/boost-spirit.com\/dl_more\/Phoenix.zip<\/a><\/p>\n<p>I should complete the full sub-framework this week (best           effort, no promises) unless <a href=\"http:\/\/www.borland.com\/\">Borland<\/a> or <a href=\"http:\/\/gcc.gnu.org\/\">G++<\/a> ICEs again (darn! )<\/p>\n<p>There is a test program that demonstrates the features.           The library header files are fully commented with Spirit           style inline documentations before every major class           interface.<\/p>\n<h3>WikiWikiWeb<\/h3>\n<p><span>January 30, 2002<\/span>. We&#8217;ve           added a WikiWikiWeb to the site, this will allow Spirit           users and developers to openly discuss topics and work on           documentation, tutorials and more. Take a look at the           <a href=\"..\/..\/wiki\/index.php\">WikiWikiWeb<\/a> for instructions and to participate.<\/p>\n<h3>Spirit V1.2.5 Released<\/h3>\n<p><span>January 12, 2002<\/span>. This           release fixes a bug where repeat(0) would return a           non-match, when it should return a 0 length match. Thanks           to Nicholas Charles Leippe for reporting the bug.<\/p>\n<p>Download the <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.2.5.tar.gz\">tarball<\/a> or the <a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.2.5.zip\">zip<\/a><\/p>\n<h3>Spirit V1.3.1 Released<\/h3>\n<p><span>December 7, 2001<\/span>. This           release has a TON of cool new features that you&#8217;ve been           waiting for! Here&#8217;s the list:<\/p>\n<ul>\n<li>Added closures which are the enabler behind             inherited\/synthetic attribute processing.<\/li>\n<li>Created attr_rule which supports inherited and             synthetic attributes.<\/li>\n<li>Improved debug output and granularity.<\/li>\n<li>Fixed numeric parsers for <a href=\"http:\/\/gcc.gnu.org\/\">gcc<\/a> 2.95.2.<\/li>\n<li>Added list utility parser.<\/li>\n<li>Reworked multi_pass iterator to be a policy driven             template. Now it supports different policies such as             ref-counted, first owner, checked\/non-checked, infinite             lookahead with a std::deque or fixed size lookahead.             There is now a class called look_ahead that is a             multi_pass with these policies: first owner,             non-checked with a fixed size queue. The template             parameter N specifies the amount of static storage to             use for lookahead. For example usage see the             multi_pass.cpp test case.<\/li>\n<li>Added AST generation via ast_parse methods which             return an ast_match (NOTE: This interface may change in             the future.)<\/li>\n<li>New examples:\n<ul>\n<li>grammar_capsule (how to use grammar class and                 synthetic attributes with closures)<\/li>\n<li>list_parser (shows usage of the new list                 parser)<\/li>\n<li>calc_ast (a simple calculator that uses AST                 generation)<\/li>\n<li>attributed_rules (an RPN calculator that uses                 new attr_rule)<\/li>\n<li>parameters (uses parser parameters and closure                 to process a type declaration. This shows usage of                 both inherited and synthetic attributes)<\/li>\n<li>xml\/ast_xml (shows AST usage. It parses an XML                 document into an AST and then prints the document                 out)<\/li>\n<li>multi_pass (A test case, but it&#8217;s the best                 example so far of how to parameterize                 multi_pass.)<\/li>\n<\/ul>\n<\/li>\n<li>Added more tests and now &#8216;make check&#8217; will run the             tests to make sure they pass.<\/li>\n<\/ul>\n<p>Download links:<br \/>\n<a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.3.1.tar.gz\">http:\/\/prdownloads.sf.net\/spirit\/spirit-1.3.1.tar.gz<\/a><br \/>\n<a href=\"http:\/\/prdownloads.sf.net\/spirit\/spirit-1.3.1.zip\">http:\/\/prdownloads.sf.net\/spirit\/spirit-1.3.1.zip<\/a><\/p>\n<p>Enjoy!<\/p>\n<h3>V1.3.x and V1.2.x<\/h3>\n<p><span>November 28, 2001<\/span>. To avoid           further confusion, if you haven&#8217;t noticed yet, please           take note that starting from V1.2, odd numbered minor           versions (e.g. V1.3.x) are development (alpha\/beta)           releases while even numbered versions (e.g. V1.2.x) are           stable releases. Thanks&#8230;<\/p>\n<h3>Spirit V1.2.4 released<\/h3>\n<p><span>November 24, 2001<\/span>. This is a           bugfix release for the 1.2 stable branch.<\/p>\n<p>The following has changed since 1.2.3:<\/p>\n<ul>\n<li>Fixed some bugs with multi_pass operator++ and             operator==<\/li>\n<li>Fixed a compilation problem with primitives.ipp and             STLport.<\/li>\n<\/ul>\n<p>Download the .tar.gz <a href=\"http:\/\/prdownloads.sourceforge.net\/spirit\/spirit-1.2.4.tar.gz\"> here<\/a> or the .zip <a href=\"http:\/\/prdownloads.sourceforge.net\/spirit\/spirit-1.2.4.zip\"> here<\/a><\/p>\n<h3>V1.3.0 on Borland<\/h3>\n<p><span>November 18, 2001<\/span>. Please be           informed that V1.3.0 &#8220;numerics.hpp&#8221; and &#8220;numerics.ipp&#8221;           does not work yet on Borland. If you want to tryout           V1.3.0 on <a href=\"http:\/\/www.borland.com\/\">Borland<\/a> ,           1) comment out the &#8220;numerics.hpp&#8221; and &#8220;numerics.ipp&#8221;           #includes in &#8220;spirit.hpp&#8221; or 2) reinstall the previous           numerics.hpp\/ipp from V1.2.x. Thank you.<\/p>\n<h3>Spirit V1.3.0 released<\/h3>\n<p><span>November 18, 2001<\/span>. 1.3.0 is           the first release of the spirit development branch.<br \/>\nThis branch should not be considered final or stable.           Interfaces or library elements may change at any time.           This branch was created so that users may have a look at           new features as soon as possible and we can all benefit           from &#8220;release early, release often&#8221;<\/p>\n<p>Download the zip <a href=\"http:\/\/prdownloads.sourceforge.net\/spirit\/spirit-1.3.0.zip\"> here<\/a> or the tar.gz <a href=\"http:\/\/prdownloads.sourceforge.net\/spirit\/spirit-1.3.0.tar.gz\"> here<\/a><\/p>\n<p>This release contains the following new features since           the 1.2.x branch:<\/p>\n<ul>\n<li>New numerics parser: more generic, handles octal,             hex, differing separators, and more.<\/li>\n<li>Regex parser: Wrapper around boost::regex (not             distributed w\/spirit), will recognize regular             expressions. See RegExpr.cpp sample.<\/li>\n<li>New static parsers: s_chlit, s_strlit and s_rxlit             (character, string or regular expression to be             recognized is part of the type via template             parameters.)<\/li>\n<li>Escape character parsers and associated action:             lex_escape_ch_p and c_escape_ch_p, will recognize             c-style or lex-style character escapes and decode             them.<\/li>\n<li>Confix and comment parsers.<\/li>\n<li>Grammar class that simplifies writing grammars and             decouples the iterator from the rule.<\/li>\n<li>Closures: very useful for semantic action             processing.<\/li>\n<li>New examples: RegExpr.cpp, closure.cpp,             escape_char_parser.cpp, comments.cpp, grammar.cpp,             roman.cpp rfc821.cpp<\/li>\n<\/ul>\n<p>Enjoy!!!<\/p>\n<h3>Side dish<\/h3>\n<p><span>November 14, 2001<\/span>. Stephen           Baker sent a trivial bug fix for &#8220;primitives.ipp&#8221; for           those who are using <a href=\"http:\/\/gcc.gnu.org\/\">GCC<\/a> with STLport 4.5. You can get it <a href=\"..\/..\/dl_more\/primitives.ipp\">here<\/a> . This should replace the file of the same name in the           directory boost\/spirit\/impl\/.<\/p>\n<h3>Spirit V1.2.3 has been released<\/h3>\n<p><span>November 12, 2001<\/span>.<\/p>\n<p>This is a maintenance release of the stable 1.2           branch. It fixes a few bugs. This is what changed from           version 1.2.2:<br \/>\nAdded a zipdist rule to the top-level Makefile<br \/>\nFixed a memory leak in multi_pass<br \/>\nFixed a problem with multi_pass::operator==<br \/>\nAdded add and find methods for symbol tables.<br \/>\nFix for <a href=\"http:\/\/gcc.gnu.org\/\">gcc<\/a> 3.0.1 +           STLport 4.5<br \/>\nOther symbol table fixes.<br \/>\nFixed the documentation to not encourage bad usage of           multi_pass<br \/>\nFixed some typos in the documentation reported by Robert           Kindred<br \/>\nFixed filexml.cpp sample to correctly use multi_pass.<\/p>\n<h3>Fast Food for Borland C++ Builder 5<\/h3>\n<p><span>November 2, 2001<\/span>. A complete           ready to run package for <a href=\"http:\/\/www.borland.com\/bcppbuilder\/\">Borland C++           Builder<\/a> 5 with Project files for all Spirit V1.2           examples has been contributed by Thomas Schittli. See           V1.2 download section.<\/p>\n<h3>A Borland Quirk<\/h3>\n<p><span>October 22, 2001<\/span>. Chris           Uzdavinis has reported that there is a problem with           <a href=\"http:\/\/www.borland.com\/\">Borland<\/a> 5.5           compilers. It happens in the IDE ( <a href=\"http:\/\/www.borland.com\/bcppbuilder\/\">C++ Builder<\/a> )           but not on the free command line tool because the default           compiler options are different. (Actually, the IDE           invokes the compiler with options that override the           &#8220;stock&#8221; default settings.)<br \/>\nIf the -Ve flag is set to your build, the compiler           reports an &#8220;internal compiler error&#8221;. -Ve is the setting           for the &#8220;zero-length empty base class&#8221; setting. It should           be on by default, but it shouldn&#8217;t be causing any           internal errors (so maybe it&#8217;s best left off when using           Spirit until <a href=\"http:\/\/www.borland.com\/\">Borland<\/a> fixes the bug).<\/p>\n<h3>Spirit V1.2.2 has been released<\/h3>\n<p><span>October 22, 2001<\/span>. This is           basically the same as the general public release with           some code tweaks for <a href=\"http:\/\/www.codewarrior.com\/\">CodeWarrior<\/a> 7 (thanks           to R\u00e9mi Delcos). Mac programmers, this one&#8217;s for           you. See the download pages.<\/p>\n<h3>Spirit V1.2.1 has been released<\/h3>\n<p><span>October 20, 2001<\/span>. This is           the general public release. This release includes           Hartmut&#8217;s C parser in addition to Dan&#8217;s XML parsers and           Hakki&#8217;s Pascal parser. Spirit V1.2.1 has been tested on           the following compilers: * <a href=\"http:\/\/www.borland.com\/bcppbuilder\/freecompiler\/\">Borland           C++<\/a> V5.5.1 * <a href=\"http:\/\/gcc.gnu.org\/\">GCC<\/a> 3.0           \/ 2.95.2 * <a href=\"http:\/\/developer.intel.com\/software\/products\/compilers\/c50\/\"> Intel Compiler<\/a> 5.01 * <a href=\"http:\/\/www.comeaucomputing.com\/\">Comeau<\/a> 4.2.45.<\/p>\n<h3>C Parser available<\/h3>\n<p><span>October 19, 2001<\/span>. Hartmut           Kaiser&#8217;s C Parser has been commited to CVS. This will be           included in the final v1.2 general release.<\/p>\n<h3>Spirit 1.2.0rc1 has been released<\/h3>\n<p>October 1, 2001<span>. Spirit 1.2.0rc1           has been released with a TON of cool new features           (character sets, symbol tables, an<\/span> STL-like           iterator interface, more examples, debugging output,           numeric parsers, and string parsers). See download           page.<\/p>\n<h3>Spirit V1.1 Documentation is ready<\/h3>\n<p><span>July 25, 2001<\/span>. Better late           than never :-). See download page.<\/p>\n<h3>The SourceForge mailing list is now open to the           public<\/h3>\n<p><span>June 14, 2001<\/span>. Boost&#8217;s           mailing list continues to be the medium for           Spirit-development related topics while the SourceForge           mailing list opens up another &#8220;friendly&#8221; window for other           issues to be discussed. You can subscribe to the list           here: <a href=\"http:\/\/lists.sourceforge.net\/lists\/listinfo\/spirit-general\"> http:\/\/lists.sourceforge.net\/lists\/listinfo\/spirit-general<\/a> .<\/p>\n<h3>Spirit V1.1 Documentation is almost ready<\/h3>\n<p><span>June 14, 2001<\/span>. The           documentation is now in sync with the new 1.1 features.           This will be uploaded as soon as possible.<\/p>\n<h3>News Flash! Bruce Florman did it again<\/h3>\n<p><span>June 9, 2001<\/span>. The <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">MSVC<\/a> port has           been included in the common code base. His port works           well with or without STLport. See download page.<\/p>\n<h3>Pascal<\/h3>\n<p><span>June 9, 2001<\/span>. Joel has           managed to get Hakki Dogusan&#8217;s Pascal code to work! He           says &#8211; &#8220;This has opened up some issues that I want to           address soon.<\/p>\n<p>This has more to do with optimisations. Would anyone           be interested to join me and collaborate in developing a           byte code interpreter and a scripting language using           Spirit, as a proof of concept? Maybe this is premature. I           will bring this topic up again (also in boost) in the           future as we gain more experience with Spirit.&#8221;<\/p>\n<h3>News Flash!<\/h3>\n<p><span>June 7, 2001<\/span>. Remi Delcos           noted that Spirit code compiles &#8220;out the box&#8221; with           <a href=\"http:\/\/www.metrowerks.com\/\">Metrowerks<\/a> <a href=\"http:\/\/www.codewarrior.com\/\">CodeWarrior<\/a> 6.2           on Mac OS (the latest shipping version). &#8220;All tests           compiled and seemed to run fine.&#8221;<\/p>\n<h3>Experimental<\/h3>\n<p><span>June 7, 2001. <\/span>Static sets are           parameterized sets that can conceptually hold up to 256           boolean keys. Yet, like magic does not hold any           data at all, nil, zilch! The data is encoded completely           in its type. Download here [ The documentation is in the           single header file, comments welcome. ]<\/p>\n<h3>Common Spirit code-base ready!<\/h3>\n<p><span>June 6, 2001<\/span>. After a day of           code crunching, the common code base is already up and           running. It has been tested on <a href=\"http:\/\/www.metrowerks.com\/\">Metrowerks<\/a> <a href=\"http:\/\/www.codewarrior.com\/\">CodeWarrior<\/a> 5.3,           <a href=\"http:\/\/www.borland.com\/bcppbuilder\/freecompiler\/\">Borland           C++<\/a> 5.5.1 and <a href=\"http:\/\/gcc.gnu.org\/\">GCC<\/a> 2.95.2. See the download page for details.<\/p>\n<h3>Spirit version 1.1 coming<\/h3>\n<p><span>June 5, 2001<\/span>. The latest           release of Spirit (Version 1.1) will be released after           some compatibility checks with various compilers. V1.1           addresses some of the problems with V1.0 as well as           adding numerous new features. V1.0 is stable as far as           the test programs are concerned. Yet, there are already           some known bugs that were not previously visible with the           tests. These are all fixed with V1.1. A more thorough           test program is being written now to ensure the           robustness of Spirit.<\/p>\n<p>Spirit V1.1 is already stable and should be available           shortly after checking the code for compatibility with           <a href=\"http:\/\/gcc.gnu.org\/\">GCC<\/a> 2.95.2 and BCC 5.5.1           (with or without STLport). Bruce Florman&#8217;s (and Changzhe           Han&#8217;s) <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">MSVC<\/a> code will           be updated to reflect the changes. Once V1.1 is released,           the next step is to merge all versions into a single code           base.<\/p>\n<h3>Spirit has been accepted for SourceForge!<\/h3>\n<p><span>June 4, 2001<\/span>. SourceForge           have accepted the application for a Spirit site there.           Many thanks go to Changzhe Han for the work on this. We           are preparing the SourceForge site now &#8211; as soon as it&#8217;s           ready, we&#8217;ll give you the URL.<\/p>\n<h3>News Flash!<\/h3>\n<p><span>June 4, 2001<\/span>. Spirit syntax           change The latest version of Spirit now uses the           &#8220;post-brackets&#8221; for semantic actions (as was suggested in           the boost mailing list ) . The new syntax will break           existing code. For example &#8211;<\/p>\n<pre>Old syntax:   action(expr)\r\nNew syntax:   expr[action]<\/pre>\n<pre>The \"test1.cpp\" and \"test2.cpp\" files have been updated to use the new syntax.<\/pre>\n<h3>Latest version of Spirit has been uploaded<\/h3>\n<p><span>June 4, 2001<\/span>. Latest version           of Spirit has been uploaded : This version adds the           &#8220;micro-parser&#8221; functionality and numerous bug fixes that           were exposed when compiling Hakki Dogusan&#8217;s Pascal           grammar in Spirit. The problem arises when a rule aliases           another rule which is not yet defined. For example:<\/p>\n<pre>Rule&lt;&gt; a, b;\r\nb = a;\r\na = StrLit&lt;&gt;(\"Hello\") &gt;&gt; StrLit&lt;&gt;(\"World\");<\/pre>\n<p>With the old code, b is undefined. With the corrected           code, b is an alias of a. Also, all line endings are           unix-encoded (lf). versus the Mac&#8217;s (cr) or Dos(cr-lf).           Most Mac and Window&#8217;s editors can detect the unix line           endings anyway, so for consistency the unix end-line           encoding is used.<\/p>\n<h3>New header file included in Spirit<\/h3>\n<p><span>June 4, 2001<\/span>. A           new header file &lt;Spirit_Numerics.h&gt; is added to           include numeric parsing features used by the           micro-parsing capabilites of Spirit.<\/p>\n<h3>Micro parser<\/h3>\n<p><span>June 3, 2001<\/span>. Micro parser           functionality as hinted by Vesa Karvonen is already           implemented in the Spirit parser framework. Here&#8217;s a           working code snippet:<\/p>\n<pre>int main() {\r\n    int a, b;\r\n    char const* str = \"( -123456, 654321 )\";\r\n    Scanner&lt;&gt; scanner(str, space);\r\n    bool ok = ('(' &gt;&gt; int_p(a) &gt;&gt; ','\r\n                   &gt;&gt; int_p(b) &gt;&gt; ')').Parse(scanner);\r\n}<\/pre>\n<pre>\/*... if successful, a and b will hold the parsed numbers *\/\r\n\/* if not, scanner will point to error in the input *\/<\/pre>\n<h3>News Flash!<\/h3>\n<p><span>June 1, 2001<\/span>.           Colin McPhail noted that Spirit code compiles &#8220;out the           box&#8221; with the Edinburgh Portable Compilers, the compiler           is EC++ 5.3.2 on Windows NT.<\/p>\n<h3>Spirit soon to be on SourceForge<\/h3>\n<p><span>June 1, 2001<\/span>.           An application has been sent to SourceForge to set up a           Spirit site there, courtesy of Changzhe Han. If all goes           well , things should be up and running there sometime in           the next few days. We&#8217;ll let you know as soon as its &#8220;all           go&#8221; &#8230;&#8230;<\/p>\n<h3>MSVC vanilla<\/h3>\n<p><span>June 1, 2001<\/span>.           Changzhe Han did a couple of modifications to Bruce           Florman&#8217;s <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">MSVC<\/a> port to allow it to be compiled           and used on vanilla <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">MSVC<\/a> 6.0. Bruce Florman&#8217;s port relied on           STLPort to compile and work correctly.<\/p>\n<h3>Cleanup time<\/h3>\n<p><span>June 1, 2001<\/span>.           Colin McPhail reported a silly bug in the           StrLit&lt;&gt;and NCStrLit&lt;&gt;classes. It was a           hectic week for me. The response from people all over the           world is overwhelming. Before I embarked on this project,           I promised myself to answer all email. Well, I did, but I           virtually had no time anymore for coding, much less           documenting.<\/p>\n<h3>So much to do, so little time<\/h3>\n<p><span>June 1, 2001<\/span>. I           am again asking help from people. Andy Elvey already           pledged to be the news editor (this page). Some people           volunteered to help in porting and maintaining the code.           There&#8217;s talk of a ailing list apart from the discussion           http:\/\/www.boost.org. Boost&#8217;s mailing list could be used           (as it is at present) for quite advanced discussion of           Spirit, whereas a Spirit mailing list would be a good           place for beginner \/ intermediate level discussion. Email           me if you want to help push the Spirit project           forward.<\/p>\n<h3>No more &#8230;cpp files<\/h3>\n<p><span>May 30, 2001<\/span>.           Following Bruce Florman&#8217;s suggestion, all of the global           extern object declarations are now const declarations.           Since there are no non-const operations being done on           these objects, and since const objects default to           internal linkage, doing this eliminates the need for the           ..cpp files that were there just to instantiate the           objects. So the whole framework is now composed of just           header files.<\/p>\n<h3>GCC 2.95.2 port by Dan Nuffer<\/h3>\n<p><span>May 30, 2001<\/span>.           Dan noted that &#8220;G++ 3.0 [, it] hasn&#8217;t been released yet&#8221;.           Anyway, I&#8217;ll upload his changes to the code as soon as I           possibly can. BTW, again, please do send in complete           project files and make files. This will make it easier           for people out there who just want to try Spirit out of           the box. Cheers.<\/p>\n<h3>Iterators everywhere!<\/h3>\n<p><span>May 30, 2001<\/span>. Iterators           everywhere! OK. So this is the initial release of Spirit           with iterators as proposed in boost mailing list. The           Kleene star (*, zero or more) and the positive operator           (+, one or more) remain as is. In addition, the new           iterator syntax generalizes repetitions. We have:<\/p>\n<pre>a.Repeat(8);        \/\/ repeat a 8 times\r\na.Repeat(8, 20);    \/\/ repeat a 8 to 20 times\r\na.Repeat(8, more);  \/\/ repeat a 8 or more times<\/pre>\n<p>And shorthands:<\/p>\n<pre>a(8);        \/\/ repeat a 8 times\r\na(8, 20);    \/\/ repeat a 8 to 20 times\r\na(8, more);  \/\/ repeat a 8 or more times<\/pre>\n<p>One more header file &lt;Spirit_Iterators.h&gt; has           been added into the code base. The additional code is           non-obtrusive: the client does not pay for this feature           if he\/she does not intend to use it (true to the spirit           of Spirit). The documentation will be updated to reflect           these additions. Rule&lt;&gt; toDo = (code &gt;&gt;           document)(1, more);<\/p>\n<h3>The Spirit &#8220;port&#8221; of sorts<\/h3>\n<p><span>May 29, 2001<\/span>.           Bruce Florman agreed to release his <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">MSVC<\/a> port of Spirit. If you find his port           useful, please do send him a thank you note or anything           if you have some time to spare (through           isis-tech@usa.net). Porting to <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">MSVC<\/a> which does not support template           partial specialization yet is not trivial. The very           preliminary version can be downloaded here for those who           want to do beta testing.<\/p>\n<p>Also, I am releasing the original <a href=\"..\/..\/spirit.sit\">Macintosh project file here<\/a> (this is           where it all started). I must confess, I am forever in           love with the Mac and <a href=\"http:\/\/www.codewarrior.com\/\">CodeWarrior<\/a> is my primary tool of choice.           Please do send in complete project files and make files.           This will make it easier for people out there who just           want to try Spirit out of the box without much fuss.<\/p>\n<h3>Spirit is undergoing major revisions<\/h3>\n<p><span>May 27, 2001<\/span><span>. Always download the latest version. Changes to           the code will, as much as possible, be downward           compatible. The only possible exception to this is the           proposal to change the sequencing &gt;&gt; operator,           which some consider ugly, to one of: + \/ % *.           Examples:<\/span><\/p>\n<pre><span>a &gt;&gt; b;    \/\/  Classic Spirit, arrows denote sequencing\r\n           \/\/  (I still prefer this :-)\r\na + b;     \/\/  Same as string concatenation. Clashes with\r\n           \/\/  the positive iterator (+)\r\na \/ b;     \/\/  Used in unix filepaths and URLs e.g.\r\n           \/\/  root\/development\/c++\/myfile.cpp.\r\na % b;     \/\/  Eye sore for me but some sayit's\r\n           \/\/  better than &gt;&gt;\r\na * b;     \/\/  a common substitute in computer languages\r\n           \/\/  for: a b, clashes with the Kleene star (*).<\/span><\/pre>\n<p>I always keep an open mind. I need your feedback regarding this issue. For now the &gt;&gt; operator stands as is.<\/p>\n<h3>Email problems<\/h3>\n<p><span>May 27, 2001<\/span>. I           had some email problems while switching servers. Both           www.interxys.com and joel@interxys.com are not valid           anymore. If anyone sent me email using this address after           Friday, May 27, I&#8217;d appreciate it if you could re-send           your email to either <a href=\"mailto:isis-tech@usa.net\">isis-tech@usa.net<\/a> or           <a href=\"mailto:isis-tech@mydestiny.net\">isis-tech@mydestiny.net<\/a>.<\/p>\n<h3>The new iteration syntax is almost final<\/h3>\n<p><span>May 26, 2001<\/span>.           The new iteration syntax is almost final. I am currently           busy adding this facility into the framework. Expect this           to be included in the code sometime soon. The           documentation will be updated in sync with this. Some           members of Boost&#8217;s mailing list took note of some           mistakes in the documentation. In particular, Greg Colvin           noted Spirit&#8217;s similarities to a prior work of Dr. Damian           Conway. And indeed, after reading Dr. Conway&#8217;s papers, I           realize I have to give credit where credit is due.<\/p>\n<p>I am indebted to the folks at Boost&#8217;s mailing list           especially Greg Colvin, Larry Evans, John (EBo) David,           Douglas Gregor, Ross Smith, David Abrahams, Vladimir           Prus, John Max Skaller, Andy Elvey, Reuben Fries, George           A. Heintzelman, Vesa Karvonen and many more. These people           are very helpful and continue to be instrumental in           steering Spririt in the right direction. I learn a lot           from these people, especially the theoretical aspects of           parsing, that I admittedly have to brush up on (Hey           Dragon Book, where art thou&#8230;).<\/p>\n<h3>News Flash!<\/h3>\n<p><span>May 26, 2001<\/span>. A           Spirit &#8220;port&#8221; of sorts. I am elated. Bruce Florman [           <a href=\"http:\/\/www.inin.com\/\">http:\/\/www.inin.com\/<\/a> ]           just sent in a working version of Spirit ported to           <a href=\"http:\/\/msdn.microsoft.com\/visualc\/\">Visual C++<\/a> 6.0. Radical! I never thought           someone would want to tackle such a port (MSVC does not           have template partial specialization yet). Thanks a lot           Bruce, I highly appreciate what you have done. Your           detailed log is quite something. I should take some time           to digest what you just did. I&#8217;ll surely learn a lot from           this. I&#8217;ll upload his port ASAP.<\/p>\n<h3>News Flash!<\/h3>\n<p><span>May 26, 2001<\/span>.           Intel compiles as well. Jan Bares [ <a href=\"http:\/\/www.antek.cz\/\">http:\/\/www.antek.cz\/<\/a> ] has           compiled Spirit on Intel Compiler 5.0 (build 001120) +           STLPort 4.0 on Win32.<\/p>\n<h3>Exhaustive backtracking parser<\/h3>\n<p><span>May 26, 2001<\/span>.           John Max Skaller noted that Spirit is not really an           exhaustive backtracking parser. So we shall take the E           and the B, thus we strip that down to LL(inf) RDP. Stay           tuned!<\/p>\n<h3>News Flash!<\/h3>\n<p><span>May 25, 2001<\/span>.           Spirit has been ported to <a href=\"http:\/\/gcc.gnu.org\/\">g++<\/a> 3.0 and bcc 5.5.1 thanks to           Vladimir Prus. He is currently proposing a very cool           automata building library in boost.org that could           potentially be used to extend Spirit to have many           back-ends that can generate more efficient parsers, all           &#8220;in-place&#8221;, such as LALR(1), SLR(1), LR(1), LL(1) and           more, in addition to Spirit&#8217;s default exhaustive           back-tracking recursive descent parsing engine (whew,           that was long. I need an acronym for that. EBRDP?). This           was first suggested by Douglas Gregor. Way to go           Vladimir, now the high priests will be happy \ud83d\ude42 You may           download the documentation and code here but please           remember that Spirit is undergoing major changes.<\/p>\n<h3>There&#8217;s discussion going on at Boost<\/h3>\n<p><span>May 24, 2001<\/span>.           There&#8217;s discussion going on at <a href=\"http:\/\/www.boost.org\/\">www.boost.org<\/a> re: Spirit. You           may simply view the current mailing list archive at:           <a href=\"http:\/\/groups.yahoo.com\/group\/boost\">http:\/\/groups.yahoo.com\/group\/boost<\/a>.           Better yet, you might be interested to join in and share           your thoughts, wish lists and contribute to the future           direction of Spirit. Boost is a repository of free,           portable, peer-reviewed C++ libraries. It acts as a           proving ground for new libraries, particularly those           which work well with the ISO C++ Standard Library.<\/p>\n<h3>I am in the process of looking for a home for           Spirit<\/h3>\n<p><span>May 23, 2001<\/span>.           Some people report difficulties accessing the site. Sorry           for the inconveniences that this might have caused.           <a href=\"http:\/\/isis-tech.n3.net\/\">http:\/\/isis-tech.n3.net<\/a>will           be permanent. This URL will redirect to wherever the           current host is located. The current host is <a href=\"http:\/\/www.interxys.com\/\">www.interxys.com<\/a>.<\/p>\n<h3>Help<\/h3>\n<p><span>May 22, 2001<\/span>.           Help. I&#8217;ve got a sudden influx of email requesting for a           port to compiler X. As of now, I haven&#8217;t compiled Spirit           yet with other compilers. I use <a href=\"http:\/\/www.metrowerks.com\/\">Metrowerks<\/a> Code Warrior 5.x. As far as I           know, the code is C++ compliant. Yet the code uses modern           C++ features such as member templates and template           partial specialisations. I would appreciate help if           someone out there is interested on porting Spirit to           other compilers. I&#8217;ll certainly give credit where credit           is due.<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>Share<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-35\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-35\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-pinterest\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-pinterest-35\" class=\"share-pinterest sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=pinterest\" target=\"_blank\" title=\"Click to share on Pinterest\" ><span>Pinterest<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-35\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-reddit\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-reddit sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=reddit\" target=\"_blank\" title=\"Click to share on Reddit\" ><span>Reddit<\/span><\/a><\/li><li class=\"share-tumblr\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-tumblr sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=tumblr\" target=\"_blank\" title=\"Click to share on Tumblr\" ><span>Tumblr<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>October 20, 2008. IMPORTANT!!! PLEASE READ!!! Regarding the evil post-skip (see news Post-skips (Important for Boost 1.34 and above users) below), here&#8217;s an ***IMPORTANT UPDATE***: I just found out that g &gt;&gt; eps_p is wrong. eps_p does not do a pre-skip, so the code will do nothing. The correct code is: parse ( str , [&hellip;]<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>Share<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-35\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-35\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-pinterest\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-pinterest-35\" class=\"share-pinterest sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=pinterest\" target=\"_blank\" title=\"Click to share on Pinterest\" ><span>Pinterest<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-35\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-reddit\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-reddit sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=reddit\" target=\"_blank\" title=\"Click to share on Reddit\" ><span>Reddit<\/span><\/a><\/li><li class=\"share-tumblr\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-tumblr sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/info\/news-archive\/?share=tumblr\" target=\"_blank\" title=\"Click to share on Tumblr\" ><span>Tumblr<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"author":2,"featured_media":0,"parent":42,"menu_order":7,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_s2mail":"","spay_email":""},"jetpack_shortlink":"https:\/\/wp.me\/PIHdZ-z","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/pages\/35"}],"collection":[{"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/comments?post=35"}],"version-history":[{"count":8,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/pages\/35\/revisions"}],"predecessor-version":[{"id":429,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/pages\/35\/revisions\/429"}],"up":[{"embeddable":true,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/pages\/42"}],"wp:attachment":[{"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/media?parent=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}