This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [wwwdocs] 4.2 libstdc++ entry
Good stuff, thanks! I'll make some minor editorial comments, the
contents is obviously your area of expertise, not mine. ;-)
Thanks, this was very helpful. Attached are the revisions for both
lists: I've checked them in.
FYI, it looks like the compiler-specific C++ bits for 4.2 are
incomplete: there's no mention of the visibility re-write or the change
to make anonymous namespaces internal.
An impressive list. :-)
I was pretty impressed myself.
best,
benjamin
Index: htdocs/gcc-4.2/changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.2/changes.html,v
retrieving revision 1.29
diff -c -p -r1.29 changes.html
*** htdocs/gcc-4.2/changes.html 1 Apr 2007 21:02:18 -0000 1.29
--- htdocs/gcc-4.2/changes.html 3 Apr 2007 08:41:12 -0000
***************
*** 158,163 ****
--- 158,221 ----
</li>
</ul>
+ <h4>Runtime Library (libstdc++)</h4>
+ <ul>
+ <li>Added support for TR1 <random>, <complex>, and C
+ compatibility headers. In addition, a lock-free version of
+ <code>shared_ptr</code> was contributed as part of Phillip
+ Jordan's Google Summer of Code project on lock-free
+ containers. The implementation status for TR1 can be tracked in <a
+ href="http://gcc.gnu.org/onlinedocs/libstdc++/ext/tr1.html">tr1.html</a>
+ </li>
+ <li>In association with the Summer of Code work on lock-free
+ containers, the interface for atomic builtins was adjusted,
+ creating simpler alternatives for non-threaded code paths. Also,
+ usage was consolidated and all elements were moved from
+ <code>namespace std</code> to
+ <code>namespace__gnu_cxx</code>. Affected interfaces are the
+ functions <code>__exchange_and_add</code>,
+ <code>__atomic_add</code>, and the objects <code>__mutex</code>,
+ <code>__recursive_mutex</code>, and
+ <code>__scoped_lock</code>. </li>
+ <li>Support for versioning weak symbol names via namespace
+ association was added. However, as this changes the names of
+ exported symbols, this is turned off by default in the current
+ ABI. Intrepid users can enable this feature by using
+ <code>--enable-symvers=gnu-versioned-namespace</code> during configuration.
+ </li>
+ <li>Revised, simplified, and expanded policy-based associative
+ containers, including data types for tree and trie forms
+ (<code>basic_tree</code>, <code>tree</code>, <code>trie</code>),
+ lists (<code>list_update</code>), and both collision-chaining and
+ probing hash-based containers (<code>basic_hash_table</code>,
+ <code>cc_hash_table</code>, <code>gp_hash_table</code>). More details
+ per the <a href="http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html">documentation.</a>
+ </li>
+ <li>The implementation of the debug mode was modified, whereby the
+ debug namespaces were nested inside of <code>namespace std</code>
+ and <code>namespace __gnu_cxx</code> in order to resolve some long
+ standing corner cases involving name lookup. Debug
+ functionality from the policy-based data structures was
+ consolidated and enabled with the single macro,
+ <code>_GLIBCXX_DEBUG</code>. See PR 26142 for more
+ information.</li>
+ <li> Added extensions for type traits:
+ <code>__conditional_type</code>, <code>__numeric_traits</code>,
+ <code>__add_unsigned</code>, <code>__removed_unsigned</code>,
+ <code>__enable_if</code>.
+ <li> Added a typelist implementation for compile-time
+ meta-programming. Elements for typelist construction and operation can be
+ found within <code>namespace __gnu_cxx::typelist</code>.</li>
+ <li> Added a new allocator, <code>__gnu_cxx::throw_allocator</code>, for
+ testing exception-safety. </li>
+ <li> Enabled library-wide visibility control, allowing
+ <code>-fvisibility</code> to be used.</li>
+ <li> Consolidated all nested namespaces and the
+ conversion of <code>__gnu_internal</code> implementation-private
+ details to anonymous namespaces whenever possible.</li>
+ <li>Implemented LWG resolutions DR 431 and DR 538. </li>
+ </ul>
+
<h3>Fortran</h3>
<ul>
<li>Support for allocatable components has been added (TR 15581 and
Index: htdocs/gcc-4.3/changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.3/changes.html,v
retrieving revision 1.42
diff -c -p -r1.42 changes.html
*** htdocs/gcc-4.3/changes.html 28 Mar 2007 14:44:53 -0000 1.42
--- htdocs/gcc-4.3/changes.html 3 Apr 2007 08:09:00 -0000
***************
*** 163,170 ****
has been added. This support can be enabled with the
<code>-std=c++0x</code> or <code>-std=gnu++0x</code> compiler
options; the former disables GNU extensions. The following C++0x
! features are enabled by this
! experimental mode:
<ul>
<li><a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html">Static
--- 163,169 ----
has been added. This support can be enabled with the
<code>-std=c++0x</code> or <code>-std=gnu++0x</code> compiler
options; the former disables GNU extensions. The following C++0x
! features are enabled by this experimental mode:
<ul>
<li><a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html">Static
***************
*** 177,183 ****
<li><a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2152.pdf">Variadic
templates</a> (only enabled by <code>-std=gnu++0x</code>)</li>
! </ul>
</li>
<li><code>-Wc++0x-compat</code> has been added and is now enabled by
--- 176,187 ----
<li><a
href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2152.pdf">Variadic
templates</a> (only enabled by <code>-std=gnu++0x</code>)</li>
! <li> Headers <array>, <random>, <regex>,
! <tuple>, <type_traits>, <unordered_map>, and
! <unordered_set>. Plus, headers for C compatibility:
! <ccomplex>, <cfenv>, <cinttypes>,
! <cstdbool>, <cstdint>, and <ctgmath>. </li>
! </ul>
</li>
<li><code>-Wc++0x-compat</code> has been added and is now enabled by
***************
*** 197,202 ****
--- 201,223 ----
</ul>
+ <h4>Runtime Library (libstdc++)</h4>
+ <ul>
+ <li> Support for TR1 mathematical special functions and regular
+ expressions. The implementation status for TR1 can be tracked in
+ <a href="http://gcc.gnu.org/onlinedocs/libstdc++/ext/tr1.html">
+ tr1.html </a> </li>
+ <li> Default <code>what</code> implementations give more elaborate
+ exception strings for <code>bad_cast</code>,
+ <code>bad_typeid</code>, <code>bad_exception</code>, and
+ <code>bad_alloc</code>.</a> </li>
+ <li> Header dependencies have been streamlined, reducing
+ unnecessary includes and pre-processed bloat. </li>
+ <li> Variadic template implementations of items in <tuple> and
+ <functional>. </li>
+ </ul>
+
+
<h3>Fortran</h3>
<ul>