Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71675 - in sandbox/local/libs/local: doc/html doc/html/boost_local doc/qbk example
From: lorcaminiti_at_[hidden]
Date: 2011-05-02 16:09:23


Author: lcaminiti
Date: 2011-05-02 16:09:19 EDT (Mon, 02 May 2011)
New Revision: 71675
URL: http://svn.boost.org/trac/boost/changeset/71675

Log:
Reduced #includes to speed-up Boost.Phoenix compilation time.
Binary files modified:
   sandbox/local/libs/local/example/profile.xls
Text files modified:
   sandbox/local/libs/local/doc/html/boost_local/Advanced_Topics.html | 12 ++++++------
   sandbox/local/libs/local/doc/html/boost_local/Alternatives.html | 25 ++++++++++++++-----------
   sandbox/local/libs/local/doc/html/boost_local/Release_Notes.html | 19 ++-----------------
   sandbox/local/libs/local/doc/html/boost_local/Tutorial.html | 10 +++++-----
   sandbox/local/libs/local/doc/html/index.html | 2 +-
   sandbox/local/libs/local/doc/qbk/alternatives.qbk | 14 ++++++++------
   sandbox/local/libs/local/doc/qbk/release_notes.qbk | 2 --
   sandbox/local/libs/local/example/profile_boost_phoenix.cpp | 5 ++++-
   8 files changed, 40 insertions(+), 49 deletions(-)

Modified: sandbox/local/libs/local/doc/html/boost_local/Advanced_Topics.html
==============================================================================
--- sandbox/local/libs/local/doc/html/boost_local/Advanced_Topics.html (original)
+++ sandbox/local/libs/local/doc/html/boost_local/Advanced_Topics.html 2011-05-02 16:09:19 EDT (Mon, 02 May 2011)
@@ -85,7 +85,7 @@
 <p>
         In addition, local function parameter types cannot start with non-alphanumeric
         symbols (alphanumeric symbols are <code class="computeroutput"><span class="identifier">A</span><span class="special">-</span><span class="identifier">Z</span></code>, <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">z</span></code>,
- and <code class="computeroutput"><span class="number">0</span><span class="special">-</span><span class="number">9</span></code>). <sup>[<a name="id881374" href="#ftn.id881374" class="footnote">14</a>]</sup> The library will generate (cryptic) preprocessor errors if a
+ and <code class="computeroutput"><span class="number">0</span><span class="special">-</span><span class="number">9</span></code>). <sup>[<a name="id881375" href="#ftn.id881375" class="footnote">14</a>]</sup> The library will generate (cryptic) preprocessor errors if a
         parameter type starts with a non-alphanumeric symbol.
       </p>
 <p>
@@ -208,7 +208,7 @@
 <li class="listitem">
             Parenthesis to wrap the type expression (and therefore any commas <code class="computeroutput"><span class="special">,</span></code> that it contains) passed as parameter
             to the <code class="computeroutput"><a class="link" href="../BOOST_IDENTITY_TYPE.html" title="Macro BOOST_IDENTITY_TYPE">BOOST_IDENTITY_TYPE</a></code>
- macro. <sup>[<a name="id882734" href="#ftn.id882734" class="footnote">15</a>]</sup>
+ macro. <sup>[<a name="id882735" href="#ftn.id882735" class="footnote">15</a>]</sup>
           </li>
 </ol></div>
 <p>
@@ -409,7 +409,7 @@
         </p></td></tr>
 </table></div>
 <p>
- Consider the following complete example: <sup>[<a name="id884038" href="#ftn.id884038" class="footnote">16</a>]</sup>
+ Consider the following complete example: <sup>[<a name="id884039" href="#ftn.id884039" class="footnote">16</a>]</sup>
       </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -2135,21 +2135,21 @@
 </div>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a id="ftn.id881374" href="#id881374" class="para">14</a>] </sup>
+<div class="footnote"><p><sup>[<a id="ftn.id881375" href="#id881375" class="para">14</a>] </sup>
           <span class="bold"><strong>Rationale.</strong></span> This limitation derives from
           the fact that <code class="computeroutput"><a class="link" href="../BOOST_LOCAL_FUNCTION_PARAMS.html" title="Macro BOOST_LOCAL_FUNCTION_PARAMS">BOOST_LOCAL_FUNCTION_PARAMS</a></code>
           uses preprocessor token concatenation to inspect the parameter type token
           to see if the token is a parameter or a bound variable. The C++ preprocessor
           does not allow to concatenate non-alphanumeric tokens.
         </p></div>
-<div class="footnote"><p><sup>[<a id="ftn.id882734" href="#id882734" class="para">15</a>] </sup>
+<div class="footnote"><p><sup>[<a id="ftn.id882735" href="#id882735" class="para">15</a>] </sup>
               <span class="bold"><strong>Rationale.</strong></span> Using variadic macros,
               this extra set of parenthesis could be eliminated requiring only the
               parenthesis to invoke the <code class="computeroutput"><a class="link" href="../BOOST_IDENTITY_TYPE.html" title="Macro BOOST_IDENTITY_TYPE">BOOST_IDENTITY_TYPE</a></code>
               macro. However, this feature is currently not implemented and the double
               parenthesis are always needed when invoking this macro.
             </p></div>
-<div class="footnote"><p><sup>[<a id="ftn.id884038" href="#id884038" class="para">16</a>] </sup>
+<div class="footnote"><p><sup>[<a id="ftn.id884039" href="#id884039" class="para">16</a>] </sup>
           The authors recognize that the use of the <span class="emphasis"><em>identity macros</em></span>
           adds extra parenthesis to the already significant number of parenthesis
           required by the sequencing macro syntax. However, macro parameters usually

Modified: sandbox/local/libs/local/doc/html/boost_local/Alternatives.html
==============================================================================
--- sandbox/local/libs/local/doc/html/boost_local/Alternatives.html (original)
+++ sandbox/local/libs/local/doc/html/boost_local/Alternatives.html 2011-05-02 16:09:19 EDT (Mon, 02 May 2011)
@@ -252,13 +252,14 @@
 <tr>
 <td>
                 <p>
- <span class="emphasis"><em>Bind variables in scope</em></span>
+ <span class="emphasis"><em>Access variables in scope</em></span>
                 </p>
               </td>
 <td>
                 <p>
- Yes. It can bind variables by value, constant value, reference,
- and constant reference (also it can bind the object <code class="computeroutput"><span class="keyword">this</span></code>).
+ Yes. The variables names are repeated in the function declaration
+ so they can be bound by value, constant value, reference, and constant
+ reference (also it can bind the object <code class="computeroutput"><span class="keyword">this</span></code>).
                 </p>
               </td>
 <td>
@@ -275,22 +276,24 @@
               </td>
 <td>
                 <p>
- Yes. In addition, there is "short-hand" syntax to bind
- all variables in scope at once (by value or by reference). However,
- it is not possible to bind by constant reference (only by constant
- value).
+ Yes. The variables names are repeated in the function declaration
+ so they can be bound by value, constant value, and reference (also
+ it can bind the object <code class="computeroutput"><span class="keyword">this</span></code>).
+ However, variables cannot be bound by constant reference. In addition,
+ there is "short-hand" syntax to bind all variables in
+ scope at once (by value or by reference).
                 </p>
               </td>
 <td>
                 <p>
- No (but variables in scope are accessible as usual within expressions).
+ Yes (variables in scope are accessible as usual within expressions).
                 </p>
               </td>
 <td>
                 <p>
- Yes (using <code class="computeroutput"><span class="identifier">let</span></code>
- which also allows to bind by constant reference, plus variables
- in scope are accessible as usual within expressions).
+ Yes (variables in scope are accessible as usual within expressions).
+ In addition, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">let</span></code>
+ can be used to bind by constant reference.
                 </p>
               </td>
 </tr>

Modified: sandbox/local/libs/local/doc/html/boost_local/Release_Notes.html
==============================================================================
--- sandbox/local/libs/local/doc/html/boost_local/Release_Notes.html (original)
+++ sandbox/local/libs/local/doc/html/boost_local/Release_Notes.html 2011-05-02 16:09:19 EDT (Mon, 02 May 2011)
@@ -68,24 +68,9 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_local.Release_Notes.todo"></a><a class="link" href="Release_Notes.html#boost_local.Release_Notes.todo" title="TODO">TODO</a>
 </h3></div></div></div>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
- Check if compilation times of Boost.Lambda and Boost.Phoenix change is
- only specific headers are included (instead of the entire library header).
- </li>
-<li class="listitem">
+<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
             Rework factorial_impl and Implementation section.
- </li>
-<li class="listitem">
- Shall <code class="computeroutput"><span class="identifier">this_</span></code> be named
- <code class="computeroutput"><span class="identifier">_this</span></code> instead? Ask Boosters
- if there is some guideline for consistency. Maybe Boost uses <code class="computeroutput"><span class="special">...</span><span class="identifier">_</span></code>
- is for statements (like <code class="computeroutput"><span class="identifier">if_</span></code>)
- and <code class="computeroutput"><span class="identifier">_</span><span class="special">...</span></code>
- for variables (like <code class="computeroutput"><span class="identifier">_1</span></code>)...
- if that is the case then I should use <code class="computeroutput"><span class="identifier">_this</span></code>.
- </li>
-</ol></div>
+ </li></ol></div>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: sandbox/local/libs/local/doc/html/boost_local/Tutorial.html
==============================================================================
--- sandbox/local/libs/local/doc/html/boost_local/Tutorial.html (original)
+++ sandbox/local/libs/local/doc/html/boost_local/Tutorial.html 2011-05-02 16:09:19 EDT (Mon, 02 May 2011)
@@ -892,7 +892,7 @@
 <tr><td align="left" valign="top"><p>
           A <code class="computeroutput"><span class="keyword">return</span><span class="special">;</span></code>
           instruction from within a local block jumps to the end of the local block
- body and it does not return the enclosing function. <sup>[<a name="id875485" href="#ftn.id875485" class="footnote">10</a>]</sup>
+ body and it does not return the enclosing function. <sup>[<a name="id875486" href="#ftn.id875486" class="footnote">10</a>]</sup>
         </p></td></tr>
 </table></div>
 <p>
@@ -1328,9 +1328,9 @@
             behaviour of <code class="computeroutput"><span class="keyword">static_cast</span></code></a>
             (which might not work on all platforms at the cost of portability). Finally,
             the special name <code class="computeroutput"><span class="identifier">this_</span></code>
- was chose following <a href="http://boost.2283326.n4.nabble.com/local-this-or-this-td3423912.html" target="_top">Boost
- practise</a> to postfix with an underscore identifier named after
- keywords (the C++ keyword <code class="computeroutput"><span class="keyword">this</span></code>
+ was chosen following <a href="http://boost.2283326.n4.nabble.com/local-this-or-this-td3423912.html" target="_top">Boost
+ practise</a> to postfix with an underscore identifiers that are named
+ after keywords (the C++ keyword <code class="computeroutput"><span class="keyword">this</span></code>
             in this case).
           </p></div>
 <div class="footnote"><p><sup>[<a id="ftn.id872165" href="#id872165" class="para">9</a>] </sup>
@@ -1346,7 +1346,7 @@
             is visible but it refers to the local functor object and not to the bound
             object.
           </p></div>
-<div class="footnote"><p><sup>[<a id="ftn.id875485" href="#id875485" class="para">10</a>] </sup>
+<div class="footnote"><p><sup>[<a id="ftn.id875486" href="#id875486" class="para">10</a>] </sup>
             <span class="bold"><strong>Rationale.</strong></span> Programmers might expect
             <code class="computeroutput"><span class="keyword">return</span><span class="special">;</span></code>
             to exit the enclosing function instead of the local block (or local exit),

Modified: sandbox/local/libs/local/doc/html/index.html
==============================================================================
--- sandbox/local/libs/local/doc/html/index.html (original)
+++ sandbox/local/libs/local/doc/html/index.html 2011-05-02 16:09:19 EDT (Mon, 02 May 2011)
@@ -416,7 +416,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: May 02, 2011 at 15:54:49 GMT</small></p></td>
+<td align="left"><p><small>Last revised: May 02, 2011 at 20:05:47 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/local/libs/local/doc/qbk/alternatives.qbk
==============================================================================
--- sandbox/local/libs/local/doc/qbk/alternatives.qbk (original)
+++ sandbox/local/libs/local/doc/qbk/alternatives.qbk 2011-05-02 16:09:19 EDT (Mon, 02 May 2011)
@@ -65,18 +65,20 @@
     [ Yes. ]
 ]
 [
- [ ['Bind variables in scope] ]
+ [ ['Access variables in scope] ]
     [ Yes.
-It can bind variables by value, constant value, reference, and constant reference (also it can bind the object `this`). ]
+The variables names are repeated in the function declaration so they can be bound by value, constant value, reference, and constant reference (also it can bind the object `this`). ]
     [ No.
 Programmers must manually manage functor member variables with explicit types to access variables in scope. ]
     [ No.
 Programmers must manually manage functor member variables with explicit types to access variables in scope. ]
     [ Yes.
- In addition, there is "short-hand" syntax to bind all variables in scope at once (by value or by reference).
-However, it is not possible to bind by constant reference (only by constant value). ]
- [ No (but variables in scope are accessible as usual within expressions). ]
- [ Yes (using `let` which also allows to bind by constant reference, plus variables in scope are accessible as usual within expressions). ]
+The variables names are repeated in the function declaration so they can be bound by value, constant value, and reference (also it can bind the object `this`).
+However, variables cannot be bound by constant reference.
+In addition, there is "short-hand" syntax to bind all variables in scope at once (by value or by reference). ]
+ [ Yes (variables in scope are accessible as usual within expressions). ]
+ [ Yes (variables in scope are accessible as usual within expressions).
+In addition, `boost::phoenix::let` can be used to bind variables by constant reference. ]
 ]
 ]
 

Modified: sandbox/local/libs/local/doc/qbk/release_notes.qbk
==============================================================================
--- sandbox/local/libs/local/doc/qbk/release_notes.qbk (original)
+++ sandbox/local/libs/local/doc/qbk/release_notes.qbk 2011-05-02 16:09:19 EDT (Mon, 02 May 2011)
@@ -28,8 +28,6 @@
 
 [section TODO]
 
-# Check if compilation times of Boost.Lambda and Boost.Phoenix change if only specific headers are included (instead of the entire library header).
-
 # Rework factorial_impl and Implementation section.
 
 [endsect]

Modified: sandbox/local/libs/local/example/profile.xls
==============================================================================
Binary files. No diff available.

Modified: sandbox/local/libs/local/example/profile_boost_phoenix.cpp
==============================================================================
--- sandbox/local/libs/local/example/profile_boost_phoenix.cpp (original)
+++ sandbox/local/libs/local/example/profile_boost_phoenix.cpp 2011-05-02 16:09:19 EDT (Mon, 02 May 2011)
@@ -1,6 +1,9 @@
 
 #include <boost/chrono.hpp>
-#include <boost/spirit/include/phoenix.hpp>
+#include <boost/spirit/home/phoenix/statement/sequence.hpp>
+#include <boost/spirit/home/phoenix/core/reference.hpp>
+#include <boost/spirit/home/phoenix/core/argument.hpp>
+#include <boost/spirit/home/phoenix/operator/arithmetic.hpp>
 #include <iostream>
 #include <vector>
 #include <algorithm>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk