This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [v3] api docs


On 10/12/2007, Benjamin Kosnik <bkoz@redhat.com> wrote:
>
> 2) _GLIBCXX_ATOMIC_BUILTINS versus __default_lock_policy's
> __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2

The latter exists specifically because the former is too broad and
doesn't guarantee that builtin CAS is available. IIRC configure
defines ATOMIC_BUILTINS if fetch-and-add is builtin, but fetch-and-add
is not a universal atomic primitive and can't be used to implement
arbitrary synchronisation operations, unlike CAS.
If configure checked for builtin CAS before defining ATOMIC_BUILTINS
it would mean builtin fetch-and-add and exchange-and-add would not be
used on some platforms where they are available.
I'm not sure what can be done other than asking the compiler folks to
pre-define macros like HAVE_SYNC_FETCH_AND_ADD to make the configure
test unnecessary, but I don't see any benefit to that.

The attached patch fixes some typos and markup.

Jon
Index: docs/html/18_support/howto.html
===================================================================
--- docs/html/18_support/howto.html	(revision 130734)
+++ docs/html/18_support/howto.html	(working copy)
@@ -108,8 +108,8 @@
       print this stuff, it prompted him to run this code through current
       compilers to see what the state of the art is with respect to member
       template functions.  He posted
-      <a href="http://groups.google.com/groups?oi=djq&selm=an_644660779";>an
-      article to Usenet</a> after discovering that the code above is not
+      <a href="http://groups.google.com/groups?oi=djq&amp;selm=an_644660779";>
+      an article to Usenet</a> after discovering that the code above is not
       valid!  Even though it has no data members, it still needs a
       user-defined constructor (which means that the class needs a type name
       after all).  The ctor can have an empty body; it just needs to be
@@ -248,7 +248,7 @@
 
    struct argument_error : public std::runtime_error
    {  
-     argument_error(const std::string& s): std::runtime_error(s) { }
+     argument_error(const std::string&amp; s): std::runtime_error(s) { }
    };
 
    int main(int argc)
Index: docs/html/ext/concurrence.html
===================================================================
--- docs/html/ext/concurrence.html	(revision 130734)
+++ docs/html/ext/concurrence.html	(working copy)
@@ -90,7 +90,7 @@
 </li>
 </ul>
 
-</p>
+<p>
 These functions forward to one of several specialized helper
 functions, depending on the circumstances. For instance, 
 </p>
@@ -138,7 +138,7 @@
 </p>
 <p>
 <code>
-GLIBCXX_WRITE_MEM_BARRIER 
+_GLIBCXX_WRITE_MEM_BARRIER 
 </code>
 </p>
 
@@ -151,10 +151,10 @@
   <a name="pthread_api">Pthread Interface</a>
 </h3>
 
-<p>A thin layer above IEEE 1003.1 (ie pthreads) is used to abastract
+<p>A thin layer above IEEE 1003.1 (ie pthreads) is used to abstract
 the thread interface for GCC. This layer is called "gthread," and is
 comprised of one header file that wraps the host's default thread layer with
-a POSIX-like interfaces.
+a POSIX-like interface.
 </p>
 
 <p> The file &lt;gthr-default.h&gt; points to the deduced wrapper for
@@ -247,11 +247,11 @@
   foo()
   {
     __gnu_cxx::__scoped_lock sentry(safe_base_mutex);
-    for (int i = 0; i < max;  ++i)
+    for (int i = 0; i &lt; max;  ++i)
       {
 	_Safe_iterator_base* __old = __iter;
-	__iter = __iter->_M_next;
-	__old->_M_detach_single();
+	__iter = __iter-&lt;_M_next;
+	__old-&lt;_M_detach_single();
       }
 }
 </pre>
Index: docs/html/17_intro/backwards_compatibility.html
===================================================================
--- docs/html/17_intro/backwards_compatibility.html	(revision 130734)
+++ docs/html/17_intro/backwards_compatibility.html	(working copy)
@@ -137,7 +137,7 @@
 dnl
 dnl @category Cxx
 dnl @author Todd Veldhuizen
-dnl @author Luc Maisonobe <luc@spaceroots.org>
+dnl @author Luc Maisonobe &lt;luc@spaceroots.org&gt;
 dnl @version 2004-02-04
 dnl @license AllPermissive
 AC_DEFUN([AC_CXX_NAMESPACE_STD], [
@@ -145,8 +145,8 @@
   ac_cv_cxx_have_std_namespace,
   [AC_LANG_SAVE
   AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iostream> 
-                  std::istream& is = std::cin;],,
+  AC_TRY_COMPILE([#include &lt;iostream&gt; 
+                  std::istream&amp; is = std::cin;],,
   ac_cv_cxx_have_std_namespace=yes, ac_cv_cxx_have_std_namespace=no)
   AC_LANG_RESTORE
   ])
@@ -557,7 +557,7 @@
   AC_LANG_CPLUSPLUS
   ac_save_CXXFLAGS="$CXXFLAGS"
   CXXFLAGS="$CXXFLAGS -Werror"	
-  AC_TRY_COMPILE([#include <ext/hash_map>], [using __gnu_cxx::hash_map;],
+  AC_TRY_COMPILE([#include &lt;ext/hash_map&gt;], [using __gnu_cxx::hash_map;],
   ac_cv_cxx_ext_hash_map=yes, ac_cv_cxx_ext_hash_map=no)
   CXXFLAGS="$ac_save_CXXFLAGS"
   AC_LANG_RESTORE
@@ -577,7 +577,7 @@
   AC_LANG_CPLUSPLUS
   ac_save_CXXFLAGS="$CXXFLAGS"
   CXXFLAGS="$CXXFLAGS -Werror"	
-  AC_TRY_COMPILE([#include <ext/hash_set>], [using __gnu_cxx::hash_set;],
+  AC_TRY_COMPILE([#include &lt;ext/hash_set&gt;], [using __gnu_cxx::hash_set;],
   ac_cv_cxx_ext_hash_set=yes, ac_cv_cxx_ext_hash_set=no)
   CXXFLAGS="$ac_save_CXXFLAGS"
   AC_LANG_RESTORE
@@ -837,7 +837,7 @@
 
     typedef check&lt;int&gt; check_type;
     check_type c;
-    check_type&& cr = c;],,
+    check_type&amp;&amp; cr = c;],,
   ac_cv_cxx_compile_cxx0x_native=yes, ac_cv_cxx_compile_cxx0x_native=no)
   AC_LANG_RESTORE
   ])
@@ -862,7 +862,7 @@
 
     typedef check&lt;int&gt; check_type;
     check_type c;
-    check_type&& cr = c;],,
+    check_type&amp;&amp; cr = c;],,
   ac_cv_cxx_compile_cxx0x_cxx=yes, ac_cv_cxx_compile_cxx0x_cxx=no)
   CXXFLAGS="$ac_save_CXXFLAGS"
   AC_LANG_RESTORE
@@ -888,7 +888,7 @@
 
     typedef check&lt;int&gt; check_type;
     check_type c;
-    check_type&& cr = c;],,
+    check_type&amp;&amp; cr = c;],,
   ac_cv_cxx_compile_cxx0x_gxx=yes, ac_cv_cxx_compile_cxx0x_gxx=no)
   CXXFLAGS="$ac_save_CXXFLAGS"
   AC_LANG_RESTORE
Index: docs/html/17_intro/howto.html
===================================================================
--- docs/html/17_intro/howto.html	(revision 130734)
+++ docs/html/17_intro/howto.html	(working copy)
@@ -127,7 +127,7 @@
 <center><table border="1"><caption>TR1 Headers for C Library Facilities</caption>
 <tr><td>&lt;tr1/cmath&gt;</td><td>&lt;tr1/cfloat&gt;</td><td>&lt;tr1/cstdarg&gt;</td><td>&lt;tr1/cstdio&gt;</td><td>&lt;tr1/ctime&gt;</td></tr>
 <tr><td>&lt;tr1/ccomplex&gt;</td><td>&lt;tr1/cinttypes&gt;</td><td>&lt;tr1/cstdbool&gt;</td><td>&lt;tr1/cstdlib&gt;</td><td>&lt;tr1/cwchar&gt;</td></tr>
-<tr><td>&lt;tr1/cfenv&gt;</td><td>&lt;tr1/climits&gt;</td><td>&lt;tr1/cstdint&gt;</td><td>&lt;tr1/ctgmath&gt;</td><td>&lt;tr1/cwctype&gt;<td></tr>
+<tr><td>&lt;tr1/cfenv&gt;</td><td>&lt;tr1/climits&gt;</td><td>&lt;tr1/cstdint&gt;</td><td>&lt;tr1/ctgmath&gt;</td><td>&lt;tr1/cwctype&gt;</td></tr>
 </table></center>
 
 <p>Also included are files for the C++ ABI interface:
@@ -142,7 +142,7 @@
 <center><table border="1"><caption>Extension Headers</caption>
 <tr><td>&lt;ext/algorithm&gt;</td><td>&lt;ext/debug_allocator.h&gt;</td><td>&lt;ext/mt_allocator.h&gt;</td><td>&lt;ext/pod_char_traits.h&gt;</td><td>&lt;ext/stdio_sync_filebuf.h&gt;</td></tr>
 <tr><td>&lt;ext/array_allocator.h&gt;</td><td>&lt;ext/enc_filebuf.h&gt;</td><td>&lt;ext/new_allocator.h&gt;</td><td>&lt;ext/pool_allocator.h&gt;</td><td>&lt;ext/throw_allocator.h&gt;</td></tr>
-<tr><td>&lt;ext/atomicity.h&gt;</td><td>&lt;ext/functional&gt;</td><td>&lt;ext/numeric&gt;</td><td>&lt;ext/rb_tree&gt;</td><td>&lt;ext/typelist.h&gt;<td></tr>
+<tr><td>&lt;ext/atomicity.h&gt;</td><td>&lt;ext/functional&gt;</td><td>&lt;ext/numeric&gt;</td><td>&lt;ext/rb_tree&gt;</td><td>&lt;ext/typelist.h&gt;</td></tr>
 <tr><td>&lt;ext/bitmap_allocator.h&gt;</td><td>&lt;ext/iterator&gt;</td><td>&lt;ext/numeric_traits.h&gt;</td><td>&lt;ext/rope&gt;</td><td>&lt;ext/type_traits.h&gt;</td></tr>
 <tr><td>&lt;ext/codecvt_specializations.h&gt;</td><td>&lt;ext/malloc_allocator.h&gt;</td><td>&lt;ext/pb_ds/assoc_container.h&gt;</td><td>&lt;ext/slist&gt;</td><td>&lt;ext/vstring.h&gt;</td></tr>
 <tr><td>&lt;ext/concurrence.h&gt;</td><td>&lt;ext/memory&gt;</td><td>&lt;ext/pb_ds/priority_queue.h&gt;</td><td>&lt;ext/stdio_filebuf.h&gt;</td></tr>
@@ -162,7 +162,7 @@
 </table></center>
 
 <hr />
-<h2><a name="2.1">Recipes for mixing headers</code></a></h2>
+<h2><a name="2.1">Recipes for mixing headers</a></h2>
 
 <p> A few simple rules.
 </p>
@@ -263,7 +263,7 @@
 <pre>
 g++ -v hello.cc
 
-#include <...> search starts here:
+#include &lt;...&gt; search starts here:
  /mnt/share/bld/H-x86-gcc.20071201/include/c++/4.3.0
 ...
 End of search list.
Index: docs/html/documentation.html
===================================================================
--- docs/html/documentation.html	(revision 130734)
+++ docs/html/documentation.html	(working copy)
@@ -79,7 +79,7 @@
 
          <li>Namespaces
          <ul>
-         <li><a href="17_intro/howto.html#3.0">Available namespaces</li>
+         <li><a href="17_intro/howto.html#3.0">Available namespaces</a></li>
          <li><a href="17_intro/howto.html#3.1">Namespace <code>std::</code></a></li>
          <li><a href="17_intro/howto.html#3.2">Using namespace composition</a></li>
          </ul>

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]