aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Edwards <pme@sourceware.cygnus.com>2000-05-03 16:11:03 +0000
committerPhil Edwards <pme@gcc.gnu.org>2000-05-03 16:11:03 +0000
commit754ac8f7b2d97cbb4adbb355865fd01e69c73a1e (patch)
treefc3b2f3e5f214caaec0a025d146a3cd3c1c0d38d
parent1920de4701bceb07cea0b0c657c35577b8e47dde (diff)
downloadgcc-754ac8f7b2d97cbb4adbb355865fd01e69c73a1e.zip
gcc-754ac8f7b2d97cbb4adbb355865fd01e69c73a1e.tar.gz
gcc-754ac8f7b2d97cbb4adbb355865fd01e69c73a1e.tar.bz2
footer.html: Update to see if it takes effect.
2000-05-03 Phil Edwards <pme@sourceware.cygnus.com> Felix Natter <fnatter@gmx.net> * docs/footer.html: Update to see if it takes effect. * docs/thanks.html: More people. * docs/17_intro/headers_cc.txt: Copy from testsuite, since that can't be seen from the web pages. Rename for browser-friendliness... * docs/17_intro/howto.html: ...and update here. * docs/17_intro/porting-howto.html: Changes from Felix. * docs/gccrebuild.html: Mention v3->egcs move. * docs/faq/index.html: Ditto. Also misc tweaks and URL updates. * docs/faq/index.txt: Regenerate. Co-Authored-By: Felix Natter <fnatter@gmx.net> From-SVN: r33631
-rw-r--r--libstdc++-v3/ChangeLog13
-rw-r--r--libstdc++-v3/docs/17_intro/headers_cc.txt83
-rw-r--r--libstdc++-v3/docs/17_intro/howto.html6
-rw-r--r--libstdc++-v3/docs/17_intro/porting-howto.html200
-rw-r--r--libstdc++-v3/docs/faq/index.html47
-rw-r--r--libstdc++-v3/docs/faq/index.txt126
-rw-r--r--libstdc++-v3/docs/footer.html4
-rw-r--r--libstdc++-v3/docs/gccrebuild.html9
-rw-r--r--libstdc++-v3/docs/thanks.html18
9 files changed, 344 insertions, 162 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 603fdf2..00d3c92 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,16 @@
+2000-05-03 Phil Edwards <pme@sourceware.cygnus.com>
+ Felix Natter <fnatter@gmx.net>
+
+ * docs/footer.html: Update to see if it takes effect.
+ * docs/thanks.html: More people.
+ * docs/17_intro/headers_cc.txt: Copy from testsuite, since that can't
+ be seen from the web pages. Rename for browser-friendliness...
+ * docs/17_intro/howto.html: ...and update here.
+ * docs/17_intro/porting-howto.html: Changes from Felix.
+ * docs/gccrebuild.html: Mention v3->egcs move.
+ * docs/faq/index.html: Ditto. Also misc tweaks and URL updates.
+ * docs/faq/index.txt: Regenerate.
+
2000-05-01 Benjamin Kosnik <bkoz@redhat.com>
* config/cpu/powerpc/bits/atomicity.h (__exchange_and_add): More
diff --git a/libstdc++-v3/docs/17_intro/headers_cc.txt b/libstdc++-v3/docs/17_intro/headers_cc.txt
new file mode 100644
index 0000000..d95f17a
--- /dev/null
+++ b/libstdc++-v3/docs/17_intro/headers_cc.txt
@@ -0,0 +1,83 @@
+// 1999-05-12 bkoz
+
+// Copyright (C) 1999 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 of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 17.4.1.2 Headers
+
+
+// "C++" headers
+#include <algorithm>
+#include <bitset>
+#include <complex>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <ios>
+#include <iosfwd>
+#include <iostream>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <list>
+#include <locale>
+#include <map>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <sstream>
+#include <stack>
+#include <stdexcept>
+#include <streambuf>
+#include <string>
+#include <typeinfo>
+#include <utility>
+#include <valarray>
+#include <vector>
+
+// "C" headers
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <clocale>
+#include <cmath>
+#include <csetjmp>
+#include <csignal>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+
+// "C" headers that might not work if wchar_t support is disabled.
+#include <bits/c++config.h>
+#if _GLIBCPP_USE_WCHAR_T
+ #include <cwchar>
+ #include <cwctype>
+#endif
+
+int main() { }
diff --git a/libstdc++-v3/docs/17_intro/howto.html b/libstdc++-v3/docs/17_intro/howto.html
index 25642b1..e3b9e26 100644
--- a/libstdc++-v3/docs/17_intro/howto.html
+++ b/libstdc++-v3/docs/17_intro/howto.html
@@ -9,7 +9,7 @@
<TITLE>libstdc++-v3 HOWTO: Chapter 17</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/docs/18_support/">
<LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $ -->
+<!-- $Id: howto.html,v 1.2 2000/04/25 06:39:48 bkoz Exp $ -->
</HEAD>
<BODY>
@@ -46,7 +46,7 @@
available to you, no matter how.
</P>
<P>The names of the headers can be easily seen in
- <A HREF="../testsuite/17_intro/headers.cc">this source code</A>,
+ <A HREF="headers_cc.txt"><TT>testsuite/17_intro/headers.cc</TT></A>,
which is a small testbed we use to make certain that the headers
all compile and run.
</P>
@@ -147,7 +147,7 @@
Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sourceware.cygnus.com">Phil Edwards</A> or
<A HREF="mailto:gdr@egcs.cygnus.com">Gabriel Dos Reis</A>.
-<BR> $Id: howto.html,v 1.1 2000/04/21 20:33:31 bkoz Exp $
+<BR> $Id: howto.html,v 1.2 2000/04/25 06:39:48 bkoz Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/17_intro/porting-howto.html b/libstdc++-v3/docs/17_intro/porting-howto.html
index 024aac7..4d4c254 100644
--- a/libstdc++-v3/docs/17_intro/porting-howto.html
+++ b/libstdc++-v3/docs/17_intro/porting-howto.html
@@ -15,9 +15,18 @@
<li><a href = "#nocreate">File-flags: <tt>ios::nocreate</tt> and
<tt>ios::noreplace</tt></a>
<li><a href = "#headers">The new headers</a>
+ <li><a href = "#iterators">Iterator-changes</a>
+ <li><a href = "#macros">Libc-macros</a>
<li><a href = "#about">Comments, suggestions, corrections, questions...</a>
</center>
+ <p>
+In the following, when I say portable, I will refer to "portable among ISO
+14882-implementations". On the other hand, if I say "backportable" or
+"conservative", I am talking about "compiles with older
+libstdc++-implementations".
+</p>
+
<a name = "std">
<h2>Namespace std::</h2>
</a>
@@ -25,29 +34,40 @@
The latest C++-standard (ISO-14882) requires that the standard C++-library
is defined in namespace std::. Thus, to use classes from the standard c++
library, you can do one of three things:
-<ul>
- <li>wrap your code in <tt>namespace std { ... }</tt>
-=> This is not an option because only symbols from the standard c++-library are
-defined in namespace std::.
- <li>put a kind of <dfn>using-declaration</dfn> in your source
-(either <tt>using namespace std;</tt> or i.e. <tt>using std::string;</tt>)
-=> works well for source-files, but cannot be used in header-files
- <li>use a <dfn>fully qualified name</dfn> for each libstdc++-symbol
-(i.e. <tt>std::string</tt>, <tt>std::cout</tt>)
-=> can always be used
-</ul>
+ <ul>
+ <li>wrap your code in <tt>namespace std { ... }</tt> => This is not an
+ option because only symbols from the standard c++-library are defined in
+ namespace std::.
+
+ <li>put a kind of <dfn>using-declaration</dfn> in your source (either
+ <tt>using namespace std;</tt> or i.e. <tt>using std::string;</tt>)
+ => works well for source-files, but cannot be used in header-files
+
+ <li>use a <dfn>fully qualified name</dfn> for each libstdc++-symbol
+ (i.e. <tt>std::string</tt>, <tt>std::cout</tt>) => can always be used
+ </ul>
+</p>
+ <p>
+Because there are many compilers which still use an implementation that
+does not have the standard C++-library in namespace <tt>std::</tt>, some
+care is required to support these as well.
+</p>
+ <p>
+Namespace back-portability-issues are generally not a problem with g++,
+because versions of g++ that do not have libstdc++ in <tt>std::</tt> use
+<tt>-fno-honor-std</tt> (ignore <tt>std::</tt>, <tt>:: = std::</tt>) by
+default. That is, the responsibility for enabling or disabling
+<tt>std::</tt> is on the user; the maintainer does not have to care about it.
+This probably applies to some other compilers as well.
</p>
<p>
-Namespace portability-issues are not a problem with g++, because versions
-of g++ that do not have libstdc++ in std:: use <tt>-fno-honor-std</tt>
-(ignore <tt>std::</tt>, <tt>:: = std::</tt>) by default. This probably
-applies to some other compilers as well.
-
The following sections list some possible solutions to support compilers
that cannot ignore std::.
</p>
+ <a name = "gtkmm">
<h3>Using <dfn>namespace composition</dfn> if the project uses a separate
namespace</h3>
+ </a>
<p>
<a href = "http://gtkmm.sourcforge.net">Gtk--</a> defines most of its
@@ -55,8 +75,7 @@ classes in namespace Gtk::. Thus, it was possible to adapt Gtk-- to
namespace std:: by using a C++-feature called <dfn>namespace
composition</dfn>. This is what happens if you put a
<dfn>using</dfn>-declaration into a namespace-definition: the imported
-symbol(s) gets imported into the currently active namespace(s). This is
-what it looks like in Gtk--:
+symbol(s) gets imported into the currently active namespace(s). For example:
<pre>
namespace Gtk {
using std::string;
@@ -64,16 +83,23 @@ namespace Gtk {
}
</pre>
In this example, <tt>std::string</tt> gets imported into namespace Gtk::.
-The result is that you don't have to use <tt>std::string</tt> in this header,
-but still <tt>std::string</tt> does not get imported into user-space (the
-global namespace ::) unless the user does <tt>using namespace Gtk;</tt>
-(which is not recommended practice for Gtk--, so it is not a problem).
+The result is that you don't have to use <tt>std::string</tt> in this
+header, but still <tt>std::string</tt> does not get imported into
+user-space (the global namespace ::) unless the user does <tt>using
+namespace Gtk;</tt> (which is not recommended practice for Gtk--, so it is
+not a problem). Additionally, the <tt>using</tt>-declarations are wrapped
+in macros that are set based on autoconf-tests to either "" or
+i.e. <tt>using std::string;</tt> (depending on whether the system has
+libstdc++ in <tt>std::</tt> or not).
+(ideas from llewelly@dbritsch.dsl.xmission.com,
+Karl Nelson <kenelson@ece.ucdavis.edu>)
</p>
- <h3>Defining an empty namespace std for backwards-compatibility</h3>
+ <h3>Defining an empty namespace std</h3>
<p>
-By defining an (empty) namespace std:: before using it, you can avoid
-getting errors on systems where no part of the library is in std:
+By defining an (empty) namespace <tt>std::</tt> before using it, you can
+avoid getting errors on systems where no part of the library is in
+namespace std:
<pre>
namespace std { }
using namespace std;
@@ -82,12 +108,12 @@ using namespace std;
<h3>Avoid to use fully qualified names (i.e. std::string)</h3>
<p>
If some compilers complain about <tt>using std::string;</tt>, and if the
-hack for gtk-- mentioned above does not work, then it might be a good idea
+"hack" for gtk-- mentioned above does not work, then it might be a good idea
to define a macro <tt>NS_STD</tt>, which is defined to either "" or "std"
based on an autoconf-test. Then you should be able to use
<tt>NS_STD::string</tt>, which will evaluate to <tt>::string</tt> ("string
in the global namespace") on systems that do not put string in std::.
-(This is untested and might not even be necessary)
+(This is untested)
</p>
<h3>How some open-source-projects deal with this</h3>
@@ -103,7 +129,7 @@ in the global namespace") on systems that do not put string in std::.
<tr><td><a href = "http://www.mnemonic.org">mnemonic</a></td> <td>none</td>
</tr>
<tr><td><a href = "http://libsigc.sourceforge.net">libsigc++</a></td>
- <td>portable-impl</td>
+ <td>conservative-impl</td>
</tr>
</table>
@@ -117,11 +143,14 @@ in the global namespace") on systems that do not put string in std::.
<td>none</td> <td>no namespace std at all</td>
</tr>
<tr>
- <td>portable-impl</td> <td>wrap all namespace-handling in macros to support
- compilers without namespace-support (no libstdc++ used in headers)</td>
+ <td>conservative-impl</td> <td>wrap all namespace-handling in macros to
+ support compilers without namespace-support (no libstdc++ used in
+ headers)</td>
</tr>
</table>
-
+As you can see, this currently lacks an example of a project which uses
+libstdc++-symbols in headers in a back-portable way
+(except for the <a href = "#gtkmm">Gtk-- "hack"</a>).
</p>
<a name = "nocreate">
<h2>there is no ios::nocreate/ios::noreplace in ISO 14882</h2>
@@ -136,7 +165,8 @@ input-streams.
For output streams, "nocreate" is probably the default, unless you specify
<tt>std::ios::trunc</tt> ? To be safe, you can open the file for
reading, check if it has been opened, and then decide whether you want to
-create/replace or not.
+create/replace or not. To my knowledge, even older implementations support
+<tt>app</tt>, <tt>ate</tt> and <tt>trunc</tt> (except for <tt>app</tt> ?).
</p>
<a name = "attach">
<h2><tt>stream::attach(int fd)</tt> is not in the standard any more</h2>
@@ -166,32 +196,108 @@ headers and tell users of old compilers that they should create links
(which is what they will have to do sometime anyway).
</p>
- <h3><tt>&lt;ctype.h&gt;</tt> introduces ambiguity when used with
- <tt>&lt;cctype&gt;</tt></h3>
- <p>
-The best solution I came up with so far is to include <tt>cctype</tt>
-instead of <tt>ctype.h</tt> wherever possible, and then use fully
-qualified names to refer to the libstdc++-versions: std::islower,
-std::isalnum etc. (you will need to as soon as any header includes
-<tt>&lt;ctype.h&gt;</tt>, because then there will be an ambiguity with the
-C-versions in the global namespace defined in <tt>&lt;ctype.h&gt;</tt>)
+ <a name = "cheaders">
+ <h3>New headers replacing C-headers</h3>
+ </a>
+ <p>
+You should not use the C-headers (except for system-level headers) from C++
+programs. Instead, you should use a set of headers that are named by
+prepending 'c' and, as usual, ommiting the extension (.h). For example,
+instead of using <tt>&lt;math.h&gt;</tt>, you should use
+<tt>&lt;cmath&gt;</tt>. The standard specifies that if you include the
+C-style header (<tt>&lt;math.h&gt;</tt> in this case), the symbols will be
+available both in the global namespace and in namespace <tt>std::</tt>
+(libstdc++-v3, version 2.90.8 currently puts them in <tt>std::</tt> only)
+On the other hand, if you include only the new header
+(i.e. <tt>&lt;cmath&gt;</tt>), the symbols will only be defined in
+namespace <tt>std::</tt> (and macros will be converted to
+inline-functions).
</p>
-
+ <p>
+For more information on this, and for information on how the GNU C++
+implementation reuses ("shadows") the C library-functions, have
+a look at <a href = "http://www.cantrip.org/cheaders.html">www.cantrip.org</a>.
+</p>
+
<h3><tt>&lt;fstream&gt;</tt> does not define <tt>std::cout</tt>,
<tt>std::cin</tt> etc.</h3>
<p>
In previous versions of the standard, <tt>&lt;fstream.h&gt;</tt>,
<tt>&lt;ostream.h&gt;</tt> and <tt>&lt;istream.h&gt;</tt> used to define
-<tt>cout</tt>, <tt>cin</tt> and so on. With libstdc++-v3, you need
-to include <tt>&lt;iostream&gt;</tt> to define these.
+<tt>cout</tt>, <tt>cin</tt> and so on. Because of the templatized iostreams
+in libstdc++-v3, you need to include <tt>&lt;iostream&gt;</tt> explicitly
+to define these.
+</p>
+
+ <a name = "iterators">
+ <h2>Iterators</h2>
+ </a>
+ <p>
+The following are not proper uses of iterators, but may be working fixes
+for existing uses of iterators.
+ <ul>
+ <li>you cannot do <tt>ostream::operator<<(iterator)</tt> to print the
+ address of the iterator => use <tt><< &*iterator</tt> instead ?
+ <li>you cannot clear an iterator's reference (<tt>iterator = 0</tt>)
+ => use <tt>iterator = iterator_type();</tt> ?
+ <li><tt>if (iterator)</tt> won't work any more
+ => use <tt>if (iterator != iterator_type())</tt> ?
+ </ul>
</p>
+
+ <a name = "macros">
+ <h2>Libc-macros (i.e. <tt>isspace</tt> from <tt>&lt;cctype&gt;</tt>)</h2>
+ </a>
+ <p>
+Glibc 2.0.x and 2.1.x define the <tt>&lt;ctype.h&gt;</tt>-functionality
+as macros (isspace, isalpha etc.). Libstdc++-v3 "shadows" these macros
+as described in the <a href = "#cheaders">section on C-headers</a>.
+</p>
+ <p>
+Older implementations of libstdc++ (g++-2 for egcs 1.x and g++-3 for
+gcc 2.95.2), however, keep these functions as macros, and so it is not
+back-portable to use fully qualified names. For example:
+<pre>
+#include &lt;cctype&gt;
+int main() { std::isspace('X'); }
+</pre>
+will result in something like this (unless using g++-v3):
+<pre>
+std:: (__ctype_b[(int) ( ( 'X' ) )] & (unsigned short int) _ISspace ) ;
+</pre>
+Another problem arises if you put a <tt>using namespace std;</tt>
+declaration at the top, and include <tt>&lt;ctype.h&gt;</tt>. This will
+result in ambiguities between the definitions in the global namespace
+(<tt>&lt;ctype.h&gt;</tt>) and the definitions in namespace <tt>std::</tt>
+(<tt>&lt;cctype&gt;</tt>).
+</p>
+ <p>
+One solution I can think of is to test for -v3 using autoconf-macros, and
+define macros for each of the C-functions (maybe that is possible with one
+"wrapper" macro as well ?).
+</p>
+ <p>
+Another solution which would fix g++ is to tell the user to modify
+a header-file so that g++-2 (egcs 1.x) and g++-3 (gcc 2.95.2)
+enable a macro which tells &lt;ctype.h&gt; to define functions instead of
+macros:
+<pre>
+// This keeps isanum, et al from being propagated as macros.
+#if __linux__
+#define __NO_CTYPE 1
+#endif
+
+[ now include &lt;ctype.h&gt; ]
+</pre>
+</p>
+
<a name = "about">
<h2>About...</h2>
</a>
<p>
-Please send any experience, additions, corrections or questions to <a href =
-"mailto:fnatter@gmx.net">fnatter@gmx.net</a> or for discussion to
-the libstdc++-v3-mailing-list.
+Please send any experience, additions, corrections or questions to <a href
+= "mailto:fnatter@gmx.net">fnatter@gmx.net</a> or for discussion to the
+libstdc++-v3-mailing-list.
</p>
</body>
diff --git a/libstdc++-v3/docs/faq/index.html b/libstdc++-v3/docs/faq/index.html
index 12c7b3d..e516fe1 100644
--- a/libstdc++-v3/docs/faq/index.html
+++ b/libstdc++-v3/docs/faq/index.html
@@ -13,7 +13,7 @@
** Locations of "the most recent snapshot is the Nth" text are
** answers 1_1, 1_4, 4_1, 5_6.
-->
-<!-- $Id: index.html,v 1.21 2000/03/26 03:44:35 pme Exp $ -->
+<!-- $Id: index.html,v 1.1 2000/04/21 20:33:32 bkoz Exp $ -->
</HEAD>
<BODY>
@@ -106,7 +106,7 @@ HREF="ftp://sourceware.cygnus.com/pub/libstdc++/libstdc++-2.90.8.tar.gz">the
<HR>
<H2><A NAME="1_2">1.2 Why should I use libstdc++?</A></H2>
- <P>The recent completion of the ISO C++ standardization gave the
+ <P>The completion of the ISO C++ standardization gave the
C++ community a powerful set of reuseable tools in the form
of the C++ Standard Library. However, all existing C++
implementations are (as the Draft Standard used to say)
@@ -117,10 +117,10 @@ HREF="ftp://sourceware.cygnus.com/pub/libstdc++/libstdc++-2.90.8.tar.gz">the
(<TT>gcc</TT>, <TT>g++</TT>, etc) is widely considered to be
one of the leading compilers in the world. Its development
has recently been taken over by the
- <A HREF="http://egcs.cygnus.com/">GCC team</A>. All of
+ <A HREF="http://gcc.gnu.org/">GCC team</A>. All of
the rapid development and near-legendary
<A
-HREF="http://egcs.cygnus.com/gcc-2.95/buildstat.html">portability</A>
+HREF="http://gcc.gnu.org/gcc-2.95/buildstat.html">portability</A>
that are the hallmarks of an open-source project are being
applied to libstdc++.
</P>
@@ -214,7 +214,7 @@ HREF="ftp://sourceware.cygnus.com/pub/libstdc++/libstdc++-2.90.8.tar.gz">
stuff&quot; classes will probably migrate there.)
</P>
<P>For the bold and/or desperate, the
- <A HREF="http://egcs.cygnus.com/faq.html#libg++">GCC FAQ</A>
+ <A HREF="http://gcc.gnu.org/faq.html#libg++">GCC FAQ</A>
describes where to find the last libg++ source.
</P>
@@ -271,32 +271,13 @@ HREF="http://sourceware.cygnus.com/automake/">automake</A>.
<P>Yes, as of 2.90.8, it is intended as such.</P>
<P>The installation instructions cover this in more detail, but
replacing the older library requires rebuilding some of the
- code that comes with g++. If you do not want to do that,
- then you'll be missing out on a lot of functionality, but it
- can still be done.
- </P>
- <P>In that case, you can use the same procedure that used to be
- required:
- <OL>
- <LI> Build GCC as usual.
- <LI> Build libstdc++-v3 as described in the installation
- document, under the section &quot;without GCC
- sources.&quot; Be aware that you will lose the std::
- namespace encapsulation.
- <LI> Build your code using -I and -L options so that GCC
- finds the libstdc++-v3 headers and library before the
- older headers in the GCC include tree.
- </OL>
- </P>
- <P>If you configured libstdc++-v3 to install under a directory
- called <B>/lib3</B>, for example, the command line would look
- something like
- <!-- Careful, the leading spaces in PRE show up directly. -->
- <PRE>
- g++ -Wall -I/lib3/include/g++-v3 -L/lib3/lib foo.cc -o foo
- </PRE>
- More information (such as using SGI or GNU extensions, and
- setting the runtime library path) can be found in the RELEASE-NOTES.
+ code that comes with g++. You will need sources for the 2.95.2
+ compiler in order to build this snapshot. Building the library
+ on its own and then using -I/-L will no longer work.
+ </P>
+ <P>After the 2.90.8 snapshot, the library sources were integrated
+ into the compiler sources. Future releases of the compiler will
+ ship with libstdc++-v3.
</P>
<HR>
@@ -511,7 +492,7 @@ to the list</A>, Nathan Myers announced that he has started a list of
<H2><A NAME="4_5">4.5 Aw, that's easy to fix!</A></H2>
<P>If you have found a bug in the library and you think you have
a working fix, then send it in! The main GCC site has a page
- on <A HREF="http://egcs.cygnus.com/contribute.html">submitting
+ on <A HREF="http://gcc.gnu.org/contribute.html">submitting
patches</A> that covers the procedure, but for libstdc++ you
should of course send the patch to our mailing list, not the
GCC mailing list. The libstdc++
@@ -664,7 +645,7 @@ HREF="http://sourceware.cygnus.com/ml/libstdc++/1999/msg00084.html">speculation<
Comments and suggestions are welcome, and may be sent to
<A HREF="mailto:pme@sourceware.cygnus.com">Phil Edwards</A> or
<A HREF="mailto:gdr@egcs.cygnus.com">Gabriel Dos Reis</A>.
-<BR> $Id: index.html,v 1.21 2000/03/26 03:44:35 pme Exp $
+<BR> $Id: index.html,v 1.1 2000/04/21 20:33:32 bkoz Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/faq/index.txt b/libstdc++-v3/docs/faq/index.txt
index 27c2472..d3d20370 100644
--- a/libstdc++-v3/docs/faq/index.txt
+++ b/libstdc++-v3/docs/faq/index.txt
@@ -65,11 +65,11 @@
1.2 Why should I use libstdc++?
- The recent completion of the ISO C++ standardization gave the C++
- community a powerful set of reuseable tools in the form of the C++
- Standard Library. However, all existing C++ implementations are (as
- the Draft Standard used to say) "incomplet and incorrekt," and many
- suffer from limitations of the compilers that use them.
+ The completion of the ISO C++ standardization gave the C++ community a
+ powerful set of reuseable tools in the form of the C++ Standard
+ Library. However, all existing C++ implementations are (as the Draft
+ Standard used to say) "incomplet and incorrekt," and many suffer from
+ limitations of the compilers that use them.
The GNU C/C++/FORTRAN/<pick-a-language> compiler (gcc, g++, etc) is
widely considered to be one of the leading compilers in the world. Its
@@ -206,25 +206,13 @@
The installation instructions cover this in more detail, but replacing
the older library requires rebuilding some of the code that comes with
- g++. If you do not want to do that, then you'll be missing out on a
- lot of functionality, but it can still be done.
-
- In that case, you can use the same procedure that used to be required:
- 1. Build GCC as usual.
- 2. Build libstdc++-v3 as described in the installation document,
- under the section "without GCC sources." Be aware that you will
- lose the std:: namespace encapsulation.
- 3. Build your code using -I and -L options so that GCC finds the
- libstdc++-v3 headers and library before the older headers in the
- GCC include tree.
-
- If you configured libstdc++-v3 to install under a directory called
- /lib3, for example, the command line would look something like
- g++ -Wall -I/lib3/include/g++-v3 -L/lib3/lib foo.cc -o foo
-
-
- More information (such as using SGI or GNU extensions, and setting the
- runtime library path) can be found in the RELEASE-NOTES.
+ g++. You will need sources for the 2.95.2 compiler in order to build
+ this snapshot. Building the library on its own and then using -I/-L
+ will no longer work.
+
+ After the 2.90.8 snapshot, the library sources were integrated into
+ the compiler sources. Future releases of the compiler will ship with
+ libstdc++-v3.
_________________________________________________________________
2.3 What is this CVS thing that you keep mentioning?
@@ -533,71 +521,71 @@ count(struct __rb_tree_node_base *, struct __rb_tree_node_base *)'
Comments and suggestions are welcome, and may be sent to [71]Phil
Edwards or [72]Gabriel Dos Reis.
- $Id: index.txt,v 1.17 2000/03/26 03:44:35 pme Exp $
+ $Id: index.html,v 1.1 2000/04/21 20:33:32 bkoz Exp $
References
1. http://sourceware.cygnus.com/libstdc++/
2. http://sourceware.cygnus.com/libstdc++/faq/index.html
- 3. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/index.html
- 4. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#1_0
- 5. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#1_1
- 6. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#1_2
- 7. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#1_3
- 8. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#1_4
- 9. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#1_5
- 10. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#1_6
- 11. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#1_7
- 12. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#1_8
- 13. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#2_0
- 14. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#2_1
- 15. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#2_2
- 16. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#2_3
- 17. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#2_4
- 18. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#3_0
- 19. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#3_1
- 20. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#3_2
- 21. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#4_0
- 22. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#4_1
- 23. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#4_2
- 24. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#4_3
- 25. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#4_4
- 26. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#4_5
- 27. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#5_0
- 28. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#5_1
- 29. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#5_2
- 30. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#5_3
- 31. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#5_4
- 32. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#5_5
- 33. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#5_6
- 34. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#5_7
+ 3. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/index.html
+ 4. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#1_0
+ 5. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#1_1
+ 6. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#1_2
+ 7. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#1_3
+ 8. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#1_4
+ 9. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#1_5
+ 10. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#1_6
+ 11. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#1_7
+ 12. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#1_8
+ 13. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#2_0
+ 14. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#2_1
+ 15. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#2_2
+ 16. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#2_3
+ 17. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#2_4
+ 18. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#3_0
+ 19. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#3_1
+ 20. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#3_2
+ 21. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#4_0
+ 22. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#4_1
+ 23. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#4_2
+ 24. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#4_3
+ 25. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#4_4
+ 26. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#4_5
+ 27. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#5_0
+ 28. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#5_1
+ 29. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#5_2
+ 30. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#5_3
+ 31. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#5_4
+ 32. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#5_5
+ 33. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#5_6
+ 34. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#5_7
35. ftp://sourceware.cygnus.com/pub/libstdc++/libstdc++-2.90.8.tar.gz
- 36. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/17_intro/DESIGN
- 37. http://egcs.cygnus.com/
- 38. http://egcs.cygnus.com/gcc-2.95/buildstat.html
- 39. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/index.html
+ 36. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/17_intro/DESIGN
+ 37. http://gcc.gnu.org/
+ 38. http://gcc.gnu.org/gcc-2.95/buildstat.html
+ 39. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/index.html
40. ftp://sourceware.cygnus.com/pub/libstdc++/libstdc++-2.90.8.tar.gz
- 41. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/index.html
+ 41. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/index.html
42. http://www.deja.com/getdoc.xp?AN=469581698&fmt=text
- 43. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/17_intro/contribute.html
+ 43. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/17_intro/contribute.html
44. http://www.boost.org/
- 45. http://egcs.cygnus.com/faq.html#libg++
+ 45. http://gcc.gnu.org/faq.html#libg++
46. mailto:libstdc++@sourceware.cygnus.com
47. mailto:pme@sourceware.cygnus.com
48. mailto:gdr@egcs.cygnus.com
49. http://sourceware.cygnus.com/autoconf/
50. http://sourceware.cygnus.com/automake/
- 51. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/documentation.html
- 52. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/17_intro/RELEASE-NOTES
+ 51. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/documentation.html
+ 52. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/17_intro/RELEASE-NOTES
53. http://www.gnu.org/software/cvs/cvs.html
54. http://www.cyclic.com/
55. http://www.xraylith.wisc.edu/~khan/software/gnu-win32/libstdc++-v3.html
56. file://localhost/ml/libstdc++/1998/msg00006.html
57. http://www.cantrip.org/draft-bugs.txt
58. http://anubis.dkuug.dk/jtc1/sc22/wg21/
- 59. http://egcs.cygnus.com/contribute.html
- 60. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/17_intro/contribute.html
- 61. file://localhost/home0/pedwards/EGCS/gcc-2.95.2/libstdc++-v3/docs/faq/index.html#2_4
+ 59. http://gcc.gnu.org/contribute.html
+ 60. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/17_intro/contribute.html
+ 61. file://localhost/home0/pedwards/src/egcsworking/libstdc++-v3/docs/faq/index.html#2_4
62. http://sourceware.cygnus.com/ml/libstdc++/1999/msg00080.html
63. http://sourceware.cygnus.com/ml/libstdc++/1999/msg00084.html
64. http://www.sgi.com/Technology/STL/
diff --git a/libstdc++-v3/docs/footer.html b/libstdc++-v3/docs/footer.html
index f3740d6..a7a2ec0 100644
--- a/libstdc++-v3/docs/footer.html
+++ b/libstdc++-v3/docs/footer.html
@@ -9,8 +9,8 @@
These pages are stoically maintained by
<A HREF="mailto:pme@sourceware.cygnus.com">Phil Edwards</a>, who might now
actually be able to maintain them as the directory structure is slowly
-congealing into some kind of permanent structure, and was last modified on
-2000-03-24.
+congealing into some kind of permanent structure, and were last modified on
+2000-04-29.
</EM></P>
<!-- And this closes everything out. -->
diff --git a/libstdc++-v3/docs/gccrebuild.html b/libstdc++-v3/docs/gccrebuild.html
index 3f167cc..8f57884 100644
--- a/libstdc++-v3/docs/gccrebuild.html
+++ b/libstdc++-v3/docs/gccrebuild.html
@@ -9,7 +9,7 @@
<TITLE>How to automatically rebuild libgcc.a.</TITLE>
<LINK REL="home" HREF="http://sourceware.cygnus.com/libstdc++/">
<LINK REL=StyleSheet HREF="lib3styles.css">
-<!-- $Id: gccrebuild.html,v 1.1 2000/01/14 20:03:09 pme Exp $ -->
+<!-- $Id: gccrebuild.html,v 1.1 2000/04/21 20:33:30 bkoz Exp $ -->
</HEAD>
<BODY>
@@ -39,7 +39,10 @@
as <EM>objdir</EM>; here it will be called <EM>GCCobjdir</EM>.
</P>
-<P>This is a kludge, and will go away eventually.</P>
+<P>This is a kludge, and will go away eventually. (In a sense, it has
+ already gone away, as the library sources have been merged into the
+ compiler sources.)
+</P>
<HR>
@@ -111,7 +114,7 @@
<HR>
<P CLASS="fineprint"><EM>
-$Id: gccrebuild.html,v 1.1 2000/01/14 20:03:09 pme Exp $
+$Id: gccrebuild.html,v 1.1 2000/04/21 20:33:30 bkoz Exp $
</EM></P>
diff --git a/libstdc++-v3/docs/thanks.html b/libstdc++-v3/docs/thanks.html
index 791272c..02d989c 100644
--- a/libstdc++-v3/docs/thanks.html
+++ b/libstdc++-v3/docs/thanks.html
@@ -17,7 +17,7 @@
Please keep this list in alphabetical order.
<!--
- Latest update 2000-03-09, more or less.
+ Latest update 2000-04-29, more or less.
-->
<UL>
@@ -56,7 +56,8 @@
<LI>Benjamin Kosnik for, well, everything.
- <LI>Martin v. Loewis for namespace patches and fixes.
+ <LI>Martin v. Loewis for namespace patches and fixes, and tons of
+ assistance with the compiler merges.
<LI>Philip Martin for lots of string and vector iterator fixes and
improvements, and string clean up and testsuites.
@@ -71,7 +72,10 @@
<LI>Nathan Myers for inflicting locales on the rest of us, working on
iostream, string and string documentation (!), fixing that
__black_count loop that so many people bugged us about, and creating
- the initial documentation (DESIGN, CHECKLIST, and so forth).
+ the initial documentation (DESIGN, CHECKLIST, and so forth). Huge
+ chunks of the MT-safe code are also due to his work.
+
+ <LI>Felix Natter for documentation on porting.
<LI>Chip Salzenberg for patches and improvements to locales, traits,
Makefiles, libio, libtool hackery, and &quot;long long&quot; support.
@@ -84,11 +88,15 @@
</UL></P>
<P>We'd also like to thank the folks who have contributed time and
- energy in testing libstdc++-v3:
+ energy in testing libstdc++-v3, especially those sending in testsuite
+ evaluations:
<UL>
- <LI>Folks for sending in testsuite evaluations.
+ <LI>J&uuml;rgen Freyh
+ <LI>llewelly <!-- Honest, that's the only name in the messages. -->
+ <LI>Loren James Rittle
+ <LI>George Talbot
</UL></P>