Improve generated libstdc++ API docs
authorJonathan Wakely <jwakely@redhat.com>
Thu, 10 Dec 2015 14:02:52 +0000 (14:02 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 10 Dec 2015 14:02:52 +0000 (14:02 +0000)
* doc/doxygen/user.cfg.in: Use EXTENSION_MAPPING tag. Add new headers
to INPUT. Remove obsolete XML_SCHEMA and XML_DTD tags. Update
PREDEFINED macros. Set BRIEF_MEMBER_DESC for man-pages.
* include/backward/strstream: Correct @file comment.
* include/bits/forward_list.h: Improve Doxygen comments.
* include/bits/locale_facets_nonio.h: Likewise.
* include/bits/mutex.h: Likewise.
* include/bits/shared_ptr.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/debug/vector (_Safe_vector): Add @brief section to comment.
* include/experimental/bits/fs_dir.h: Correct @file comment.
* include/experimental/bits/fs_fwd.h: Likewise.
* include/experimental/bits/fs_ops.h: Likewise.
* include/experimental/bits/fs_path.h: Likewise.
* include/experimental/bits/string_view.tcc: Likewise.
* include/experimental/optional: Document experimental status.
* include/experimental/string_view: Correct @file comment.
* include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Reduce
whitespace to avoid Doxygen bug.
* include/std/bitset: Remove redundant @class Doxygen command. Add
parentheses to avoid Doxygen bug.
* include/std/mutex: Improve Doxygen comments.
* include/tr2/dynamic_bitset: Add missing @param documentation.
* scripts/run_doxygen: Rename man pages for std::experimental types.

From-SVN: r231512

21 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/doc/doxygen/user.cfg.in
libstdc++-v3/include/backward/strstream
libstdc++-v3/include/bits/forward_list.h
libstdc++-v3/include/bits/locale_facets_nonio.h
libstdc++-v3/include/bits/mutex.h
libstdc++-v3/include/bits/shared_ptr.h
libstdc++-v3/include/bits/stl_deque.h
libstdc++-v3/include/debug/vector
libstdc++-v3/include/experimental/bits/fs_dir.h
libstdc++-v3/include/experimental/bits/fs_fwd.h
libstdc++-v3/include/experimental/bits/fs_ops.h
libstdc++-v3/include/experimental/bits/fs_path.h
libstdc++-v3/include/experimental/bits/string_view.tcc
libstdc++-v3/include/experimental/optional
libstdc++-v3/include/experimental/string_view
libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
libstdc++-v3/include/std/bitset
libstdc++-v3/include/std/mutex
libstdc++-v3/include/tr2/dynamic_bitset
libstdc++-v3/scripts/run_doxygen

index f77428e1b2f43f3d0d842a8ce9d8695769a4b5d3..c46aede2f46ac7151ce3028d05230941e4f039df 100644 (file)
@@ -1,3 +1,30 @@
+2015-12-10  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/doxygen/user.cfg.in: Use EXTENSION_MAPPING tag. Add new headers
+       to INPUT. Remove obsolete XML_SCHEMA and XML_DTD tags. Update
+       PREDEFINED macros. Set BRIEF_MEMBER_DESC for man-pages.
+       * include/backward/strstream: Correct @file comment.
+       * include/bits/forward_list.h: Improve Doxygen comments.
+       * include/bits/locale_facets_nonio.h: Likewise.
+       * include/bits/mutex.h: Likewise.
+       * include/bits/shared_ptr.h: Likewise.
+       * include/bits/stl_deque.h: Likewise.
+       * include/debug/vector (_Safe_vector): Add @brief section to comment.
+       * include/experimental/bits/fs_dir.h: Correct @file comment.
+       * include/experimental/bits/fs_fwd.h: Likewise.
+       * include/experimental/bits/fs_ops.h: Likewise.
+       * include/experimental/bits/fs_path.h: Likewise.
+       * include/experimental/bits/string_view.tcc: Likewise.
+       * include/experimental/optional: Document experimental status.
+       * include/experimental/string_view: Correct @file comment.
+       * include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Reduce
+       whitespace to avoid Doxygen bug.
+       * include/std/bitset: Remove redundant @class Doxygen command. Add
+       parentheses to avoid Doxygen bug.
+       * include/std/mutex: Improve Doxygen comments.
+       * include/tr2/dynamic_bitset: Add missing @param documentation.
+       * scripts/run_doxygen: Rename man pages for std::experimental types.
+
 2015-12-04  Jonathan Wakely  <jwakely@redhat.com>
 
        PR libstdc++/57060
index ff2db489d6efc71bd2b6602282aa98af00e7efea..a62eeffa393caf614ec87cffe64b8732bfbb9a3e 100644 (file)
@@ -90,7 +90,7 @@ OUTPUT_LANGUAGE        = English
 # documentation (similar to Javadoc). Set to NO to disable this.
 # The default value is: YES.
 
-BRIEF_MEMBER_DESC      = NO
+BRIEF_MEMBER_DESC      = @do_man@
 
 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
 # description of a member or function before the detailed description
@@ -272,7 +272,7 @@ OPTIMIZE_OUTPUT_VHDL   = NO
 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
 # the files are not read by doxygen.
 
-EXTENSION_MAPPING      =
+EXTENSION_MAPPING      = no_extension=C++ .h=C++ .tcc=C++ .hpp=C++
 
 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
 # according to the Markdown format, which allows for more readable
@@ -757,6 +757,7 @@ INPUT                  = @srcdir@/doc/doxygen/doxygroups.cc \
                          include/bitset \
                          include/chrono \
                          include/complex \
+                         include/codecvt \
                          include/condition_variable \
                          include/deque \
                          include/forward_list \
@@ -812,6 +813,7 @@ INPUT                  = @srcdir@/doc/doxygen/doxygroups.cc \
                          include/cmath \
                          include/csetjmp \
                          include/csignal \
+                         include/cstdalign \
                          include/cstdarg \
                          include/cstdbool \
                          include/cstddef \
@@ -822,6 +824,7 @@ INPUT                  = @srcdir@/doc/doxygen/doxygroups.cc \
                          include/ctgmath \
                          include/ctime \
                          include/cwchar \
+                         include/cuchar \
                          include/cwctype \
                          include/ \
                          include/bits \
@@ -831,6 +834,7 @@ INPUT                  = @srcdir@/doc/doxygen/doxygroups.cc \
                          include/backward/hash_set \
                          include/backward/strstream \
                          include/debug \
+                         include/debug/array \
                          include/debug/bitset \
                          include/debug/deque \
                          include/debug/forward_list \
@@ -853,6 +857,7 @@ INPUT                  = @srcdir@/doc/doxygen/doxygroups.cc \
                          include/profile/unordered_set \
                          include/profile/vector \
                          include/ext/algorithm \
+                         include/ext/cmath \
                          include/ext/functional \
                          include/ext/iterator \
                          include/ext/memory \
@@ -886,9 +891,36 @@ INPUT                  = @srcdir@/doc/doxygen/doxygroups.cc \
                          include/tr2/ratio \
                          include/tr2/type_traits \
                          include/decimal/decimal \
+                         include/experimental/bits \
+                         include/experimental/algorithm \
                          include/experimental/any \
+                         include/experimental/array \
+                         include/experimental/chrono \
+                         include/experimental/deque \
+                         include/experimental/filesystem \
+                         include/experimental/forward_list \
+                         include/experimental/functional \
+                         include/experimental/iterator \
+                         include/experimental/list \
+                         include/experimental/map \
+                         include/experimental/memory \
+                         include/experimental/memory_resource \
+                         include/experimental/numeric \
                          include/experimental/optional \
+                         include/experimental/propagate_const \
+                         include/experimental/random \
+                         include/experimental/ratio \
+                         include/experimental/regex \
+                         include/experimental/set \
+                         include/experimental/string \
                          include/experimental/string_view \
+                         include/experimental/system_error \
+                         include/experimental/tuple \
+                         include/experimental/type_traits \
+                         include/experimental/unordered_map \
+                         include/experimental/unordered_set \
+                         include/experimental/utility \
+                         include/experimental/vector \
                          include/ext \
                          include/ext/pb_ds \
                          include/ext/pb_ds/detail \
@@ -1965,18 +1997,6 @@ GENERATE_XML           = @do_xml@
 
 XML_OUTPUT             = xml
 
-# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a
-# validating XML parser to check the syntax of the XML files.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify a XML DTD, which can be used by a
-# validating XML parser to check the syntax of the XML files.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_DTD                =
-
 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
 # listings (including syntax highlighting and cross-referencing information) to
 # the XML output. Note that enabling this will significantly increase the size
@@ -2111,9 +2131,10 @@ INCLUDE_FILE_PATTERNS  =
 # recursively expanded use the := operator instead of the = operator.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
-PREDEFINED             = __cplusplus=201103L \
+PREDEFINED             = __cplusplus=201402L \
                          __GTHREADS \
                          _GLIBCXX_HAS_GTHREADS \
+                         _GLIBCXX_HAVE_TLS \
                          _GLIBCXX_INCLUDE_AS_CXX11 \
                          "_GLIBCXX_PURE= " \
                          "_GLIBCXX_CONST= " \
@@ -2135,6 +2156,7 @@ PREDEFINED             = __cplusplus=201103L \
                          _GLIBCXX_USE_CONSTEXPR=constexpr \
                          "_GLIBCXX_THROW(E)= " \
                          _GLIBCXX_NOEXCEPT=noexcept \
+                         "_GLIBCXX_NOEXCEPT_IF(C)=noexcept(/*conditional*/)" \
                          _GLIBCXX_NOTHROW=noexcept \
                          _GLIBCXX_USE_NOEXCEPT=noexcept \
                          _GLIBCXX_USE_WCHAR_T \
@@ -2144,7 +2166,7 @@ PREDEFINED             = __cplusplus=201103L \
                          _GLIBCXX_USE_NANOSLEEP \
                          __cpp_exceptions \
                          __cpp_rtti \
-                         ATOMIC_INT_LOCK_FREE \
+                         ATOMIC_INT_LOCK_FREE=2 \
                          PB_DS_DATA_TRUE_INDICATOR \
                          PB_DS_STATIC_ASSERT=// \
                          "_GLIBCXX_BEGIN_NAMESPACE_ALGO= " \
index 9288e56395ec6721dde3e40860217e9552e430c6..6d778f0e23ae37ad434fcf60192237b61f1c7386 100644 (file)
@@ -40,9 +40,8 @@
 // MAY BE REMOVED in a future standard revision.  One should use the
 // header <sstream> instead.
 
-/** @file backward/strstream
- *  This is an internal header file, included by other library headers.
- *  Do not attempt to use it directly. @headername{sstream}
+/** @file strstream
+ *  This is a Standard C++ Library header.
  */
 
 #ifndef _BACKWARD_STRSTREAM
@@ -53,7 +52,6 @@
 #include <ios>
 #include <istream>
 #include <ostream>
-#include <string>
 
 namespace std _GLIBCXX_VISIBILITY(default)
 {
index d87f1754ed3b02b4f2f527d2b112a48285672a2c..1229dd7a49b1ccc047cc9408b4ae9c0aeb870213 100644 (file)
@@ -478,7 +478,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
       /**
        *  @brief  Creates a %forward_list with default constructed elements.
-       *  @param  __n  The number of elements to initially create.
+       *  @param  __n   The number of elements to initially create.
+       *  @param  __al  An allocator object.
        *
        *  This constructor creates the %forward_list with @a __n default
        *  constructed elements.
@@ -1096,6 +1097,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
        *  after @a __pos in constant time.
        *
        *  Undefined if @a __pos is in (__before,__last).
+       *  @{
        */
       void
       splice_after(const_iterator __pos, forward_list&&,
@@ -1106,6 +1108,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       splice_after(const_iterator __pos, forward_list&,
                    const_iterator __before, const_iterator __last) noexcept
       { _M_splice_after(__pos, __before, __last); }
+      // @}
 
       /**
        *  @brief  Remove all elements equal to value.
index 7eae6c80653fd6c57d3e7f7ee0b592cb7aee4e6f..527296b78f09b02813c898f1a6ec6e7265a7f2e0 100644 (file)
@@ -709,7 +709,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
        *
        *  @param __s        Start of string to parse.
        *  @param __end      End of string to parse.
-       *  @param __io       Source of the locale.
+       *  @param __       Source of the locale.
        *  @param __err      Error flags to set.
        *  @param __tm       Pointer to struct tm to fill in.
        *  @param __format   Format specifier.
index dd279899ee9f492b4297f1ab3e7c0bc8e08c4957..fabd25759209236d5aa8b476e8f040bbb98c3948 100644 (file)
@@ -82,7 +82,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     __mutex_base& operator=(const __mutex_base&) = delete;
   };
 
-  /// mutex
+  /// The standard mutex type.
   class mutex : private __mutex_base
   {
   public:
@@ -138,13 +138,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   /// and manage it.
   struct adopt_lock_t { explicit adopt_lock_t() = default; };
 
+  /// Tag used to prevent a scoped lock from acquiring ownership of a mutex.
   constexpr defer_lock_t       defer_lock { };
+
+  /// Tag used to prevent a scoped lock from blocking if a mutex is locked.
   constexpr try_to_lock_t      try_to_lock { };
+
+  /// Tag used to make a scoped lock take ownership of a locked mutex.
   constexpr adopt_lock_t       adopt_lock { };
 
-  /// @brief  Scoped lock idiom.
-  // Acquire the mutex here with a constructor call, then release with
-  // the destructor call in accordance with RAII style.
+  /** @brief A simple scoped lock type.
+   *
+   * A lock_guard controls mutex ownership within a scope, releasing
+   * ownership in the destructor.
+   */
   template<typename _Mutex>
     class lock_guard
     {
@@ -167,7 +174,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       mutex_type&  _M_device;
     };
 
-  /// unique_lock
+  /** @brief A movable scoped lock type.
+   *
+   * A unique_lock controls mutex ownership within a scope. Ownership of the
+   * mutex can be delayed until after construction and can be transferred
+   * to another unique_lock by move construction or move assignment. If a
+   * mutex lock is owned when the destructor runs ownership will be released.
+   */
   template<typename _Mutex>
     class unique_lock
     {
index 26a0ad3d7b73e8b7ee8c8c54ae721fbeaf88027b..785d92b2e76d7cf1bf870e186cc20149dd289a05 100644 (file)
@@ -41,7 +41,7 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-/** @file bits/shared_ptr.h
+/** @file
  *  This is an internal header file, included by other library headers.
  *  Do not attempt to use it directly. @headername{memory}
  */
index f81ffd97d33fb1015e3f791be22b4019568fc5fc..a507806e86be1ca141c94ed78f13a5ddf6e0ab89 100644 (file)
@@ -895,6 +895,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       /**
        *  @brief  Creates a %deque with default constructed elements.
        *  @param  __n  The number of elements to initially create.
+       *  @param  __a  An allocator.
        *
        *  This constructor fills the %deque with @a n default
        *  constructed elements.
index fede4f0917cc2eb54905d82165b6d117061b9163..6a4315a55f7c5a9e2ce9af5727759a8f2557427e 100644 (file)
 
 namespace __gnu_debug
 {
-  /// Special vector safe base class to add a guaranteed capacity information
-  /// useful to detect code relying on the libstdc++ reallocation management
-  /// implementation detail.
+  /** @brief Base class for Debug Mode vector.
+   *
+   * Adds information about the guaranteed capacity, which is useful for
+   * detecting code which relies on non-portable implementation details of
+   * the libstdc++ reallocation policy.
+   */
   template<typename _SafeSequence,
           typename _BaseSequence>
     class _Safe_vector
index 0c5253fb62d0d89c5d96a700b44910ffb591bcac..493c582a9a59986aaa983cd7f001d6fd67779131 100644 (file)
@@ -22,7 +22,7 @@
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
-/** @file experimental/fs_dir.h
+/** @file experimental/bits/fs_dir.h
  *  This is an internal header file, included by other library headers.
  *  Do not attempt to use it directly. @headername{experimental/filesystem}
  */
index a5ed2c5de0ef285aea2c1a8e554bc1d6ecda3ce4..c71d50318780563cd5b67c73fee216362e60f091 100644 (file)
@@ -22,8 +22,9 @@
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
-/** @file experimental/filesystem
- *  This is a TS C++ Library header.
+/** @file experimental/bits/fs_fwd.h
+ *  This is an internal header file, included by other library headers.
+ *  Do not attempt to use it directly. @headername{experimental/filesystem}
  */
 
 #ifndef _GLIBCXX_EXPERIMENTAL_FS_FWD_H
@@ -52,7 +53,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
 
   /**
-   * @defgroup filesystem
+   * @defgroup filesystem Filesystem
    * @ingroup experimental
    *
    * Utilities for performing operations on file systems and their components,
index 6b7d4709ee5bee31919c406985c499c8e16452fb..534c51a236f5d9613f142c08c55f738b1a8b9e63 100644 (file)
@@ -22,8 +22,9 @@
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
-/** @file experimental/filesystem
- *  This is a TS C++ Library header.
+/** @file experimental/bits/fs_fwd.h
+ *  This is an internal header file, included by other library headers.
+ *  Do not attempt to use it directly. @headername{experimental/filesystem}
  */
 
 #ifndef _GLIBCXX_EXPERIMENTAL_FS_OPS_H
index 98820ad29b158b827dd8e6f7aeab062efb5a6cd4..2056fb392c4b0c36454f04156e7a5329df3367cf 100644 (file)
@@ -22,7 +22,7 @@
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
-/** @file experimental/fs_path.h
+/** @file experimental/bits/fs_path.h
  *  This is an internal header file, included by other library headers.
  *  Do not attempt to use it directly. @headername{experimental/filesystem}
  */
index 0eb4f70a93c054188b017ecc883ce7d9e3574837..96e49d860ff4316d396993c95e6176f8628c8dfb 100644 (file)
@@ -24,7 +24,7 @@
 
 /** @file experimental/bits/string_view.tcc
  *  This is an internal header file, included by other library headers.
- *  Do not attempt to use it directly. @headername{string_view}
+ *  Do not attempt to use it directly. @headername{experimental/string_view}
  */
 
 //
index 811235bfce4717e492201ba1ab51916efb2ebd22..f6e3fa0258ab2e5bdc035e16ad499620889a1d44 100644 (file)
  * @defgroup experimental Experimental
  *
  * Components specified by various Technical Specifications.
+ *
+ * As indicated by the std::experimental namespace and the  header paths,
+ * the contents of these Technical Specifications are experimental and not
+ * part of the C++ standard. As such the interfaces and implementations may
+ * change in the future, and there is <STRONG> no guarantee of compatibility
+ * between different GCC releases </STRONG> for these features.
  */
 
 #if __cplusplus <= 201103L
index 9931ad0557dc9abe931684ac0e9f4cce06e49cfe..ebeb4403b2b98d9087d9bcba3b4903de6c237c72 100644 (file)
@@ -23,7 +23,7 @@
 // <http://www.gnu.org/licenses/>.
 
 /** @file experimental/string_view
- *  This is a Standard C++ Library header.
+ *  This is a TS C++ Library header.
  */
 
 //
index da01e1a2d4d3b50871010f954597d1795cad4f4b..674fa9201258f4465d0a6d7581c8865766b6f214 100644 (file)
@@ -166,13 +166,8 @@ namespace __gnu_pbds
             class Node_Update,
             class Node,
             typename _Alloc>
-    struct bin_search_tree_traits<
-      Key,
-      null_type,
-      Cmp_Fn,
-      Node_Update,
-      Node,
-      _Alloc>
+    struct
+    bin_search_tree_traits<Key, null_type, Cmp_Fn, Node_Update, Node, _Alloc>
     {
     private:
       typedef types_traits<Key, null_type, _Alloc, false> type_traits;
index d6be839bd77e6872ac48a17a713bfbece83365e9..44df60c115b3a4a1aef7a209815440b635d9680b 100644 (file)
@@ -663,7 +663,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
     };
 
 #if __cplusplus >= 201103L
-  template<size_t _Nb, bool = _Nb < _GLIBCXX_BITSET_BITS_PER_ULL>
+  template<size_t _Nb, bool = (_Nb < _GLIBCXX_BITSET_BITS_PER_ULL)>
     struct _Sanitize_val
     {
       static constexpr unsigned long long
@@ -681,8 +681,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 #endif
 
   /**
-   *  @class bitset <bitset>
-   *
    *  @brief The %bitset class represents a @e fixed-size sequence of bits.
    *  @ingroup utilities
    *
index 5e5ced11efec3b3924389faf2c282045fccc3c17..8345d20ea9cee6de0b0eedd4515b2d2c7a4b0995 100644 (file)
@@ -87,7 +87,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
   };
 
-  /// recursive_mutex
+  /// The standard recursive mutex type.
   class recursive_mutex : private __recursive_mutex_base
   {
   public:
@@ -171,7 +171,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        }
     };
 
-  /// timed_mutex
+  /// The standard timed mutex type.
   class timed_mutex
   : private __mutex_base, public __timed_mutex_impl<timed_mutex>
   {
index 183179f25d1cb9af588d45fc9f11524a076a858e..77bddc32b95423194eb6647603c9d85f563b3979 100644 (file)
@@ -593,6 +593,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *  @param  __str  A string of '0' and '1' characters.
        *  @param  __pos  Index of the first character in @p __str to use.
        *  @param  __n    The number of characters to copy.
+       *  @param  __zero The character to use for unset bits.
+       *  @param  __one  The character to use for set bits.
+       *  @param  __alloc An allocator.
        *  @throw  std::out_of_range  If @p __pos is bigger the size of @p __str.
        *  @throw  std::invalid_argument  If a character appears in the string
        *                                 which is neither '0' nor '1'.
index 461adaa7da0bf2b0efa1b50379d9841e21301481..021ebd0b561f53052f62c1680a2e7efe720e4ccc 100644 (file)
@@ -334,6 +334,23 @@ for f in *__profile_*; do
     mv $f $newname
 done
 
+# Remove inline namespaces used for versioning.
+for f in *_V2_*; do
+    newname=`echo $f | sed 's/_V2_/::/'`
+    sed 's/::_V2::/::/g' $f > $newname
+    rm $f
+done
+for f in *_experimental_filesystem_v?_*; do
+    newname=`echo $f | sed 's/_filesystem_v._/::filesystem::/'`
+    sed 's/::filesystem::v.::/::filesystem::/g' $f > $newname
+    rm $f
+done
+for f in *experimental_fundamentals_v?_*; do
+    newname=`echo $f | sed 's/experimental_.*_v[[:digit:]]_/experimental::/'`
+    sed 's/::experimental::fundamentals_v[[:digit:]]::/::experimental::/g' $f > $newname
+    rm $f
+done
+
 # Then, clean up other top-level namespaces.
 for f in std_tr1_*; do
     newname=`echo $f | sed 's/^std_tr1_/std::tr1::/'`