Commit 684edd67 by Jonathan Wakely

debug_mode.html: XHTML fixes.

2003-11-13  Jonathan Wakely <redi@gcc.gnu.org>

	* docs/html/debug_mode.html: XHTML fixes.

From-SVN: r73526
parent 89341602
2003-11-13 Jonathan Wakely <redi@gcc.gnu.org>
* docs/html/debug_mode.html: XHTML fixes.
2003-11-12 Benjamin Kosnik <bkoz@redhat.com> 2003-11-12 Benjamin Kosnik <bkoz@redhat.com>
* docs/html/debug_mode.html: Update. * docs/html/debug_mode.html: Update.
......
...@@ -310,13 +310,14 @@ template&lt;typename _Tp, typename _Allocator = allocator&lt;_Tp&gt; ...@@ -310,13 +310,14 @@ template&lt;typename _Tp, typename _Allocator = allocator&lt;_Tp&gt;
<p>Achieving link- and run-time coexistence is not a trivial <p>Achieving link- and run-time coexistence is not a trivial
implementation task. To achieve this goal we required a small implementation task. To achieve this goal we required a small
extension to the GNU C++ compiler (described in the GCC Manual for extension to the GNU C++ compiler (described in the GCC Manual for
C++ Extensions, see <a href = C++ Extensions, see <a
http://gcc.gnu.org/onlinedocs/gcc/Strong-Using.html>strong href="http://gcc.gnu.org/onlinedocs/gcc/Strong-Using.html">strong
using</a>), and a complex organization of debug- and using</a>), and a complex organization of debug- and
release-modes. The end result is that we have achieved per-use release-modes. The end result is that we have achieved per-use
recompilation but have had to give up some checking of the recompilation but have had to give up some checking of the
<code>std::basic_string</code> class template (namely, safe <code>std::basic_string</code> class template (namely, safe
iterators). iterators).
</p>
<h4><a name="compile_coexistence">Compile-time coexistence of release- and <h4><a name="compile_coexistence">Compile-time coexistence of release- and
debug-mode components</a></h4> debug-mode components</a></h4>
...@@ -415,10 +416,10 @@ release-mode or a debug-mode string. In practice, this results in ...@@ -415,10 +416,10 @@ release-mode or a debug-mode string. In practice, this results in
runtime errors. A simplified example of this problem is as follows. runtime errors. A simplified example of this problem is as follows.
</p> </p>
<p> Take this translation unit, compiled in debug-mode: <p> <p> Take this translation unit, compiled in debug-mode: </p>
<pre> <pre>
// -D_GLIBCXX_DEBUG // -D_GLIBCXX_DEBUG
#include <string> #include &lt;string&gt;
std::string test02(); std::string test02();
...@@ -437,7 +438,7 @@ int main() ...@@ -437,7 +438,7 @@ int main()
<p> ... and linked to this translation unit, compiled in release mode:</p> <p> ... and linked to this translation unit, compiled in release mode:</p>
<pre> <pre>
#include <string> #include &lt;string&gt;
std::string std::string
test02() test02()
...@@ -467,7 +468,7 @@ test02() ...@@ -467,7 +468,7 @@ test02()
<li>They have virtual functions returning strings: these functions <li>They have virtual functions returning strings: these functions
mangle in the same way regardless of the mangling of their return mangle in the same way regardless of the mangling of their return
types (see above), and their precise signatures can be relied upon types (see above), and their precise signatures can be relied upon
by users because they may be overridden in derived classes. by users because they may be overridden in derived classes.</li>
</ol> </ol>
<p>With the design of libstdc++ debug mode, we cannot effectively hide <p>With the design of libstdc++ debug mode, we cannot effectively hide
...@@ -509,7 +510,7 @@ test02() ...@@ -509,7 +510,7 @@ test02()
reuse the <code>Allocator</code> template parameter of containers reuse the <code>Allocator</code> template parameter of containers
by adding a sentinel wrapper <code>debug&lt;&gt;</code> that by adding a sentinel wrapper <code>debug&lt;&gt;</code> that
signals the user's intention to use debugging, and pick up signals the user's intention to use debugging, and pick up
the <code>debug&lr;&gt;</code> allocator wrapper in a partial the <code>debug&lt;&gt;</code> allocator wrapper in a partial
specialization. However, this has two drawbacks: first, there is a specialization. However, this has two drawbacks: first, there is a
conformance issue because the default allocator would not be the conformance issue because the default allocator would not be the
standard-specified <code>std::allocator&lt;T&gt;</code>. Secondly standard-specified <code>std::allocator&lt;T&gt;</code>. Secondly
...@@ -531,7 +532,7 @@ test02() ...@@ -531,7 +532,7 @@ test02()
namespaces. </em> namespaces. </em>
See <a See <a
href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00004.html"> this post href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00004.html"> this post
</a> </li> </a>
This method fails the <b>correctness</b> criteria.</li> This method fails the <b>correctness</b> criteria.</li>
<li><em>Extension: allow reopening on namespaces</em>: This would <li><em>Extension: allow reopening on namespaces</em>: This would
...@@ -546,7 +547,6 @@ test02() ...@@ -546,7 +547,6 @@ test02()
objects! This solution would fails the <b>minimize objects! This solution would fails the <b>minimize
recompilation</b> requirement, because we would only be able to recompilation</b> requirement, because we would only be able to
support option (1) or (2).</li> support option (1) or (2).</li>
</li>
<li><em>Extension: use link name</em>: This option involves <li><em>Extension: use link name</em>: This option involves
complicated re-naming between debug-mode and release-mode complicated re-naming between debug-mode and release-mode
...@@ -561,7 +561,6 @@ test02() ...@@ -561,7 +561,6 @@ test02()
See <a See <a
href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00177.html">link href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00177.html">link
name</a> </li> name</a> </li>
</li>
</ul> </ul>
<p>Other options may exist for implementing the debug mode, many of <p>Other options may exist for implementing the debug mode, many of
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment