This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
[v3] manual link checks
- From: Benjamin Kosnik <bkoz at redhat dot com>
- To: libstdc++ at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Mon, 11 Jan 2010 18:44:48 -0800
- Subject: [v3] manual link checks
For XML:
Runs W3C's link check against the docs, fixes up some issues there
(Seem like mailto markup is the biggest remaining offender for actual
errors, which seems minor.) And then I manually inspected (ugh) the
latest-doxygen links to re-point them where they are supposed to go.
There's got to be a better way to cross-link between doxygen and
docbook. Some minor additions to content.
For doxygen:
I removed some excess markup brought over from the profile-patch, and
then when double checking the man pages, noticed that C++0x nested
types were not being rewritten to "outer::inner" from "outer_inner"
like the previous nested types. Fixed.
tested x86/linux
-benjamin
2010-01-07 Benjamin Kosnik <bkoz@redhat.com>
* scripts/run_doxygen: Correct nested scope on the man pages.
* doc/xml/faq.xml: Edits, linkcheck, doxygen link reassociate.
* doc/xml/manual/mt_allocator.xml: Same.
* doc/xml/manual/allocator.xml: Same.
* doc/xml/manual/codecvt.xml: Same.
* doc/xml/manual/backwards_compatibility.xml: Same.
* doc/xml/manual/concurrency.xml: Same.
* doc/xml/manual/parallel_mode.xml: Same.
* doc/xml/manual/io.xml: Same.
* doc/xml/manual/support.xml: Same.
* doc/xml/manual/evolution.xml: Same.
* doc/xml/manual/using.xml: Same.
* doc/xml/manual/extensions.xml: Same.
* doc/xml/manual/appendix_contributing.xml: Same.
* doc/xml/manual/prerequisites.xml: Same.
* doc/xml/manual/diagnostics.xml: Same.
* doc/xml/manual/spine.xml: Same.
* doc/xml/manual/status_cxx200x.xml: Same.
* doc/xml/manual/test.xml: Same.
* doc/xml/spine.xml: Same.
* doc/html/*: Regenerate.
* include/profile/impl/profiler.h: Remove duplicate markup.
Index: include/profile/impl/profiler.h
===================================================================
--- include/profile/impl/profiler.h (revision 155826)
+++ include/profile/impl/profiler.h (working copy)
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// Copyright (C) 2009 Free Software Foundation, Inc.
+// Copyright (C) 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -52,11 +52,6 @@
#define _GLIBCXX_PROFILE_DATA(__name) \
__get_##__name()
-/**
- * @namespace std::__cxxprof_guard
- * @brief Mechanism to protect all __gnu_profile operations against
- * multithreaded and exception reentrance.
- */
namespace __gnu_profile
{
/** @brief Reentrance guard.
@@ -97,65 +92,58 @@
__x; \
} \
}
-}
-/**
- * @namespace std::__gnu_profile
- * @brief Implementation of profile extension.
- */
-namespace __gnu_profile
-{
-// Forward declarations of implementation functions.
-// Don't use any __gnu_profile:: in user code.
-// Instead, use the __profcxx... macros, which offer guarded access.
-bool __turn_on();
-bool __turn_off();
-bool __is_invalid();
-bool __is_on();
-bool __is_off();
-void __report(void);
-void __trace_hashtable_size_resize(const void*, size_t, size_t);
-void __trace_hashtable_size_destruct(const void*, size_t, size_t);
-void __trace_hashtable_size_construct(const void*, size_t);
-void __trace_vector_size_resize(const void*, size_t, size_t);
-void __trace_vector_size_destruct(const void*, size_t, size_t);
-void __trace_vector_size_construct(const void*, size_t);
-void __trace_hash_func_destruct(const void*, size_t, size_t, size_t);
-void __trace_hash_func_construct(const void*);
-void __trace_vector_to_list_destruct(const void*);
-void __trace_vector_to_list_construct(const void*);
-void __trace_vector_to_list_insert(const void*, size_t, size_t);
-void __trace_vector_to_list_iterate(const void*, size_t);
-void __trace_vector_to_list_invalid_operator(const void*);
-void __trace_vector_to_list_resize(const void*, size_t, size_t);
-void __trace_vector_to_list_find(const void*, size_t);
+ // Forward declarations of implementation functions.
+ // Don't use any __gnu_profile:: in user code.
+ // Instead, use the __profcxx... macros, which offer guarded access.
+ bool __turn_on();
+ bool __turn_off();
+ bool __is_invalid();
+ bool __is_on();
+ bool __is_off();
+ void __report(void);
+ void __trace_hashtable_size_resize(const void*, size_t, size_t);
+ void __trace_hashtable_size_destruct(const void*, size_t, size_t);
+ void __trace_hashtable_size_construct(const void*, size_t);
+ void __trace_vector_size_resize(const void*, size_t, size_t);
+ void __trace_vector_size_destruct(const void*, size_t, size_t);
+ void __trace_vector_size_construct(const void*, size_t);
+ void __trace_hash_func_destruct(const void*, size_t, size_t, size_t);
+ void __trace_hash_func_construct(const void*);
+ void __trace_vector_to_list_destruct(const void*);
+ void __trace_vector_to_list_construct(const void*);
+ void __trace_vector_to_list_insert(const void*, size_t, size_t);
+ void __trace_vector_to_list_iterate(const void*, size_t);
+ void __trace_vector_to_list_invalid_operator(const void*);
+ void __trace_vector_to_list_resize(const void*, size_t, size_t);
+ void __trace_vector_to_list_find(const void*, size_t);
-void __trace_list_to_slist_destruct(const void*);
-void __trace_list_to_slist_construct(const void*);
-void __trace_list_to_slist_rewind(const void*);
-void __trace_list_to_slist_operation(const void*);
+ void __trace_list_to_slist_destruct(const void*);
+ void __trace_list_to_slist_construct(const void*);
+ void __trace_list_to_slist_rewind(const void*);
+ void __trace_list_to_slist_operation(const void*);
-void __trace_list_to_vector_destruct(const void*);
-void __trace_list_to_vector_construct(const void*);
-void __trace_list_to_vector_insert(const void*, size_t, size_t);
-void __trace_list_to_vector_iterate(const void*, size_t);
-void __trace_list_to_vector_invalid_operator(const void*);
-void __trace_list_to_vector_resize(const void*, size_t, size_t);
+ void __trace_list_to_vector_destruct(const void*);
+ void __trace_list_to_vector_construct(const void*);
+ void __trace_list_to_vector_insert(const void*, size_t, size_t);
+ void __trace_list_to_vector_iterate(const void*, size_t);
+ void __trace_list_to_vector_invalid_operator(const void*);
+ void __trace_list_to_vector_resize(const void*, size_t, size_t);
-void __trace_list_to_set_destruct(const void*);
-void __trace_list_to_set_construct(const void*);
-void __trace_list_to_set_insert(const void*, size_t, size_t);
-void __trace_list_to_set_iterate(const void*, size_t);
-void __trace_list_to_set_invalid_operator(const void*);
-void __trace_list_to_set_find(const void*, size_t);
+ void __trace_list_to_set_destruct(const void*);
+ void __trace_list_to_set_construct(const void*);
+ void __trace_list_to_set_insert(const void*, size_t, size_t);
+ void __trace_list_to_set_iterate(const void*, size_t);
+ void __trace_list_to_set_invalid_operator(const void*);
+ void __trace_list_to_set_find(const void*, size_t);
-void __trace_map_to_unordered_map_construct(const void*);
-void __trace_map_to_unordered_map_invalidate(const void*);
-void __trace_map_to_unordered_map_insert(const void*, size_t, size_t);
-void __trace_map_to_unordered_map_erase(const void*, size_t, size_t);
-void __trace_map_to_unordered_map_iterate(const void*, size_t);
-void __trace_map_to_unordered_map_find(const void*, size_t);
-void __trace_map_to_unordered_map_destruct(const void*);
+ void __trace_map_to_unordered_map_construct(const void*);
+ void __trace_map_to_unordered_map_invalidate(const void*);
+ void __trace_map_to_unordered_map_insert(const void*, size_t, size_t);
+ void __trace_map_to_unordered_map_erase(const void*, size_t, size_t);
+ void __trace_map_to_unordered_map_iterate(const void*, size_t);
+ void __trace_map_to_unordered_map_find(const void*, size_t);
+ void __trace_map_to_unordered_map_destruct(const void*);
} // namespace __gnu_profile
// Master switch turns on all diagnostics that are not explicitly turned off.
Index: scripts/run_doxygen
===================================================================
--- scripts/run_doxygen (revision 155826)
+++ scripts/run_doxygen (working copy)
@@ -275,6 +275,18 @@
# Who the fsck would "man std_vector" when the class isn't named that?
# First, deal with nested namespaces.
+for f in *chrono_*; do
+ newname=`echo $f | sed 's/chrono_/chrono::/'`
+ mv $f $newname
+done
+for f in *__debug_*; do
+ newname=`echo $f | sed 's/__debug_/__debug::/'`
+ mv $f $newname
+done
+for f in *decimal_*; do
+ newname=`echo $f | sed 's/decimal_/decimal::/'`
+ mv $f $newname
+done
for f in *__detail_*; do
newname=`echo $f | sed 's/__detail_/__detail::/'`
mv $f $newname
@@ -287,6 +299,14 @@
newname=`echo $f | sed 's/__profile_/__profile::/'`
mv $f $newname
done
+for f in *__atomic0_*; do
+ newname=`echo $f | sed 's/__atomic0_/__atomic0::/'`
+ mv $f $newname
+done
+for f in *__atomic2_*; do
+ newname=`echo $f | sed 's/__atomic2_/__atomic2::/'`
+ mv $f $newname
+done
# Then, clean up other top-level namespaces.
for f in std_tr1_*; do
@@ -317,19 +337,19 @@
newname=`echo $f | sed 's/^__gnu_pbds_/__gnu_pbds::/'`
mv $f $newname
done
-for f in __atomic0_*; do
- newname=`echo $f | sed 's/^__atomic0_/std::__atomic0::/'`
- mv $f $newname
-done
-for f in __atomic2_*; do
- newname=`echo $f | sed 's/^__atomic2_/std::__atomic2::/'`
- mv $f $newname
-done
for f in __cxxabiv1_*; do
newname=`echo $f | sed 's/^__cxxabiv1_/abi::/'`
mv $f $newname
done
+# Then piecemeal nested classes
+for f in *__future_base_*; do
+ newname=`echo $f | sed 's/__future_base_/__future_base::/'`
+ mv $f $newname
+done
+
+
+
# Generic removal bits, where there are things in the generated man
# pages that need to be killed.
for f in *_libstdc__-v3_*; do
Index: doc/xml/faq.xml
===================================================================
--- doc/xml/faq.xml (revision 155826)
+++ doc/xml/faq.xml (working copy)
@@ -1146,7 +1146,7 @@
right <ulink url="http://www.ansi.org">here</ulink>. (And if
you've already registered with them, clicking this link will take
you to directly to the place where you can
- <ulink url="http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%3A2003">buy the standard on-line</ulink>.
+ <ulink url="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003">buy the standard on-line</ulink>.
</para>
<para>
Who is your country's member body? Visit the
Index: doc/xml/manual/mt_allocator.xml
===================================================================
--- doc/xml/manual/mt_allocator.xml (revision 155826)
+++ doc/xml/manual/mt_allocator.xml (working copy)
@@ -308,7 +308,7 @@
as part of a container's constructor. However, this assumption is
implementation-specific, and subject to change. For an example of a
pool that frees memory, see the following
- <ulink url="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc?view=markup">
+ <ulink url="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc?view=markup">
example.</ulink>
</para>
Index: doc/xml/manual/allocator.xml
===================================================================
--- doc/xml/manual/allocator.xml (revision 155826)
+++ doc/xml/manual/allocator.xml (working copy)
@@ -215,9 +215,9 @@
</para>
<para>
Test source for
- <ulink url="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc?view=markup">sequence</ulink>
+ <ulink url="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc?view=markup">sequence</ulink>
and
- <ulink url="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/producer_consumer/associative.cc?view=markup">associative</ulink>
+ <ulink url="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc?view=markup">associative</ulink>
containers.
</para>
</listitem>
@@ -604,7 +604,7 @@
</publisher>
<biblioid>
- <ulink url="http://www.langer.camelot.de/Articles/C++Report/Allocators/Allocators.html">
+ <ulink url="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html">
</ulink>
</biblioid>
</biblioentry>
@@ -649,10 +649,6 @@
<holder></holder>
</copyright>
- <biblioid>
- <ulink url="http://home.earthlink.net/~brimar/yalloc/">
- </ulink>
- </biblioid>
</biblioentry>
</bibliography>
Index: doc/xml/manual/codecvt.xml
===================================================================
--- doc/xml/manual/codecvt.xml (revision 155826)
+++ doc/xml/manual/codecvt.xml (working copy)
@@ -701,7 +701,7 @@
</author>
<biblioid>
- <ulink url="ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html">
+ <ulink url="http://tldp.org/HOWTO/Unicode-HOWTO.html">
</ulink>
</biblioid>
Index: doc/xml/manual/backwards_compatibility.xml
===================================================================
--- doc/xml/manual/backwards_compatibility.xml (revision 155826)
+++ doc/xml/manual/backwards_compatibility.xml (working copy)
@@ -825,7 +825,7 @@
<para>
An extension is available that implements this.
<filename class="headerfile">ext/stdio_filebuf.h</filename> contains a derived class called
- <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00063.html"><code>__gnu_cxx::stdio_filebuf</code></ulink>.
+ <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html"><code>__gnu_cxx::stdio_filebuf</code></ulink>.
This class can be constructed from a C <code>FILE*</code> or a file
descriptor, and provides the <code>fd()</code> function.
</para>
Index: doc/xml/manual/concurrency.xml
===================================================================
--- doc/xml/manual/concurrency.xml (revision 155826)
+++ doc/xml/manual/concurrency.xml (working copy)
@@ -276,7 +276,7 @@
</para>
<para>Within libstdc++ sources, all calls to underlying thread functionality
-use this layer. More detail as to the specific interface can be found in the source <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01195.html">documentation</ulink>.
+use this layer. More detail as to the specific interface can be found in the source <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00883_source.html">documentation</ulink>.
</para>
<para>By design, the gthread layer is interoperable with the types,
Index: doc/xml/manual/parallel_mode.xml
===================================================================
--- doc/xml/manual/parallel_mode.xml (revision 155826)
+++ doc/xml/manual/parallel_mode.xml (working copy)
@@ -729,7 +729,7 @@
<code>__gnu_parallel::_Settings::set</code>, respectively.
Please note that the first call return a const object, so direct manipulation
is forbidden.
-See <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00076.html">
+See <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01005.html">
<filename class="headerfile">settings.h</filename></ulink>
for complete details.
</para>
Index: doc/xml/manual/io.xml
===================================================================
--- doc/xml/manual/io.xml (revision 155826)
+++ doc/xml/manual/io.xml (working copy)
@@ -222,9 +222,9 @@
}
</programlisting>
<para>Try it yourself! More examples can be found in 3.1.x code, in
- <code>include/ext/*_filebuf.h</code>, and on
- <ulink url="http://www.informatik.uni-konstanz.de/~kuehl/c++/iostream/">Dietmar
- Kühl's IOStreams page</ulink>.
+ <code>include/ext/*_filebuf.h</code>, and in this article by James Kanze:
+ <ulink url="http://kanze.james.neuf.fr/articles/fltrsbf1.html">Filtering
+ Streambufs</ulink>.
</para>
</sect1>
Index: doc/xml/manual/support.xml
===================================================================
--- doc/xml/manual/support.xml (revision 155826)
+++ doc/xml/manual/support.xml (working copy)
@@ -112,7 +112,7 @@
defined-aspects of the fundamental types. The traits classes --
fourteen in total -- are all specializations of the template class
<classname>numeric_limits</classname>, documented <ulink
- url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00485.html">here</ulink>
+ url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00593.html">here</ulink>
and defined as follows:
</para>
Index: doc/xml/manual/evolution.xml
===================================================================
--- doc/xml/manual/evolution.xml (revision 155826)
+++ doc/xml/manual/evolution.xml (working copy)
@@ -615,6 +615,12 @@
Audit for application of function attributes notrow, const, pure, and noreturn.
</para>
+<para>
+The default behavior for comparing typeinfo names changed, so
+in <filename class="headerfile">typeinfo</filename>, <literal>__GXX_MERGED_TYPEINFO_NAMES</literal>
+now defaults to zero.
+</para>
+
<para> Extensions modified: <filename class="headerfile">ext/throw_allocator.h</filename>.
</para>
</sect2>
Index: doc/xml/manual/using.xml
===================================================================
--- doc/xml/manual/using.xml (revision 155826)
+++ doc/xml/manual/using.xml (working copy)
@@ -857,7 +857,7 @@
are set based on autoconf-tests to either "" or i.e. <code>using
std::string;</code> (depending on whether the system has
libstdc++ in <code>std::</code> or not). (ideas from
- <email>llewelly@dbritsch.dsl.xmission.com</email>, Karl Nelson <email>kenelson@ece.ucdavis.edu</email>)
+ Llewelly and Karl Nelson)
</para>
Index: doc/xml/manual/extensions.xml
===================================================================
--- doc/xml/manual/extensions.xml (revision 155826)
+++ doc/xml/manual/extensions.xml (working copy)
@@ -483,7 +483,7 @@
the <code>fd()</code> function were removed from the standard
filebuf. Instead, <code><ext/stdio_filebuf.h></code> contains
a derived class called
- <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00063.html"><code>__gnu_cxx::stdio_filebuf</code></ulink>.
+ <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html"><code>__gnu_cxx::stdio_filebuf</code></ulink>.
This class can be constructed from a C <code>FILE*</code> or a file
descriptor, and provides the <code>fd()</code> function.
</para></listitem>
@@ -510,7 +510,7 @@
</para>
<para>
If you have read the <ulink
- url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaceabi.html">source
+ url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01115.html">source
documentation for <code>namespace abi</code></ulink> then you are
aware of the cross-vendor C++ ABI in use by GCC. One of the
exposed functions is used for demangling,
Index: doc/xml/manual/appendix_contributing.xml
===================================================================
--- doc/xml/manual/appendix_contributing.xml (revision 155826)
+++ doc/xml/manual/appendix_contributing.xml (working copy)
@@ -52,7 +52,7 @@
organization is ANSI and their web-site is right
<ulink url="http://www.ansi.org">here.</ulink>
(And if you've already registered with them, clicking this link will take you to directly to the place where you can
- <ulink url="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO/IEC%2014882:2003">buy the standard on-line.)</ulink>
+ <ulink url="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003">buy the standard on-line.)</ulink>
</para>
</listitem>
Index: doc/xml/manual/prerequisites.xml
===================================================================
--- doc/xml/manual/prerequisites.xml (revision 155826)
+++ doc/xml/manual/prerequisites.xml (working copy)
@@ -31,7 +31,7 @@
<para>As of GCC 4.0.1 the minimum version of binutils required to build
libstdc++ is <code>2.15.90.0.1.1</code>. You can get snapshots
(as well as releases) of binutils from
- <ulink url="ftp://sources.redhat.com/pub/binutils">
+ <ulink url="ftp://sources.redhat.com/pub/binutils/">
ftp://sources.redhat.com/pub/binutils</ulink>.
Older releases of libstdc++ do not require such a recent version,
but to take full advantage of useful space-saving features and
Index: doc/xml/manual/diagnostics.xml
===================================================================
--- doc/xml/manual/diagnostics.xml (revision 155826)
+++ doc/xml/manual/diagnostics.xml (working copy)
@@ -44,7 +44,7 @@
<para>
Derived from this are several classes that may have a
<classname>string</classname> member: a full hierarchy can be
- found in the <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00378.html">source documentation</ulink>.
+ found in the <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00460.html">source documentation</ulink>.
</para>
</sect1>
Index: doc/xml/manual/spine.xml
===================================================================
--- doc/xml/manual/spine.xml (revision 155826)
+++ doc/xml/manual/spine.xml (working copy)
@@ -11,6 +11,7 @@
<bookinfo>
<copyright>
<year>2009</year>
+ <year>2010</year>
<holder>
<ulink url="http://www.fsf.org">FSF</ulink>
</holder>
Index: doc/xml/manual/status_cxx200x.xml
===================================================================
--- doc/xml/manual/status_cxx200x.xml (revision 155826)
+++ doc/xml/manual/status_cxx200x.xml (working copy)
@@ -16,7 +16,7 @@
<para>
This table is based on the table of contents of ISO/IEC
-Doc No: N2857=09-0047 Date: 2009-03-23
+Doc No: N3000=09-0190 Date: 2009-11-09
Working Draft, Standard for Programming Language C++
</para>
Index: doc/xml/manual/test.xml
===================================================================
--- doc/xml/manual/test.xml (revision 155826)
+++ doc/xml/manual/test.xml (working copy)
@@ -913,8 +913,15 @@
<para>
Of particular interest is extending testing to algorithms and
- then to parallel algorithms. Also io, and locales.
+ then to parallel algorithms. Also io and locales.
</para>
+
+ <para>
+ The test instrumentation should also be extended to add
+ instrumentation to <classname>iterator</classname>
+ and <classname>const_iterator</classname> types that throw
+ conditionally on iterator operations.
+ </para>
</listitem>
</itemizedlist>
</sect4>
Index: doc/xml/spine.xml
===================================================================
--- doc/xml/spine.xml (revision 155826)
+++ doc/xml/spine.xml (working copy)
@@ -21,6 +21,7 @@
<year>2007</year>
<year>2008</year>
<year>2009</year>
+ <year>2010</year>
<holder>
<ulink url="http://www.fsf.org">FSF</ulink>
</holder>