add scaffolding for splitting of vectors.
[oota-llvm.git] / docs / CodingStandards.html
index f6316194bf6282c15598be5a91907e6fb0d3e3c1..858bbe1f7b6fc60166187c77011094bee27aefef 100644 (file)
@@ -505,14 +505,15 @@ library. There are two problems with this:</p>
 
 <ol>
   <li>The time to run the static c'tors impacts startup time of
-      applications&mdash;a critical time for gui apps.</li>
+      applications&mdash;a critical time for GUI apps.</li>
   <li>The static c'tors cause the app to pull many extra pages of memory off the
-      disk: both the code for the static c'tors in each .o file and the small
-      amount of data that gets touched.  In addition, touched/dirty pages put
-      more pressure on the VM system on low-memory machines.</li>
+      disk: both the code for the static c'tors in each <tt>.o</tt> file and the
+      small amount of data that gets touched. In addition, touched/dirty pages
+      put more pressure on the VM system on low-memory machines.</li>
 </ol>
 
-<table align="center">
+<div align="center">
+<table>
   <tbody>
     <tr>
       <th>Old Way</th>
@@ -526,7 +527,7 @@ library. There are two problems with this:</p>
       <td align="left"><pre>DEBUG(std::cerr &lt;&lt; ...);
 DEBUG(dump(std::cerr));</pre></td>
       <td align="left"><pre>DOUT &lt;&lt; ...;
-dump(DOUT);</pre></td>
+DEBUG(dump(DOUT));</pre></td>
     </tr>
     <tr>
       <td align="left"><pre>std::cerr &lt;&lt; "Hello world\n";</pre></td>
@@ -553,19 +554,21 @@ dump(DOUT);</pre></td>
       <td align="left"><pre>llvm::StringStream</pre></td>
     </tr>
     <tr>
-      <td align="left"><pre>void print(std::ostream &Out);
+      <td align="left"><pre>void print(std::ostream &amp;Out);
 // ...
 print(std::cerr);</pre></td>
-      <td align="left"><pre>void print(std::ostream &Out);
-void print(std::ostream *Out) { if (Out) print(*Out) }
+      <td align="left"><pre>void print(llvm::OStream Out);<sup>1</sup>
 // ...
 print(llvm::cerr);</pre>
 
-<ul><i>N.B.</i> The second <tt>print</tt> method is called by the <tt>print</tt>
-expression. It prevents the execution of the first <tt>print</tt> method if the
-stream is <tt>cnull</tt>.</ul></td>
-   </tbody>
-</table>
+</td> </tbody> </table>
+</div>
+
+<div class="doc_text">
+<p><sup>1</sup><tt>llvm::OStream</tt> is a light-weight class so it should never
+be passed by reference. This is important because in some configurations,
+<tt>DOUT</tt> is an rvalue.</p>
+</div>
 
 </div>
 
@@ -734,15 +737,12 @@ sources.  Two particularly important books for our work are:</p>
 
 <ol>
 
-<li><a href="http://www.aw-bc.com/catalog/academic/product/0,1144,0201310155,00.html">Effective
-C++</a> by Scott Meyers.  There is an online version of the book (only some
-chapters though) <a
-href="http://www.awlonline.com/cseng/meyerscddemo/">available as well</a>.  Also
+<li><a href="http://www.amazon.com/Effective-Specific-Addison-Wesley-Professional-Computing/dp/0321334876">Effective
+C++</a> by Scott Meyers.  Also 
 interesting and useful are "More Effective C++" and "Effective STL" by the same
 author.</li>
 
-<li><a href="http://cseng.aw.com/book/0,3828,0201633620,00.html">Large-Scale C++
-Software Design</a> by John Lakos</li>
+<li>Large-Scale C++ Software Design by John Lakos</li>
 
 </ol>