OSDN Git Service

2001-05-30 Phil Edwards <pme@sources.redhat.com>
authorpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 May 2001 21:55:05 +0000 (21:55 +0000)
committerpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 May 2001 21:55:05 +0000 (21:55 +0000)
* docs/doxygen/user.cfg.in:  Minor addition.
* docs/html/documentation.html:  Reorganize.  Put most-looked-at
stuff first.
* docs/html/install.html:  Update for 3.0.  HTML fixups.
* docs/html/17_intro/howto.html:  Likewise.
* docs/html/18_support/howto.html:  Likewise.
* docs/html/19_diagnostics/howto.html:  Likewise.
* docs/html/20_util/howto.html:  Likewise.
* docs/html/23_containers/howto.html:  Likewise.
* docs/html/24_iterators/howto.html:  Likewise.  More notes.
* docs/html/25_algorithms/howto.html:  Likewise.
* docs/html/26_numerics/howto.html:  Likewise.  More notes.
* docs/html/27_io/howto.html:  Likewise.
* docs/html/ext/howto.html:  Likewise.
* docs/html/faq/index.html:  Likewise.
* docs/html/faq/index.txt:  Regenerate.
* docs/html/27_io/iostreams_hierarchy.pdf:  Remove in favor of
Doxygen-created documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42723 138bc75d-0d04-0410-961f-82ee72b054a4

17 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/docs/doxygen/user.cfg.in
libstdc++-v3/docs/html/17_intro/howto.html
libstdc++-v3/docs/html/18_support/howto.html
libstdc++-v3/docs/html/19_diagnostics/howto.html
libstdc++-v3/docs/html/20_util/howto.html
libstdc++-v3/docs/html/23_containers/howto.html
libstdc++-v3/docs/html/24_iterators/howto.html
libstdc++-v3/docs/html/25_algorithms/howto.html
libstdc++-v3/docs/html/26_numerics/howto.html
libstdc++-v3/docs/html/27_io/howto.html
libstdc++-v3/docs/html/27_io/iostreams_hierarchy.pdf [deleted file]
libstdc++-v3/docs/html/documentation.html
libstdc++-v3/docs/html/ext/howto.html
libstdc++-v3/docs/html/faq/index.html
libstdc++-v3/docs/html/faq/index.txt
libstdc++-v3/docs/html/install.html

index 6d2e09d..73bbce6 100644 (file)
@@ -1,3 +1,24 @@
+2001-05-30  Phil Edwards  <pme@sources.redhat.com>
+
+       * docs/doxygen/user.cfg.in:  Minor addition.
+       * docs/html/documentation.html:  Reorganize.  Put most-looked-at
+       stuff first.
+       * docs/html/install.html:  Update for 3.0.  HTML fixups.
+       * docs/html/17_intro/howto.html:  Likewise.
+       * docs/html/18_support/howto.html:  Likewise.
+       * docs/html/19_diagnostics/howto.html:  Likewise.
+       * docs/html/20_util/howto.html:  Likewise.
+       * docs/html/23_containers/howto.html:  Likewise.
+       * docs/html/24_iterators/howto.html:  Likewise.  More notes.
+       * docs/html/25_algorithms/howto.html:  Likewise.
+       * docs/html/26_numerics/howto.html:  Likewise.  More notes.
+       * docs/html/27_io/howto.html:  Likewise.
+       * docs/html/ext/howto.html:  Likewise.
+       * docs/html/faq/index.html:  Likewise.
+       * docs/html/faq/index.txt:  Regenerate.
+       * docs/html/27_io/iostreams_hierarchy.pdf:  Remove in favor of
+       Doxygen-created documentation.
+
 2001-05-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
         * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Use
index 85bcb7c..eae5c69 100644 (file)
@@ -20,7 +20,7 @@
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
 # by quotes) that should identify the project. 
 
-PROJECT_NAME           = libstdc++-v3
+PROJECT_NAME           = "libstdc++-v3 Source"
 
 # The PROJECT_NUMBER tag can be used to enter a project or revision number. 
 # This could be handy for archiving the generated documentation or 
index ee918c5..f284aa5 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Chapter 17</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.2 2001/04/03 00:26:54 pme Exp $ -->
+<!-- $Id: howto.html,v 1.3 2001/05/30 08:30:02 ljrittle Exp $ -->
 </HEAD>
 <BODY>
 
 <HR>
 <H2><A NAME="4"><TT>&lt;foo&gt;</TT> vs <TT>&lt;foo.h&gt;</TT></A></H2>
    <P>The new-style headers are fully supported in libstdc++-v3.  The compiler
-      itself fully supports namespaces.  However, at the moment, the compiler
-      treats std:: as the global namespace by default.
+      itself fully supports namespaces, including <TT>std::</TT>.
    </P>
    <P>For those of you new to ISO C++98, no, that isn't a typo, the headers
       really have new names.  Marshall Cline's C++ FAQ Lite has a good
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.2 2001/04/03 00:26:54 pme Exp $
+<BR> $Id: howto.html,v 1.3 2001/05/30 08:30:02 ljrittle Exp $
 </EM></P>
 
 
index f2b5d88..154177b 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Chapter 18</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $ -->
+<!-- $Id: howto.html,v 1.2 2001/04/03 00:26:55 pme Exp $ -->
 </HEAD>
 <BODY>
 
             out of them, Bad Things happen.
       </OL>
    </P>
+   <P>Note also that <TT>atexit()</TT> is only required to store 32
+      functions, and the compiler/library might already be using some of
+      those slots.  If you think you may run out, we recommend using
+      the xatexit/xexit combination from libiberty, which has no such limit.
+   </P>
    <P>Return <A HREF="#top">to top of page</A> or
       <A HREF="../faq/index.html">to the FAQ</A>.
    </P>
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:54 pme Exp $
+<BR> $Id: howto.html,v 1.2 2001/04/03 00:26:55 pme Exp $
 </EM></P>
 
 
index 26ba4cd..27e6361 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Chapter 19</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.2 2001/03/25 00:01:56 pme Exp $ -->
+<!-- $Id: howto.html,v 1.3 2001/04/03 00:26:55 pme Exp $ -->
 </HEAD>
 <BODY>
 
       object file.  The checks are also cleaner and easier to read and
       understand.
    </P>
-   <P>Concept checking can be disabled when you build your code, for example,
-      to save space during a production build.  Just define (via -D or
-      #define) any of the macros
-      <TT>_GLIBCPP_NO_CONCEPT_CHECKS (yes, with the leading underscore),
-      <TT>_STL_NO_CONCEPT_CHECKS</TT> (also with the leading underscore),
-      or <TT>NDEBUG</TT>.  The first macro is specifically for this
-      feature, the second is the disabling macro for the replaced SGI
-      version (some code may assume SGI's version is in use), and the third
-      is the usual macro to disable <TT>assert()</TT>, which is often turned
-      off for production builds.
+   <P>Right now they are off by default.  More will be added once
+      GCC 3.0 is released and we have time to revisit this topic.
    </P>
 
    <P>Return <A HREF="#top">to top of page</A> or
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.2 2001/03/25 00:01:56 pme Exp $
+<BR> $Id: howto.html,v 1.3 2001/04/03 00:26:55 pme Exp $
 </EM></P>
 
 
index f959468..1d425fb 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Chapter 20</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.2 2001/01/23 17:02:27 pme Exp $ -->
+<!-- $Id: howto.html,v 1.3 2001/04/03 00:26:55 pme Exp $ -->
 </HEAD>
 <BODY>
 
@@ -96,7 +96,7 @@
       <PRE>
     struct My_Type
     {
-       My_Type (My_Type const&amp;);
+        My_Type (My_Type const&amp;);
     };
       </PRE>
       Note the const keyword; the object being copied shouldn't change.
     
     void f()
     {
-       std::vector&lt; std::auto_ptr&lt;int&gt; &gt;   vec_ap_int;
+        std::vector&lt; std::auto_ptr&lt;int&gt; &gt;   vec_ap_int;
     }
       </PRE>
-      Should you try this, you will see an error along the lines of the
-      following (look through the ugly line-wrapping):
-      <PRE>
-/installdir/include/g++-v3/bits/concept_checks.h: In
- static member function `static _Type
- <B>_STL_ERROR::__const_parameter_required_for_copy_constructor</B>(_Type, const
- _Type&amp;) [with _Type = std::auto_ptr&lt;int&gt;]':
-/installdir/include/g++-v3/bits/concept_checks.h:383: passing
- `const std::auto_ptr&lt;int&gt;' as `this' argument of
- `std::auto_ptr&lt;_Tp&gt;::operator std::auto_ptr_ref&lt;_Tp1&gt;()
- [with _Tp1 = int, _Tp = int]' discards qualifiers
-      </PRE>
-      See the highlighted error?  It starts with a message in all caps
-      to get your attention.
+      Should you try this with the checks enabled, you will see an error.
    </P>
    <P>Return <A HREF="#top">to top of page</A> or
       <A HREF="../faq/index.html">to the FAQ</A>.
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.2 2001/01/23 17:02:27 pme Exp $
+<BR> $Id: howto.html,v 1.3 2001/04/03 00:26:55 pme Exp $
 </EM></P>
 
 
index f9d0431..603c499 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Chapter 23</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.2 2001/04/03 00:26:55 pme Exp $ -->
+<!-- $Id: howto.html,v 1.3 2001/05/30 08:30:01 ljrittle Exp $ -->
 </HEAD>
 <BODY>
 
       algorithms are only given endpoints to work with.  For the container
       classes, these are iterators (usually <TT>begin()</TT> and
       <TT>end()</TT>, but not always).  For builtin arrays, these are
-      the address of the first element and the past-the-end element.
-      <!-- a good explanation of the past-the-end rules is in order,
-           probably a link somewhere
-      -->
+      the address of the first element and the
+      <A HREF="../24_iterators/howto.html#2">past-the-end</A> element.
    </P>
    <P>Some very simple wrapper functions can hide all of that from the
       rest of the code.  For example, a pair of functions called
@@ -86,7 +84,7 @@
    </P>
    <P>Second, the line
       <PRE>
-    inline unsigned int lengthof (T (&)[sz]) { return sz; } </PRE>
+    inline unsigned int lengthof (T (&amp;)[sz]) { return sz; } </PRE>
       looks just weird!  Hint:  unused parameters can be left nameless.
    </P>
    <P>Return <A HREF="#top">to top of page</A> or
       some extra space, of course.  (If you plan to write code like the 
       incorrect example above, where the bitset is a local variable, then you
       may have to talk your compiler into allowing that much stack space;
-      there may be zero spae overhead, but it's all allocated inside the
+      there may be zero space overhead, but it's all allocated inside the
       object.)
    </P>
    <P><B>A container&lt;bool&gt;.&nbsp;&nbsp;</B>  The Committee made provision
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.2 2001/04/03 00:26:55 pme Exp $
+<BR> $Id: howto.html,v 1.3 2001/05/30 08:30:01 ljrittle Exp $
 </EM></P>
 
 
index 5210632..9c658f9 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Chapter 24</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $ -->
+<!-- $Id: howto.html,v 1.2 2001/04/03 00:26:56 pme Exp $ -->
 </HEAD>
 <BODY>
 
 
 <HR>
 <H2><A NAME="2">It ends <EM>where?</EM></A></H2>
-   <P>Blah.
+   <P>This starts off sounding complicated, but is actually very easy,
+      especially towards the end.  Trust me.
+  </P>
+   <P>Beginners usually have a little trouble understand the whole
+      'past-the-end' thing, until they remember their early algebra classes
+      (see, they </EM>told</EM> you that stuff would come in handy!) and
+      the concept of half-open ranges.
+   </P>
+   <P>First, some history, and a reminder of some of the funkier rules in
+      C and C++ for builtin arrays.  The following rules have always been
+      true for both languages:
+      <OL>
+       <LI>You can point anywhere in the array, <EM>or to the first element
+           past the end of the array</EM>.  A pointer that points to one
+           past the end of the array is guaranteed to be as unique as a
+           pointer to somewhere inside the array, so that you can compare
+           such pointers safely.
+       <LI>You can only dereference a pointer that points into an array.
+           If your array pointer points outside the array -- even to just
+           one past the end -- and you dereference it, Bad Things happen.
+       <LI>Strictly speaking, simply pointing anywhere else invokes
+           undefined behavior.  Most programs won't puke until such a
+           pointer is actually dereferenced, but the standards leave that
+           up to the platform.
+      </OL>
+      The reason this past-the-end addressing was allowed is to make it
+      easy to write a loop to go over an entire array, e.g.,
+      while (*d++ = *s++);.
+   </P>
+   <P>So, when you think of two pointers delimiting an array, don't think
+      of them as indexing 0 through n-1.  Think of them as <EM>boundary
+      markers</EM>:
+      <PRE>
+
+   beginning            end
+     |                   |
+     |                   |               This is bad.  Always having to
+     |                   |               remember to add or subtract one.
+     |                   |               Off-by-one bugs very common here.
+     V                   V
+        array of N elements
+     |---|---|--...--|---|---|
+     | 0 | 1 |  ...  |N-2|N-1|
+     |---|---|--...--|---|---|
+
+     ^                       ^
+     |                       |
+     |                       |           This is good.  This is safe.  This
+     |                       |           is guaranteed to work.  Just don't
+     |                       |           dereference 'end'.
+   beginning                end
+
+      </PRE>
+      See?  Everything between the boundary markers is part of the array.
+      Simple.
+   </P>
+   <P>Now think back to your junior-high school algebra course, when you
+      were learning how to draw graphs.  Remember that a graph terminating
+      with a solid dot meant, &quot;Everything up through this point,&quot;
+      and a graph terminating with an open dot meant, &quot;Everything up
+      to, but not including, this point,&quot; respectively called closed
+      and open ranges?  Remember how closed ranges were written with
+      brackets, <EM>[a,b]</EM>, and open ranges were written with parentheses,
+      <EM>(a,b)</EM>?
+   </P>
+   <P>The boundary markers for arrays describe a <EM>half-open range</EM>,
+      starting with (and including) the first element, and ending with (but
+      not including) the last element:  <EM>[beginning,end)</EM>.  See, I
+      told you it would be simple in the end.
+   </P>
+   <P>Iterators, and everything working with iterators, follows this same
+      time-honored tradition.  A container's <TT>begin()</TT> method returns
+      an iterator referring to the first element, and its <TT>end()</TT>
+      method returns a past-the-end iterator, which is guaranteed to be
+      unique and comparable against any other iterator pointing into the
+      middle of the container.
+   </P>
+   <P>Container constructors, container methods, and algorithms, all take
+      pairs of iterators describing a range of values on which to operate.
+      All of these ranges are half-open ranges, so you pass the beginning
+      iterator as the starting parameter, and the one-past-the-end iterator
+      as the finishing parameter.
+   </P>
+   <P>This generalizes very well.  You can operate on sub-ranges quite
+      easily this way; functions accepting a <EM>[first,last)</EM> range
+      don't know or care whether they are the boundaries of an entire {array,
+      sequence, container, whatever}, or whether they only enclose a few
+      elements from the center.  This approach also makes zero-length
+      sequences very simple to recognize:  if the two endpoints compare
+      equal, then the {array, sequence, container, whatever} is empty.
+   </P>
+   <P>Just don't dereference <TT>end()</TT>.
    </P>
    <P>Return <A HREF="#top">to top of page</A> or
       <A HREF="../faq/index.html">to the FAQ</A>.
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
+<BR> $Id: howto.html,v 1.2 2001/04/03 00:26:56 pme Exp $
 </EM></P>
 
 
index f0481cd..5444405 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Chapter 25</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $ -->
+<!-- $Id: howto.html,v 1.2 2001/04/03 00:26:56 pme Exp $ -->
 </HEAD>
 <BODY>
 
       important things:
       <OL>
         <LI>Anything that behaves like an iterator can be used in one of
-           these algorithms.  Raw pointers make great candidates, thus
-           built-in arrays are fine containers.  So do your own iterators.
+            these algorithms.  Raw pointers make great candidates, thus
+            built-in arrays are fine containers.  So do your own iterators.
         <LI>The algorithms do not (and cannot) affect the container as a
-           whole; only the things between the two iterator endpoints.  If
-           you pass a range of iterators only enclosing the middle third of
-           a container, then anything outside that range is inviolate.
+            whole; only the things between the two iterator endpoints.  If
+            you pass a range of iterators only enclosing the middle third of
+            a container, then anything outside that range is inviolate.
       </OL>
    </P>
    <P>Even strings can be fed through the algorithms here, although the
@@ -59,7 +59,7 @@
    <P>The single thing that trips people up the most is the definition of 
       <EM>range</EM> used with iterators; the famous
       &quot;past-the-end&quot; rule that everybody loves to hate.  The
-      <A HREF="../24_iterators/howto.html">iterators chapter</A> of this
+      <A HREF="../24_iterators/howto.html#2">iterators chapter</A> of this
       document has a complete explanation of this simple rule that seems to
       cause so much confusion.  Once you get <EM>range</EM> into your head
       (it's not that hard, honest!), then the algorithms are a cakewalk.
@@ -87,7 +87,7 @@
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:55 pme Exp $
+<BR> $Id: howto.html,v 1.2 2001/04/03 00:26:56 pme Exp $
 </EM></P>
 
 
index 4f33841..f55b5dd 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Chapter 26</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.1 2000/12/10 04:04:56 pme Exp $ -->
+<!-- $Id: howto.html,v 1.2 2001/04/03 00:26:56 pme Exp $ -->
 </HEAD>
 <BODY>
 
@@ -35,6 +35,7 @@
    <LI><A HREF="#1">Complex Number Processing</A>
    <LI><A HREF="#2">Array Processing</A>
    <LI><A HREF="#3">Numerical Functions</A>
+   <LI><A HREF="#4">C99</A>
 </UL>
 
 <HR>
       <A HREF="../faq/index.html">to the FAQ</A>.
    </P>
 
+<HR>
+<H2><A NAME="4">C99</A></H2>
+   <P>In addition to the other topics on this page, we'll note here some
+      of the C99 features that appear in libstdc++-v3.
+   </P>
+   <P>The C99 features depend on the <TT>--enable-c99</TT> configure flag.
+      This flag is already on by default, but it can be disabled by the
+      user.  Also, the configuration machinery will disable it if the
+      neccessary support for C99 (e.g., header files) cannot be found.
+   </P>
+   <P>As of GCC 3.0, C99 support includes classification functions
+      such as <TT>isnormal</TT>, <TT>isgreater</TT>, <TT>isnan</TT>, etc.
+      The functions used for 'long long' support such as <TT>strtoll</TT>
+      are supported, as is the <TT>lldiv_t</TT> typedef.  Also supported
+      are the wide character functions using 'long long', like
+      <TT>wcstoll</TT>.
+   </P>
+   <P>Return <A HREF="#top">to top of page</A> or
+      <A HREF="../faq/index.html">to the FAQ</A>.
+   </P>
+
 
 
 <!-- ####################################################### -->
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.1 2000/12/10 04:04:56 pme Exp $
+<BR> $Id: howto.html,v 1.2 2001/04/03 00:26:56 pme Exp $
 </EM></P>
 
 
index 0da4417..8495f08 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Chapter 27</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.3 2001/02/07 00:03:21 pme Exp $ -->
+<!-- $Id: howto.html,v 1.4 2001/04/03 00:26:56 pme Exp $ -->
 </HEAD>
 <BODY>
 
@@ -26,7 +26,6 @@
    <LI><A HREF="#1">Copying a file</A>
    <LI><A HREF="#2">The buffering is screwing up my program!</A>
    <LI><A HREF="#3">Binary I/O</A>
-   <LI><A HREF="#4">Iostreams class hierarchy diagram</A>
    <LI><A HREF="#5">What is this &lt;sstream&gt;/stringstreams thing?</A>
    <LI><A HREF="#6">Deriving a stream buffer</A>
    <LI><A HREF="#7">More on binary I/O</A>
    </P>
  
 <HR>
-<H2><A NAME="4">Iostreams class hierarchy diagram</A></H2>
-   <P>The <A HREF="iostreams_hierarchy.pdf">diagram</A> is in PDF.  Rumor
-      has it that once Benjamin Kosnik has been dead for a few decades,
-      this work of his will be hung next to the Mona Lisa in the
-      <A HREF="http://www.louvre.fr/">Musee du Louvre</A>.
-   </P>
-<HR>
 <H2><A NAME="5">What is this &lt;sstream&gt;/stringstreams thing?</A></H2>
    <P>Stringstreams (defined in the header <TT>&lt;sstream&gt;</TT>)
       are in this author's opinion one of the coolest things since
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.3 2001/02/07 00:03:21 pme Exp $
+<BR> $Id: howto.html,v 1.4 2001/04/03 00:26:56 pme Exp $
 </EM></P>
 
 
diff --git a/libstdc++-v3/docs/html/27_io/iostreams_hierarchy.pdf b/libstdc++-v3/docs/html/27_io/iostreams_hierarchy.pdf
deleted file mode 100644 (file)
index ab88913..0000000
+++ /dev/null
@@ -1 +0,0 @@
-%PDF-1.2\r1 0 obj\r<<\r/Type /Catalog\r/Pages 2 0 R\r>>\rendobj\r2 0 obj\r<<\r/Type /Pages\r/Count 1\r/Kids [3 0 R]\r>>\rendobj\r3 0 obj\r<<\r/Type /Page\r/Parent 2 0 R\r/MediaBox [0 0 841 595]\r/Resources 4 0 R\r/Contents 5 0 R\r/PieceInfo <<\r/Illustrator7.0 <<\r/LastModified (D:19990723224941+00'00')\r>>\r>>\r>>\rendobj\r4 0 obj\r<<\r/ProcSet [/PDF /Text]\r/Font 6 0 R\r>>\rendobj\r6 0 obj\r<<\r/F0 7 0 R\r>>\rendobj\r5 0 obj\r<<\r/Length 4532\r/Filter [/ASCII85Decode /FlateDecode]\r>>\rstream\rGhUtXCMt.N(B"F5&+aY/@Qi]I;%s0lBq&tK!K+"a/W^0g,*/;JNiYL/lXkYFSkBQ+3$VRLAAp6[+Gk2p\r]Y$V'q][Ii0`9nKmh=9$qUafIYES-6c9>:0iiB70cd1lN;\^Z5B(On5=3Kp1o4O9Ms/FWC4.r(nFZ"ID\re#N8>Y&;s3hk&Gh=oPY>g/R7S`N35&lSnKGJT'N#f3]=I^3Ma7p@ZTLj1W%,c`?_IA&WBR:iYE0/De,)\r.5tSk?gUfI?gLVJ]B-%RhCB-/&1(hF(H3"13[7AhH6TkcV(T9#\l_XZ&A6prLn^=89]&sO]lO>H;AgG.\rE*Ffh#_X%&%CJ$hiAQ5#<*ID"b0kT-./,#D&_iK%9J/jH(%lNWYDLdVe&3s]TMfhIS&j#;9I<#\Qb$,7\rOX=,>d],8TWGK,=QAXgt=(NL2B`c5r3!;DaCQfNY@HgI98u#(\L+TN8Jl%5*BSV6Z6K9q_Z)(MW:'d`5\rCE&^O_Q6P>1m6SXTkQu$46r]!#A8?WKTu\^;IZ(1X`PciW(Q<b9St7$/PmuU"7IFkTf`i@74CZoOg3Q4\r-8JdE-Z-UV=F1^S;CfZ6i]+-?S+NOUXBQ[Dd518[C6_gi.RoYa)O&0`>+Lf.<gc3TB7-S8&)o[FGYO::\rROcia<mnX-AkF_'d\6cMjd6.P77UNM>k&6r_R]!C16>/_7.8)ebcN7*<XRq/lq9#dMG&X8*Q+n-"f)Ct\r-Kq%oVLtt$I/;]D9[N[YMr&Eh1B@i&+(p[L)[%tYK9S&K1_Hg1Yi-H-(2%&c9S,gb6]4hFgU,<m8ak^'\r]&^\fXYV8%JH:k*9@#q'?5aFKgm/kELN*O!2P_EA>qjii`eZi1/lL%Sq>dU+ngdD%eur2Ir!M];qA%XP\rnggM_lW7J!bTqU+1.e,$hd?==gUobOrnIVuqu)sI^0ESJMlYEI^7K1Boq03mjIdgC#]cL-`Mp(D""BX_\r4*ghojioIOq<!)+9$kKa4aA(PrNiLWherkKe6">^$>j-UD`2S$S<loOa*;@3KdYd%KD.'N1@Q=$`*"6!\rkjVmbD0",E36[]"]n?fB5Im5q3(%r#]Kg"1bi1b_Z<Ws8C9FVsN<L+]Aeuu;nG8U4<F<J4Xl@f./1:6d\rRN-)+R8\#qj_oST,)[7?B^=.l"1R-L\cseQ$t8Qc1gn;U`IppE4NlE=EL]_%+04(?I<A]"9tY9IH?6Bk\r(*B!uVYY%"?-]$]W9(]h-\!eHB?qi>)U@SX26/\%YFiKkq]SH'UgFsDKYc3pK<*th-hCrY?5N'BlZta#\rXuECr[WqMT*<R;XFsjE=npN%^gU$D,I=)FbGjJWIeGC!tSAW.O,`$ik"&/oI#fc)9H!D#6Vt1f?1Gk5I\r%SXh"[=r[>BHe=_R7LH*hKeO"[W?DCL1*,ub^MT0XZm%bleOB\KK]eSSfp?Yd)Uop%!fsF5729u=_ZrQ\r5i@n<m],H'\"P75)O[4Z+pK$V!DNWWo`1*$34aQ%3bC^nrh2D/)$>/UVhOk%R==$MqJL_I=6iS#FhP;d\r2Ufpk&(MK2D4[<sGN*=iZh);\o_%i#4skNYE2RAkl9hV^#j_>:eTU]13N@h:pI!M%FR(1,0_QrEs+Q$'\rYn2o%b82KoY(S\8Pd88GM)kr+\o3H%i1p+NQ0K1E_t@s\pi$i7GVkCc"r:[KJu^'S\<74km['*s#_\Ft\rdMtM_6;h@h@Xq':.(O*fP^rU]N.D+#-m,3igY6dHDAg)`Pc^^`PkR6[#7dB$&m<*P$o:\9>RPgW*&XO:\r=AJ*0Yqp!^F@ld:d@mtqV%U&G7$WCp^tP0cWR`Fi\,aRdr7U!:Cd_.&3$"/Ee0;p&J8WO>BkO<5Vi34m\r7O=jKMcj^c`DsuQ7&c/HYmi"_5%_(>kr8t6*NoP5:e2bi&TMLFZW[O#aDk322g:'@0^j[o+dY&WH1=bO\r.5iY75"c']o1"[T&)?Y&?^*Q!WeRT]g9Bo\<d53IJhS3cr>ocqOAgR@"4h\b^tXf)'7dPL?<H=$+Srn#\r="i0(KYM9FHTj.M/_<JuH)E&n\.i2$`O.",IDpWK\0t6@2,q>>[(>+T4=g/*U.0cD''>im=>33CX'CB;\r3GJX7QE_7QK=<L:/&BrJ<n,j@q0[Jk]NAu&Rb?eK8),?aISm<$mepQoc0KMc]K003%B[GFhQop>04O^T\rY;TT?I\&I@q5g"@TW[#C->uYV^H=klN'`Do:g44"6nm6Tr-GXCpaIu4.!A.l99YQFY7\B@RsIqM*r$L:\rctp+YI=*i@S[\K\R_G:Lc+D[,GNc9fCo]L5+7FWa0\DE`.,n0-oYYaG;[jClT-,@fT`A!.$l0]d70>8&\rB2h**HZlu[*6;P:D\9*7o*f:V!7OpNp^k&9^Du'>a!=G06qosuDO;9WG&PPrhd'UE_5!QLVIXN?3kefN\rS)$62YNh%W3oAP7T>L9OFFLoL5jrpIjTBg1<sNNT6sBEeeZ&EJFJnPN.%c+XQX;@0<*,">q$o2*oE"*"\r#MjR0VX;"P?T^dW4f?oH[02C`1F3P*&bn;/$"54+HToa31o9QYBA4E2-MB,p)'7MA_4rcY8H<DjkL:dX\rj9>6p,*>Ye>MJNe+i?d8NU3c;RgeDM[M7b&\Egn`&g8I+]ePi'UB=X/WH9dDIHtH)X`qkOd%N"&E`qe=\r?C"#SYq<"D#I:GXRB6%_QXsi[BhMK^%V-HR10NkrJK&KaWXQnDou/BF*pHQ#n3ORHThoac+*Yb"dV.30\rjM4,s=K)(LjAZbj$uIba,:_-`>WX14KH.\GNa%Z91hBVdEouFiBIfLZe'R<"m*r.u[Ss*f^o-97="l59\r0;]h"VcRV69',:O:;V@O.ZV.TM.$^-En$cc=3ej,]p"PO[r*65)<Akl+ORFG-bI'=n[/%7F4LUXV0#IQ\rql$T9.S:VbVF--?M'4_AgkF+e\.Wt</Z7(pVok:NEb&0'O%:&6O[V%Zp/4r\7j/7Yf:-r*Ki`,)P:\@I\rZl,NU49g3Y@laoZ\q`1!d>!\T8[RDOPr?f5mpc-H830fjj?mOD&V2fGJ0;nXLjUYB7S;iW!$qjV;3)2"\r+p6_sKT,_'lJH#s.$JZoaCQVu3UpW/oCrX:X4?e;6^Bu\FcMQ*oIXa_hQd'=>[o[^$SJ%Da5fBUpW2&o\rrR<tr#:AjCh7HL>RU_+s_\t&T5Y`>dV]'S-k@"Q_kM?n_.I&4da\chQkMCLk)1%@f4\9GX#!HfnpZSEd\r5B4@A0t)n-ciJ-WAjb9Ai!?.?F9;/<=hf^D5%cfket6q?T``S$NEX'@qD/F@qIuIR-.3o33<0"0Z2*C&\r](Tdo:@SsHBq*3gY@lfrQ[90l\$q+^c-^g0-3t+"EZa%<[+CI;?,F"&F!tPGJGBK!YuEtS^Mj9R"Iekj\rftBa(*OOrY;2DU%`o3kZF#L!cVp0<t&eN:--adY9So2.aS']$kd1+ntV+UsJnIg/UUOu9/M0QLqLGS4$\rEpkuEa/iKk"\.Zg:5%)@-1JLiA8%1%FK^6EDUW<+&<MGJ)YkiL(a0h1"l7)I;G&mVE3"u+`sk\s#s,Lr\r[%Tl("F3&o0X*Pf1UJ$mFT&51K1nUmhJM8C1eg&(=E&i4/(G;n9<^n>L-BKO8n.PU;?r:TE:TE=Ug9K7\r!N&L88e(4u=W"i,"cZ<e\#p0['CYG,RQ-#1?mM<ronm.,$#KmF$>?qFSk8.n>E?ad$qUprd3T>7CH16s\r4(],a>iE0c7#WqRT.IqDUJll/WsBaY+eHbLpWU#QjTQ0aoa,:UJ=/+5M2!W7E1fE,-t0eH+m<,]+hjGn\rM'aa8<X=08/S5-G;BsL72iK\X-9>e_U[@eh1I)Cd!4MWnHO2i]&!)gJ`E;)5'Y;lfW-c`Rrm<RGq'./q\ra*/kcA@NMrM,A+(N"k`2-36dK.,G#\;OkqkV%>h7SCpj.DWjc(`,PSO_oPJbKPG/RJ<c/]ku95/UE47V\rW2?UPd=Q]G*I&[K[^'EL@XQd1r]Mppe4k,k]#.[uj6`%0C6ID/WV/>6HG&htqbr484ODB,["l69o4n9F\ri)8b-L%'&bR!>dH;\*!YB"Io8>$Wu.S,QU.iO`0ZY;Mu(')F>_.g?f&Kq^t6a\op<%ifGI2?T1@\fU<N\rAeKF^p;kt"='2%(Z;G$.FcPt48<3+;0+N$&<4!j=Q,BqL-Gkfno7QW;[HHUra6`$f!)@SU;a@/.VtA.n\rqUq+gU:!t;Z16Xi]'S^YEej4SdqqPqIac-]&#Zr/\s/F3ok6-H+iqZMk*^`0]SA.8Z92tB+Oa:`.GjYX\rl5=8#a4F:*m%H^]i`2^=n3RYmPG`I)FnF.\,9.kG&U1dEMH=i'm`H!AjDqim@Z_=aphJkL*M=8;V2eVq\ri?cA_"IW<6[=gFu8j@%jlI&HHK7FBCeZgG554#Lg.WMC0qXc%@n>!E4Q_?<[Fg&Df40DH29ln?<1(*I(\r*NMEfeVDBiQ[)(Ind`qAo(c4L3/+\H8?^>$PP"*O-o0p2HN^\%3V9r`NO/"VWSQH=-iXDQ?kBF~>\rendstream\rendobj\r7 0 obj\r<<\r/Type /Font\r/Subtype /Type1\r/Name /F0\r/BaseFont /Helvetica\r/Encoding /MacRomanEncoding\r>>\rendobj\rxref\r0 8\r0000000000 65535 f \r0000000009 00000 n \r0000000058 00000 n \r0000000115 00000 n \r0000000298 00000 n \r0000000384 00000 n \r0000000353 00000 n \r0000005005 00000 n \rtrailer\r<<\r/Root 1 0 R\r/Size 8\r>>\rstartxref\r5113\r%%EOF\r
\ No newline at end of file
index 7af16b0..2a16a84 100644 (file)
@@ -3,7 +3,7 @@
  <META NAME="KEYWORDS" CONTENT="libstdc++, homepage, home, g++, libg++, STL">
  <TITLE>Standard C++ Library v3</TITLE>
 <LINK REL=StyleSheet HREF="lib3styles.css">
-<!-- $Id: documentation.html,v 1.2 2001/05/19 20:27:36 pme Exp $ -->
+<!-- $Id: documentation.html,v 1.3 2001/05/23 02:00:05 pme Exp $ -->
 </HEAD>
 <BODY>
 
 <P><B>All of these documents</B> (in fact, this entire homepage set) are
    bundled with the library source, under the <TT>docs</TT> subdirectory,
    for releases and snapshots.  The sole exception is the
-   <A HREF="#4">automatically-generated source documentation</A>,
-   available separately.
+   automatically-generated source documentation, available separately.
 </P>
 
+<HR>
+<H2><A NAME="4">Source Documentation</A></H2>
+<P>In addition to the distribution documentation (these pages), we also
+   have a set of HTML documents generated from the sources themselves,
+   using the Doxygen tool.  These are useful for examining the signatures
+   of public member functions for the library classes, etc.
+</P>
+<P>
+   The latest collection is <TT>libstdc++-doxygen-20010501.tar.gz</TT> (3.7MB),
+   <A HREF="libstdc++-doxygen-20010501/index.html">viewable online</A>.
+   The collection is also available in the libstdc++ snapshots directory at
+   <TT>&lt;URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/&gt;</TT>.  You will
+   almost certainly need to use one of the
+   <A HREF="http://gcc.gnu.org/mirrors.html">mirror sites</A> to download
+   the tarball.  After unpacking, simply load
+   libstdc++-doxygen-20010501/index.html <!-- also update this date -->
+   in a browser.  Feedback (and additional documentation!) is welcome.
+</P>
+
+<HR>
+<H2><A NAME="2">Configuring, Building, Installing</A></H2>
+  <UL>
+   <LI><A HREF="configopts.html">Configure options</A>
+   <LI><A HREF="install.html">Getting started: configure, build, install</A><BR>
+  </UL>
+
+<HR>
 <H2><A NAME="1">Introductory notes for libstdc++</A></H2>
    <P>This is a short list of text files pertaining to this
    implementation of ISO 14882. A brief description follows the name
    of the file.
    </P>
+   <P>
       <UL>
          <LI><A HREF="17_intro/BADNAMES">BADNAMES</A>
          - names to avoid because of potential collisions
@@ -35,8 +62,8 @@
          <LI><A HREF="17_intro/HEADER_POLICY">HEADER_POLICY</A>
          - header naming and sub-include structure
          <LI><A HREF="17_intro/PROBLEMS">PROBLEMS</A>
-        <!-- Linking to "../README" doesn't work; we are at the top level
-             of the web pages.  Punt.  -->
+         <!-- Linking to "../README" doesn't work; we are at the top level
+              of the web pages.  Punt.  -->
          <LI>README - directory structure
          <LI><A HREF="17_intro/RELEASE-NOTES">RELEASE-NOTES</A>
          - instructions for building, using
          <LI><A HREF="17_intro/contribute.html">Contributor checklist</A>
          <LI><A HREF="17_intro/libstdc++-assign.txt">Copyright assignment form for libstdc++-v3</A>
       </UL>
-
-<HR>
-<H2><A NAME="2">Configuring, Building, Installing</A></H2>
-      <UL>
-        <LI><A HREF="configopts.html">Configure options</A>
-        <LI><A HREF="install.html">Getting started: configure, build, install</A><BR>
-      </UL>
+   </P>
 
 <HR>
 <H2><A NAME="3">Chapter-Specific Information, Extensions, Notes and Advice</A></H2>
          <LI><A HREF="ext/howto.html">Extensions to the Standard Library</A>
       </OL>
 
-<HR>
-<H2><A NAME="4">Source Documentation</A></H2>
-<P>In addition to the distribution documentation (these pages), we also
-   have a set of HTML documents generated from the sources themselves,
-   using the Doxygen tool.  These are useful for examining the signatures
-   of public member functions for the library classes, etc.
-</P>
-<P>
-   The latest
-   collection is libstdc++-doxygen-20010501.tar.gz (3.7MB), available in
-   the libstdc++ snapshots directory at
-   <TT>&lt;URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/&gt;</TT>.  You will
-   almost certainly need to use one of the
-   <A HREF="http://gcc.gnu.org/mirrors.html">mirror sites</A> to download
-   the tarball.  After unpacking, simply load
-   libstdc++-doxygen-20010501/index.html in a browser.  You can also
-   browse the same collection
-   <A HREF="libstdc++-doxygen-20010501/index.html">online</A>.
-   Feedback (and additional documentation!) is welcome.
-</P>
-
-
 </BODY>
 </HTML>
index cdc0958..593e30f 100644 (file)
@@ -8,7 +8,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 HOWTO:  Extensions</TITLE>
 <LINK REL=StyleSheet HREF="../lib3styles.css">
-<!-- $Id: howto.html,v 1.3 2001/04/03 00:26:56 pme Exp $ -->
+<!-- $Id: howto.html,v 1.4 2001/05/02 01:39:03 pme Exp $ -->
 </HEAD>
 <BODY>
 
    <P>
     <UL>
      <LI><TT>filebuf</TT>s have another ctor with this signature:<BR>
-<TT>basic_filebuf(int __fd, const char* __name, ios_base::openmode __mode);</TT>
+<TT>basic_filebuf(__c_file_type*, ios_base::openmode, int_type);</TT>
          <BR>This comes in very handy in a number of places, such as
          attaching Unix sockets, pipes, and anything else which uses file
          descriptors, into the IOStream buffering classes.  The three
-         arguments are as follows:<BR>
-         <TT>int __fd,                  </TT>// open file descriptor<BR>
-         <TT>const char* __name,    </TT><BR>
-         <TT>ios_base::openmode __mode  </TT>// same as the other openmode uses
+         arguments are as follows:
+         <UL>
+          <LI><TT>__c_file_type*      F   </TT>
+              // the __c_file_type typedef usually boils down to stdio's FILE
+          <LI><TT>ios_base::openmode  M   </TT>
+              // same as all the other uses of openmode
+          <LI><TT>int_type            B   </TT>
+              // buffer size, defaults to BUFSIZ
+         </UL>
+         For those wanting to use file descriptors instead of FILE*'s, I
+         invite you to contemplate the mysteries of C's <TT>fdopen()</TT>.
     </UL>
    </P>
    <P>Return <A HREF="#top">to top of page</A> or
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: howto.html,v 1.3 2001/04/03 00:26:56 pme Exp $
+<BR> $Id: howto.html,v 1.4 2001/05/02 01:39:03 pme Exp $
 </EM></P>
 
 
index 22518ed..e202e54 100644 (file)
@@ -9,7 +9,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.7 2001/04/06 18:48:20 pme Exp $ -->
+<!-- $Id: index.html,v 1.8 2001/05/10 18:42:11 pme Exp $ -->
 </HEAD>
 <BODY>
 
@@ -41,8 +41,7 @@ http://gcc.gnu.org/onlinedocs/libstdc++/faq/</A>.</P>
    <LI><A HREF="#2_0">Installation</A>
       <OL>
          <LI><A HREF="#2_1">How do I install libstdc++-v3?</A>
-         <LI><A HREF="#2_2">Is this a drop-in replacement for the
-                            libstdc++ that's shipped with g++?</A>
+         <LI><A HREF="#2_2">[removed]</A>
          <LI><A HREF="#2_3">What is this CVS thing that you keep 
                             mentioning?</A>
          <LI><A HREF="#2_4">How do I know if it works?</A>
@@ -52,7 +51,7 @@ http://gcc.gnu.org/onlinedocs/libstdc++/faq/</A>.</P>
       <OL>
          <LI><A HREF="#3_1">Can libstdc++-v3 be used with &lt;my
                             favorite compiler&gt;?</A>
-         <LI><A HREF="#3_2">Building under Cygwin hangs/explodes!?</A>
+         <LI><A HREF="#3_2">[removed]</A>
          <LI><A HREF="#3_3">Building under DEC OSF kills the assembler</A>
       </OL>
 
@@ -82,7 +81,7 @@ http://gcc.gnu.org/onlinedocs/libstdc++/faq/</A>.</P>
          <LI><A HREF="#5_2">What's next after libstdc++-v3?</A>
          <LI><A HREF="#5_3">What about the STL from SGI?</A>
          <LI><A HREF="#5_4">Extensions and Backward Compatibility</A>
-         <LI><A HREF="#5_5">Compiling with &quot;-fnew-abi&quot;</A>
+         <LI><A HREF="#5_5">[removed]</A>
          <LI><A HREF="#5_6">Is libstdc++-v3 thread-safe?</A>
          <LI><A HREF="#5_7">How do I get a copy of the ISO C++ Standard?</A>
       </OL>
@@ -146,10 +145,10 @@ HREF="http://gcc.gnu.org/gcc-2.95/buildstat.html">portability</A>
          Drepper are the lead maintainers of the CVS archive.
       </P>
       <P>Development and discussion is held on the libstdc++ mailing
-         list. Subscribing to the list, or searching the list
+         list.  Subscribing to the list, or searching the list
          archives, is open to everyone.  You can read instructions for
-         doing so on the <A HREF="http://gcc.gnu.org/libstdc++/">homepage</A>.  If you
-         have questions, ideas, code, or are just curious, sign up!
+         doing so on the <A HREF="http://gcc.gnu.org/libstdc++/">homepage</A>.
+         If you have questions, ideas, code, or are just curious, sign up!
       </P>
 
 <HR>
@@ -174,8 +173,8 @@ HREF="ftp://gcc.gnu.org/pub/libstdc++/libstdc++-2.92.tar.gz">
          HREF="http://www.deja.com/getdoc.xp?AN=469581698&fmt=text">a 
          Usenet article</A>.</P>
 which is no longer available, thanks deja...-->
-      <P>Nathan Myers gave the best of all possible answers, responding
-         to a Usenet article asking this question:  Sooner, if you help.
+      <P>Nathan Myers gave the best of all possible answers, responding to a
+         Usenet article asking this question:  <EM>Sooner, if you help.</EM>
       </P>
 
 
@@ -254,20 +253,19 @@ which is no longer available, thanks deja...-->
          an installation document), but the tools required are few:
       </P>
          <UL>
-            <LI> A release of libstdc++.
-            <LI> A recent release of GCC (version 2.95 works). Note
-                 that building GCC is much easier and more automated
-                 than building the GCC 2.[78] series was. 
-            <LI> If you plan on hacking around with the makefiles, you
-                 will need the tools <A 
-HREF="http://sources.redhat.com/autoconf/">autoconf</A>and <A 
-HREF="http://sources.redhat.com/automake/">automake</A>. 
+            <LI> A 3.x release of GCC.  Note that building GCC is much
+                 easier and more automated than building the GCC 2.[78]
+                 series was.  If you are using GCC 2.95, you can still
+                 build earlier snapshots of libstdc++.
             <LI> GNU Make is the only make that supports these makefiles. 
+            <LI> The GNU Autotools are needed if you are messing with
+                 the configury or makefiles.
          </UL>
       <P>The file <A HREF="../documentation.html">documentation.html</A>
          provides a good overview of the steps necessary to build, install,
          and use the library.  Instructions for configuring the library
-         with new flags such as --enable-threads are there also.
+         with new flags such as --enable-threads are there also, as well as
+         patches and instructions for working with GCC 2.95.
       </P>
       <P>The top-level install.html and
          <A HREF="../17_intro/RELEASE-NOTES">RELEASE-NOTES</A> files contain
@@ -278,11 +276,9 @@ HREF="http://sources.redhat.com/automake/">automake</A>.
       </P> 
 
 <HR>
-   <H2><A NAME="2_2">2.2 Is this a drop-in replacement for the
-                         libstdc++ that's shipped with g++?</A></H2>
-      <P>Yes, as of 2.90.8, it is intended as such.  And as of 2.91,
-         libstdc++-v3 <EM>is</EM> the library that's shipped with
-         g++, so much of this answer has become moot.
+   <H2><A NAME="2_2">2.2 [removed]</A></H2>
+      <P>This question has become moot and has been removed.  The stub
+         is here to preserve numbering (and hence links/bookmarks).
       </P>
 
 <HR>
@@ -294,7 +290,7 @@ HREF="http://sources.redhat.com/automake/">automake</A>.
          HREF="http://www.gnu.org/software/cvs/cvs.html">CVS entry in
          the GNU software catalogue</A> has a better description as 
          well as a
-         <A HREF="http://www.cyclic.com/">link to the makers of CVS</A>. 
+         <A HREF="http://www.cvshome.org/">link to the makers of CVS</A>. 
       </P>
       <P>The &quot;anonymous client checkout&quot; feature of CVS is
          similar to anonymous FTP in that it allows anyone to retrieve
@@ -309,22 +305,13 @@ HREF="http://sources.redhat.com/automake/">automake</A>.
    <H2><A NAME="2_4">2.4 How do I know if it works?</A></H2>
       <P>libstdc++-v3 comes with its own testsuite.  You do not need
          to actually install the library (&quot;<TT>gmake
-         install</TT>&quot;) to run the testsuite.  Note that 2.91 does
-         not use DejaGNU yet.
+         install</TT>&quot;) to run the testsuite.
       </P>
       <P>To run the testsuite on the library after building it, use
          &quot;gmake check&quot; while in your build directory.  To run
          the testsuite on the library after building and installing it,
          use &quot;gmake check-install&quot; instead.
       </P>
-      <P>The testsuite subdirectory in your build directory will then
-         contain three files of the form YYYYMMDD-mkcheck*.txt.  One of
-         them (-mkcheck.txt itself) contains the results of the tests;
-         this can be mailed to the list.  The other files (-mkchecklog.txt
-         and -mkcheckfiles.txt) contain messages from the compiler while
-         building the test programs, and a list of the tests to be run,
-         respectively.
-      </P>
       <P>If you find bugs in the testsuite programs themselves, or if
          you think of a new test program that should be added to the
          suite, <B>please</B> write up your idea and send it to the list!
@@ -353,29 +340,9 @@ HREF="http://sources.redhat.com/automake/">automake</A>.
       </P> 
 
 <HR>
-   <H2><A NAME="3_2">3.2 Building under Cygwin hangs/explodes!?</A></H2>
-      <P>Sometimes, yes.  You're probably in the middle of generating
-         the <TT>numeric_limits</TT> specializations when it hangs,
-         right?  Thought so...
-      </P> 
-      <P>The <TT>&lt;limits&gt;</TT> header and its associated library
-         code are platform-specific.  These files get generated from
-         scratch during installation, and it is this generator that is
-         hanging.  More specifically, the only sure way to determine
-         what the <TT>numeric_limits&lt;T&gt;::traps</TT> boolean
-         should be is to actually divide by zero and see if it is
-         trapped or not.
-      </P>
-      <P>Under NT, this will occasionally just hang.  On those
-         occasions when the test does not hang, the zero-division is
-         in fact trapped.  That doesn't prevent hanging elsewhere.
-      </P>
-      <P>You have two options.  You can get a newer cygwin1.dll (see the
-         Cygwin paragraph in the
-         <A HREF="../install.html">installation instructions</A>).
-         Or you can get a prebuilt set of bits/std_limits.h and
-         src/limitsMEMBERS.cc files from Mumit Khan's
-         <A HREF="http://www.xraylith.wisc.edu/~khan/software/gnu-win32/libstdc++-v3.html">Cygwin-related website</A>.
+   <H2><A NAME="3_2">3.2 [removed]</A></H2>
+      <P>This question has become moot and has been removed.  The stub
+         is here to preserve numbering (and hence links/bookmarks).
       </P>
 
 <HR>
@@ -403,7 +370,7 @@ HREF="http://sources.redhat.com/automake/">automake</A>.
 
    <H2><A NAME="4_1">4.1 What works already?</A></H2>
       <P>This is a verbatim clip from the &quot;Status&quot; section
-         of the RELEASE-NOTES for the latest snapshot.
+          of the RELEASE-NOTES for the latest snapshot.
       </P> 
 
 <!-- Yeah, I meant that "verbatim clip" thing literally... :-)  -->
@@ -473,7 +440,8 @@ to the list</A>, Nathan Myers announced that he has started a list of
          libstdc++, either.  Really!  Please do not report these as bugs.
       </P>
       <A NAME="4_4_Weff">
-        <P>The biggest of these is the quadzillions of warnings about the
+        <P><STRONG>-Weffc++</STRONG>
+           The biggest of these is the quadzillions of warnings about the
            library headers emitted when <TT>-Weffc++</TT> is used.  Making
            libstdc++ &quot;-Weffc++-clean&quot; is not a goal of the project,
            for a few reasons.  Mainly, that option tries to enforce
@@ -483,14 +451,15 @@ to the list</A>, Nathan Myers announced that he has started a list of
         </P>
       </A>
       <A NAME="4_4_rel_ops">
-        <P>Another is the <TT>rel_ops</TT> namespace and the template
+        <P><STRONG>rel_ops</STRONG>
+           Another is the <TT>rel_ops</TT> namespace and the template
            comparison operator functions contained therein.  If they become
-             visible in the same namespace as other comparison functions
-             (e.g., '<TT>using</TT>' them and the &lt;iterator&gt; header),
-             then you will suddenly be faced with huge numbers of ambiguity
-             errors.  This was discussed on the -v3 list; Nathan Myers
-             <A HREF="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html">sums
-             things up here</A>.
+           visible in the same namespace as other comparison functions
+           (e.g., '<TT>using</TT>' them and the &lt;iterator&gt; header),
+           then you will suddenly be faced with huge numbers of ambiguity
+           errors.  This was discussed on the -v3 list; Nathan Myers
+           <A HREF="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html">sums
+           things up here</A>.
         </P>
       </A>
       <A NAME="4_4_interface"><H3>The g++-3 headers are
@@ -514,7 +483,8 @@ to the list</A>, Nathan Myers announced that he has started a list of
         </P>
       </A>
       <A NAME="4_4_glibc">
-        <P>If you're on a GNU/Linux system and have just upgraded to
+        <P><STRONG>glibc</STRONG>
+           If you're on a GNU/Linux system and have just upgraded to
            glibc 2.2, but are still using gcc 2.95.2, then you should have
            read the glibc FAQ, specifically 2.34:
    <PRE>
@@ -527,22 +497,24 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
    </PRE>
            Note that 2.95.x shipped with the
            <A HREF="#4_4_interface">old v2 library</A> which is no longer
-           maintained.
+           maintained.  Also note that gcc 2.95.3 fixes this problem, but
+           requires a separate patch for libstdc++-v3.
         </P>
       </A>
       <A NAME="4_4_checks">
-        <P>If you see compilation errors containing messages about
+        <P><STRONG>concept checks</STRONG>
+           If you see compilation errors containing messages about
            <TT> <EM>foo</EM>Concept </TT>and a<TT> constraints </TT>
-           member function, then most
-           likely you have violated one of the requirements for types used
-           during instantiation of template containers.  For example,
-           EqualityComparableConcept appears
-           if your types must be comparable with == and you have not
+           member function, then most likely you have violated one of the
+           requirements for types used during instantiation of template
+           containers and functions.  For example, EqualityComparableConcept
+           appears if your types must be comparable with == and you have not
            provided this capability (a typo, or wrong visibility, or you
            just plain forgot, etc).
         </P>
-        <P>More information, including how to optionally disable the checks,
-           is available <A HREF="../19_diagnostics/howto.html#3">here</A>.
+        <P>More information, including how to optionally enable/disable the
+           checks, is available
+           <A HREF="../19_diagnostics/howto.html#3">here</A>.
         </P>
       </A>
 
@@ -614,9 +586,8 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation</A>.
    <H2><A NAME="5_3">5.3 What about the STL from SGI?</A></H2>
       <P>The <A HREF="http://www.sgi.com/Technology/STL/">STL from SGI</A>
          is merged into libstdc++-v3 with changes as necessary.  
-         Currently release 3.3 is being used.  Changes in the STL
-         usually produce some weird bugs and lots of changes in the
-         rest of the libstdc++ source as we scramble to keep up. :-)
+         Currently release 3.3 is being used as an initial codebase, plus
+         changes, fixes, and extensions.
       </P>
       <P>In particular, <TT>string</TT> is not from SGI and makes no
          use of their &quot;rope&quot; class (which is included as an
@@ -642,14 +613,9 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation</A>.
       </P>
 
 <HR>
-   <H2><A NAME="5_5">5.5 Compiling with &quot;-fnew-abi&quot;</A></H2>
-      <P>Towards the end of July 1999, this subject was brought up again
-         on the mailing list under a different name.  The related
-         <A HREF="http://gcc.gnu.org/ml/libstdc++/1999-q3/msg00066.html">thread</A>
-         (by the name HOWTO-honor-std) is very instructive.  More info
-         is at the end of RELEASE-NOTES.
-      </P>
-      <P>This functionality is now automated and turned on by default.
+   <H2><A NAME="5_5">5.5 [removed]</A></H2>
+      <P>This question has become moot and has been removed.  The stub
+         is here to preserve numbering (and hence links/bookmarks).
       </P>
 
 <HR>
@@ -672,16 +638,15 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation</A>.
 
 <HR>
    <H2><A NAME="5_7">5.7 How do I get a copy of the ISO C++ Standard?</A></H2>
-      <P>Copies of the full ISO 14882 standard are available on line
-         via the ISO mirror site for committee members.  Non-members,
-         or those who have not paid for the privilege of sitting on
-         the committee and sustained their two-meeting commitment for
-         voting rights, may get a copy of the standard from their
-         respective national standards organization.  In the USA,
-         this national standards organization is ANSI and their
-         website is right <A HREF="http://www.ansi.org">here</A>.
-         (And if you've already registered with them, clicking this
-         link will take you to directly to the place where you can
+      <P>Copies of the full ISO 14882 standard are available on line via the
+         ISO mirror site for committee members.  Non-members, or those who
+         have not paid for the privilege of sitting on the committee and
+         sustained their two-meeting commitment for voting rights, may get a
+         copy of the standard from their respective national standards
+         organization.  In the USA, this national standards organization is
+         ANSI and their website is right <A HREF="http://www.ansi.org">here</A>.
+         (And if you've already registered with them, clicking this link will
+         take you to directly to the place where you can
 <A HREF="http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998">buy
          the standard on-line</A>.
       </P>
@@ -695,9 +660,10 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation</A>.
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: index.html,v 1.7 2001/04/06 18:48:20 pme Exp $
+<BR> $Id: index.html,v 1.8 2001/05/10 18:42:11 pme Exp $
 </EM></P>
 
 
 </BODY>
 </HTML>
+
index f5f7bd5..37f8e7e 100644 (file)
          8. [11]What if I have more questions?
     2. [12]Installation
          1. [13]How do I install libstdc++-v3?
-         2. [14]Is this a drop-in replacement for the libstdc++ that's
-            shipped with g++?
+         2. [14][removed]
          3. [15]What is this CVS thing that you keep mentioning?
          4. [16]How do I know if it works?
     3. [17]Platform-Specific Issues
          1. [18]Can libstdc++-v3 be used with <my favorite compiler>?
-         2. [19]Building under Cygwin hangs/explodes!?
+         2. [19][removed]
          3. [20]Building under DEC OSF kills the assembler
     4. [21]Known Bugs and Non-Bugs
          1. [22]What works already?
@@ -46,7 +45,7 @@
          2. [34]What's next after libstdc++-v3?
          3. [35]What about the STL from SGI?
          4. [36]Extensions and Backward Compatibility
-         5. [37]Compiling with "-fnew-abi"
+         5. [37][removed]
          6. [38]Is libstdc++-v3 thread-safe?
          7. [39]How do I get a copy of the ISO C++ Standard?
      _________________________________________________________________
 
    Complete instructions are not given here (this is a FAQ, not an
    installation document), but the tools required are few:
-     * A release of libstdc++.
-     * A recent release of GCC (version 2.95 works). Note that building
-       GCC is much easier and more automated than building the GCC 2.[78]
-       series was.
-     * If you plan on hacking around with the makefiles, you will need
-       the tools [53]autoconfand [54]automake.
+     * A 3.x release of GCC. Note that building GCC is much easier and
+       more automated than building the GCC 2.[78] series was. If you are
+       using GCC 2.95, you can still build earlier snapshots of
+       libstdc++.
      * GNU Make is the only make that supports these makefiles.
+     * The GNU Autotools are needed if you are messing with the configury
+       or makefiles.
 
-   The file [55]documentation.html provides a good overview of the steps
+   The file [53]documentation.html provides a good overview of the steps
    necessary to build, install, and use the library. Instructions for
    configuring the library with new flags such as --enable-threads are
-   there also.
+   there also, as well as patches and instructions for working with GCC
+   2.95.
 
-   The top-level install.html and [56]RELEASE-NOTES files contain the
+   The top-level install.html and [54]RELEASE-NOTES files contain the
    exact build and installation instructions. You may wish to browse
    those files over CVSweb ahead of time to get a feel for what's
    required. RELEASE-NOTES is located in the ".../docs/17_intro/"
    directory of the distribution.
      _________________________________________________________________
 
-2.2 Is this a drop-in replacement for the libstdc++ that's shipped with g++?
+2.2 [removed]
 
-   Yes, as of 2.90.8, it is intended as such. And as of 2.91,
-   libstdc++-v3 is the library that's shipped with g++, so much of this
-   answer has become moot.
+   This question has become moot and has been removed. The stub is here
+   to preserve numbering (and hence links/bookmarks).
      _________________________________________________________________
 
 2.3 What is this CVS thing that you keep mentioning?
 
    The Concurrent Versions System is one of several revision control
    packages. It was selected for GNU projects because it's free (speech),
-   free (beer), and very high quality. The [57]CVS entry in the GNU
-   software catalogue has a better description as well as a [58]link to
+   free (beer), and very high quality. The [55]CVS entry in the GNU
+   software catalogue has a better description as well as a [56]link to
    the makers of CVS.
 
    The "anonymous client checkout" feature of CVS is similar to anonymous
 2.4 How do I know if it works?
 
    libstdc++-v3 comes with its own testsuite. You do not need to actually
-   install the library ("gmake install") to run the testsuite. Note that
-   2.91 does not use DejaGNU yet.
+   install the library ("gmake install") to run the testsuite.
 
    To run the testsuite on the library after building it, use "gmake
    check" while in your build directory. To run the testsuite on the
    library after building and installing it, use "gmake check-install"
    instead.
 
-   The testsuite subdirectory in your build directory will then contain
-   three files of the form YYYYMMDD-mkcheck*.txt. One of them
-   (-mkcheck.txt itself) contains the results of the tests; this can be
-   mailed to the list. The other files (-mkchecklog.txt and
-   -mkcheckfiles.txt) contain messages from the compiler while building
-   the test programs, and a list of the tests to be run, respectively.
-
    If you find bugs in the testsuite programs themselves, or if you think
    of a new test program that should be added to the suite, please write
    up your idea and send it to the list!
    and optimized for GCC/g++, however.
      _________________________________________________________________
 
-3.2 Building under Cygwin hangs/explodes!?
-
-   Sometimes, yes. You're probably in the middle of generating the
-   numeric_limits specializations when it hangs, right? Thought so...
-
-   The <limits> header and its associated library code are
-   platform-specific. These files get generated from scratch during
-   installation, and it is this generator that is hanging. More
-   specifically, the only sure way to determine what the
-   numeric_limits<T>::traps boolean should be is to actually divide by
-   zero and see if it is trapped or not.
+3.2 [removed]
 
-   Under NT, this will occasionally just hang. On those occasions when
-   the test does not hang, the zero-division is in fact trapped. That
-   doesn't prevent hanging elsewhere.
-
-   You have two options. You can get a newer cygwin1.dll (see the Cygwin
-   paragraph in the [59]installation instructions). Or you can get a
-   prebuilt set of bits/std_limits.h and src/limitsMEMBERS.cc files from
-   Mumit Khan's [60]Cygwin-related website.
+   This question has become moot and has been removed. The stub is here
+   to preserve numbering (and hence links/bookmarks).
      _________________________________________________________________
 
 3.3 Building DEC OSF kills the assembler
    install GNU as and arrange for the GCC build to use it (or merge the
    sources and build it during the bootstrap).
 
-   Anyone who [61]knows the DEC assembler well enough to provide the
+   Anyone who [57]knows the DEC assembler well enough to provide the
    equivalent of these two pseudos would win praise and accolades from
    many.
      _________________________________________________________________
@@ -352,16 +327,16 @@ New:
 
 4.3 Bugs in the C++ language/lib specification
 
-   Yes, unfortunately, there are some. In a [62]message to the list,
+   Yes, unfortunately, there are some. In a [58]message to the list,
    Nathan Myers announced that he has started a list of problems in the
    ISO C++ Standard itself, especially with regard to the chapters that
-   concern the library. The list itself is [63]posted on his website.
+   concern the library. The list itself is [59]posted on his website.
    Developers who are having problems interpreting the Standard may wish
    to consult his notes.
 
    For those people who are not part of the ISO Library Group (i.e.,
    nearly all of us needing to read this page in the first place :-), a
-   public list of the library defects is occasionally published [64]here.
+   public list of the library defects is occasionally published [60]here.
      _________________________________________________________________
 
 4.4 Things in libstdc++ that look like bugs
@@ -370,26 +345,26 @@ New:
    language specification (4.3), but aren't really bugs in libstdc++,
    either. Really! Please do not report these as bugs.
 
-   The biggest of these is the quadzillions of warnings about the library
-   headers emitted when -Weffc++ is used. Making libstdc++
+   -Weffc++ The biggest of these is the quadzillions of warnings about
+   the library headers emitted when -Weffc++ is used. Making libstdc++
    "-Weffc++-clean" is not a goal of the project, for a few reasons.
    Mainly, that option tries to enforce object-oriented programming,
    while the Standard Library isn't necessarily trying to be OO. There
    are multiple solutions under discussion.
 
-   Another is the rel_ops namespace and the template comparison operator
-   functions contained therein. If they become visible in the same
-   namespace as other comparison functions (e.g., 'using' them and the
-   <iterator> header), then you will suddenly be faced with huge numbers
-   of ambiguity errors. This was discussed on the -v3 list; Nathan Myers
-   [65]sums things up here.
+   rel_ops Another is the rel_ops namespace and the template comparison
+   operator functions contained therein. If they become visible in the
+   same namespace as other comparison functions (e.g., 'using' them and
+   the <iterator> header), then you will suddenly be faced with huge
+   numbers of ambiguity errors. This was discussed on the -v3 list;
+   Nathan Myers [61]sums things up here.
 
   The g++-3 headers are not ours
 
    If you have found an extremely broken header file which is causing
    problems for you, look carefully before submitting a "high" priority
    bug report (which you probably shouldn't do anyhow; see the last
-   paragraph of the page describing [66]the GCC bug database).
+   paragraph of the page describing [62]the GCC bug database).
 
    If the headers are in ${prefix}/include/g++-3, then you are using the
    old libstdc++-v2 library, which is nonstandard and unmaintained. Do
@@ -397,11 +372,11 @@ New:
 
    Currently our header files are installed in ${prefix}/include/g++-v3
    (see the 'v'?). This may change with the next release of GCC, as it
-   may be too confusing, but [67]the question has not yet been decided.
+   may be too confusing, but [63]the question has not yet been decided.
 
-   If you're on a GNU/Linux system and have just upgraded to glibc 2.2,
-   but are still using gcc 2.95.2, then you should have read the glibc
-   FAQ, specifically 2.34:
+   glibc If you're on a GNU/Linux system and have just upgraded to glibc
+   2.2, but are still using gcc 2.95.2, then you should have read the
+   glibc FAQ, specifically 2.34:
 2.34.   When compiling C++ programs, I get a compilation error in streambuf.h.
 
 {BH} You are using g++ 2.95.2? After upgrading to glibc 2.2, you need to
@@ -410,35 +385,36 @@ type has changed in glibc 2.2.  The patch is at
 http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
 
 
-   Note that 2.95.x shipped with the [68]old v2 library which is no
-   longer maintained.
+   Note that 2.95.x shipped with the [64]old v2 library which is no
+   longer maintained. Also note that gcc 2.95.3 fixes this problem, but
+   requires a separate patch for libstdc++-v3.
 
-   If you see compilation errors containing messages about fooConcept and
-   a constraints member function, then most likely you have violated one
-   of the requirements for types used during instantiation of template
-   containers. For example, EqualityComparableConcept appears if your
-   types must be comparable with == and you have not provided this
-   capability (a typo, or wrong visibility, or you just plain forgot,
-   etc).
+   concept checks If you see compilation errors containing messages about
+   fooConcept and a constraints member function, then most likely you
+   have violated one of the requirements for types used during
+   instantiation of template containers and functions. For example,
+   EqualityComparableConcept appears if your types must be comparable
+   with == and you have not provided this capability (a typo, or wrong
+   visibility, or you just plain forgot, etc).
 
-   More information, including how to optionally disable the checks, is
-   available [69]here.
+   More information, including how to optionally enable/disable the
+   checks, is available [65]here.
      _________________________________________________________________
 
 4.5 Aw, that's easy to fix!
 
    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
-   [70]submitting patches that covers the procedure, but for libstdc++
+   [66]submitting patches that covers the procedure, but for libstdc++
    you should also send the patch to our mailing list in addition to the
-   GCC patches mailing list. The libstdc++ [71]contributors' page also
+   GCC patches mailing list. The libstdc++ [67]contributors' page also
    talks about how to submit patches.
 
    In addition to the description, the patch, and the ChangeLog entry, it
    is a Good Thing if you can additionally create a small test program to
    test for the presence of the bug that your patch fixes. Bugs have a
    way of being reintroduced; if an old bug creeps back in, it will be
-   caught immediately by the [72]testsuite -- but only if such a test
+   caught immediately by the [68]testsuite -- but only if such a test
    exists.
      _________________________________________________________________
 
@@ -476,16 +452,15 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
    Bugfixes and rewrites (to improve or fix thread safety, for instance)
    will of course be a continuing task.
 
-   [73]This question about the next libstdc++ prompted some brief but
-   interesting [74]speculation.
+   [69]This question about the next libstdc++ prompted some brief but
+   interesting [70]speculation.
      _________________________________________________________________
 
 5.3 What about the STL from SGI?
 
-   The [75]STL from SGI is merged into libstdc++-v3 with changes as
-   necessary. Currently release 3.3 is being used. Changes in the STL
-   usually produce some weird bugs and lots of changes in the rest of the
-   libstdc++ source as we scramble to keep up. :-)
+   The [71]STL from SGI is merged into libstdc++-v3 with changes as
+   necessary. Currently release 3.3 is being used as an initial codebase,
+   plus changes, fixes, and extensions.
 
    In particular, string is not from SGI and makes no use of their "rope"
    class (which is included as an optional extension), nor is valarray
@@ -503,17 +478,13 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
        #include <ext/hash_map>
 
 
-   Extensions to the library have [76]their own page.
+   Extensions to the library have [72]their own page.
      _________________________________________________________________
 
-5.5 Compiling with "-fnew-abi"
-
-   Towards the end of July 1999, this subject was brought up again on the
-   mailing list under a different name. The related [77]thread (by the
-   name HOWTO-honor-std) is very instructive. More info is at the end of
-   RELEASE-NOTES.
+5.5 [removed]
 
-   This functionality is now automated and turned on by default.
+   This question has become moot and has been removed. The stub is here
+   to preserve numbering (and hence links/bookmarks).
      _________________________________________________________________
 
 5.6 Is libstdc++-v3 thread-safe?
@@ -523,8 +494,8 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
 
    This is assuming that your idea of "multithreaded" is the same as
    ours... The general question of multithreading and libstdc++-v3 is
-   addressed in the chapter-specific advice for [78]Library Introduction.
-   Threadsafe containers are covered in more detail in [79]the Received
+   addressed in the chapter-specific advice for [73]Library Introduction.
+   Threadsafe containers are covered in more detail in [74]the Received
    Wisdom section on containers.
      _________________________________________________________________
 
@@ -536,17 +507,17 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
    their two-meeting commitment for voting rights, may get a copy of the
    standard from their respective national standards organization. In the
    USA, this national standards organization is ANSI and their website is
-   right [80]here. (And if you've already registered with them, clicking
-   this link will take you to directly to the place where you can [81]buy
+   right [75]here. (And if you've already registered with them, clicking
+   this link will take you to directly to the place where you can [76]buy
    the standard on-line.
 
-   Who is your country's member body? Visit the [82]ISO homepage and find
+   Who is your country's member body? Visit the [77]ISO homepage and find
    out!
      _________________________________________________________________
 
-   Comments and suggestions are welcome, and may be sent to [83]the
+   Comments and suggestions are welcome, and may be sent to [78]the
    mailing list.
-   $Id: index.html,v 1.7 2001/04/06 18:48:20 pme Exp $ 
+   $Id: index.html,v 1.8 2001/05/10 18:42:11 pme Exp $ 
 
 References
 
@@ -602,34 +573,29 @@ References
   50. mailto:libstdc++@gcc.gnu.org
   51. mailto:pme@sources.redhat.com
   52. mailto:gdr@gcc.gnu.org
-  53. http://sources.redhat.com/autoconf/
-  54. http://sources.redhat.com/automake/
-  55. ../documentation.html
-  56. ../17_intro/RELEASE-NOTES
-  57. http://www.gnu.org/software/cvs/cvs.html
-  58. http://www.cyclic.com/
-  59. ../install.html
-  60. http://www.xraylith.wisc.edu/~khan/software/gnu-win32/libstdc++-v3.html
-  61. http://gcc.gnu.org/ml/libstdc++/2000-12/msg00279.html
-  62. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html
-  63. http://www.cantrip.org/draft-bugs.txt
-  64. http://anubis.dkuug.dk/jtc1/sc22/wg21/
-  65. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html
-  66. http://gcc.gnu.org/gnatswrite.html
-  67. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html
-  68. ../faq/index.html#4_4_interface
-  69. ../19_diagnostics/howto.html#3
-  70. http://gcc.gnu.org/contribute.html
-  71. ../17_intro/contribute.html
-  72. ../faq/index.html#2_4
-  73. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html
-  74. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html
-  75. http://www.sgi.com/Technology/STL/
-  76. ../ext/howto.html
-  77. http://gcc.gnu.org/ml/libstdc++/1999-q3/msg00066.html
-  78. http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/howto.html#3
-  79. http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html
-  80. http://www.ansi.org/
-  81. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998
-  82. http://www.iso.ch/
-  83. mailto:libstdc++@gcc.gnu.org
+  53. ../documentation.html
+  54. ../17_intro/RELEASE-NOTES
+  55. http://www.gnu.org/software/cvs/cvs.html
+  56. http://www.cvshome.org/
+  57. http://gcc.gnu.org/ml/libstdc++/2000-12/msg00279.html
+  58. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html
+  59. http://www.cantrip.org/draft-bugs.txt
+  60. http://anubis.dkuug.dk/jtc1/sc22/wg21/
+  61. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html
+  62. http://gcc.gnu.org/gnatswrite.html
+  63. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html
+  64. ../faq/index.html#4_4_interface
+  65. ../19_diagnostics/howto.html#3
+  66. http://gcc.gnu.org/contribute.html
+  67. ../17_intro/contribute.html
+  68. ../faq/index.html#2_4
+  69. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html
+  70. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html
+  71. http://www.sgi.com/Technology/STL/
+  72. ../ext/howto.html
+  73. http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/howto.html#3
+  74. http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html
+  75. http://www.ansi.org/
+  76. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998
+  77. http://www.iso.ch/
+  78. mailto:libstdc++@gcc.gnu.org
index 24df89b..392186e 100644 (file)
@@ -7,7 +7,7 @@
    <META NAME="GENERATOR" CONTENT="vi and eight fingers">
    <TITLE>libstdc++-v3 Installation Instructions</TITLE>
 <LINK REL=StyleSheet HREF="lib3styles.css">
-<!-- $Id: install.html,v 1.4 2001/02/07 00:03:20 pme Exp $ -->
+<!-- $Id: install.html,v 1.5 2001/04/03 00:26:54 pme Exp $ -->
 </HEAD>
 <BODY>
 
 
 <H2><A NAME="prereqs">Tools you will need beforehand</A></H2>
    <P>You will need a recent version of g++ to compile the snapshot of
-      libstdc++, one of the post-2.95.2 GCC
-      snapshots (insert standard caveat about using snapshots rather
-      than formal releases).  You will need the full source
+      libstdc++, such as one of the GCC 3.x snapshots (insert standard
+      caveat about using snapshots rather than formal releases).  You
+      will need the full source
       distribution to whatever compiler release you are using.  The
       GCC snapshots can be had from one of the sites on their
       <A HREF="http://gcc.gnu.org/mirrors.html">mirror list</A>.
    </P>
 
-   <P>In addition, if you plan to modify the makefiles or regenerate
-      the configure scripts you'll need the nuevo automake, libtool
-      and autoconf to regenerate the Makefiles and configure
-      scripts. These tools are all required to be installed in the
-      same location (most linux distributions install these tools by
-      default, so no worries.)
+   <P>In addition, if you plan to modify the makefiles or regenerate the
+      configure scripts you'll need recent versions of the GNU Autotools:
+      autoconf (version 2.50 or later),
+      automake (version 1.4 or later),    <!-- special version? -->
+      and libtool (multilanguage, version 1.4 or later),  <!-- really? -->
+      in order to rebuild the files.
+      These tools are all required to be installed in the same location
+      (most linux distributions install these tools by default, so no
+      worries as long as the versions are correct).
    </P>
 
-   <P>If you don't have bash, and want to run <TT>'make check'</TT> to
-      test your build, you'll need to get bash 2.x.  Also recommended
-      is GNU Make, since it is the only 'make' that will parse these
-      makefiles correctly.  We are moving to DejaGNU, so you'll
-      probably want to get that.
+   <P>GNU Make is the only 'make' that will parse the makefiles correctly.
+   </P>
+
+   <P>To test your build, you will need either DejaGNU 1.4 (to run
+      <TT>'make check'</TT> like
+      <A HREF="http://gcc.gnu.org/install/test.html">the rest of GCC</A>),
+      or Bash 2.x (to run <TT>'make check-script'</TT>).
    </P>
 
    <P>As of June 19, 2000, libstdc++ attempts to use tricky and
       <A HREF="ftp://sources.redhat.com/pub/binutils">here</A>.
    </P>
  
+ <!-- Commented until some system-specific requirements appear.
    <P>Finally, a few system-specific requirements:
       <DL>
         <DT>Cygwin
         <DD>If you are using Cygwin to compile libstdc++-v3 on Win32, you'll
-            have to get a version of the cygwin1.dll that is dated on or
-            after February 1, 2000.  This is necessary to successfully run
-            the script &quot;mknumeric_limits&quot; which probes the
-            floating-point
-            environment of the host in question -- before this date, Cygwin
-            would freeze when running this script.  In addition, you may
-            want to get a current version of libtool (say libtool-1.3.4
-            and above) as earlier versions supposedly had problems creating
-            shared libraries.
+            [snip]
 
       </DL>
    </P>
+-->
 
 <HR>
 
 <H2><A NAME="srcsetup">Setting up the source directories</A></H2>
-   <P><EM>As the libstdc++-v3 sources and the core GCC sources have
-      converged, more and more effort goes to building the
-      library as the default version to be shipped with g++.  With the
-      2.90.8 snapshot, and especially for CVS versions after this
-      release, this is treated as the usual scenario.  If you want to
-      build the library all by itself, you will need to explicitly
-      disable certain features (like namespaces) since the core GCC
-      library, libgcc.a, will not be rebuilt with those same features.
-   </EM>
-   </P>
-
-   <P>By default, all configurations of libstdc++-v3 now have namespaces
-      enabled.  Being able to select/de-select this option was a complex task
-      that had hopelessly confused many otherwise intelligent people, and
-      provided an endless stream of silent cursing and cries for help.  
-      Because of this, gcc sources are required, and are no longer optional.
-   </P>
-
    <P>The following definitions will be used throughout the rest of this
       document:
       <UL>
       </UL>
       Note:
       <OL>
-         <LI>The .91 snapshot and following are intended to replace the
+         <LI>The 3.0 version and following are intended to replace the
              library that comes with the compiler, so <EM>libsrcdir</EM>
              and <EM>libbuilddir</EM> must be contained under
              <EM>gccsrcdir</EM> and <EM>gccbuilddir</EM>, respectively.
       </OL>
    </P>
 
-   <P>Since the release of libstdc++-2.90.8, configuration patches have gone
-      into CVS gcc that make the management of the various libstdc++ source
-      trees a bit easier.  Because of this, both libstdc++-v2 and
-      libstdc++-v3 and live together in peace, without the need
-      for soft linking.  The setup instructions are slightly different,
-      depending on whether you want to use CVS gcc or a snapshot.  Please
-      choose the appropriate scenario:
-   </P>
-
-   <P><B>...with a gcc-2.9[67] snapshot</B>
-      <P>Unpack the <EM>gccsrcdir</EM> and go into that directory.  For
-         instance, <TT>gcc-2.95.2</TT> is a valid <EM>gccsrcdir</EM>.
-         Once in <EM>gccsrcdir</EM>, you'll need to rename or delete
-        the libstdc++-v3 directory which comes with that snapshot:
-         <PRE>
+   <P>Check out or download the gcc sources: the resulting source directory
+      (<TT>gcc</TT> or <TT>gcc-3.0</TT>, for example) is <EM>gccsrcdir</EM>.
+      Once in <EM>gccsrcdir</EM>, you'll need to rename or delete the
+      libstdc++-v3 directory which comes with that snapshot:
+      <PRE>
    mv libstdc++-v3 libstdc++-v3-previous  <STRONG>[OR]</STRONG>
    rm -r libstdc++-v3</PRE>
-      </P>
-      <P>Next, unpack the libstdc++-v3 library tarball into the
-         <EM>gccsrcdir</EM> directory; it will create a
-         <EM>libsrcdir</EM> called <TT>libstdc++-<EM>version</EM></TT>:
-         <PRE>
-   gzip -dc libstdc++-version.tar.gz | tar xf -</PRE>
-      </P>
-      <P>Finally, make a soft link between <EM>libsrcdir</EM> and
-         <TT>libstdc++-v3</TT> so that libstdc++-v3 will be the default C++
-         library used.
-         <PRE>
-   ln -s <EM>libsrcdir</EM> libstdc++-v3</PRE>
-      </P>
    </P>
-
-   <P><B>...with CVS gcc</B> 
-      <P>Check out or download the gcc sources: the resulting source
-         directory is <EM>gccsrcdir</EM>.  Once in <EM>gccsrcdir</EM>,
-         you'll need to rename or delete the libstdc++-v3 directory
-        which comes with that snapshot:
-         <PRE>
-   mv libstdc++-v3 libstdc++-v3-previous  <STRONG>[OR]</STRONG>
-   rm -r libstdc++-v3</PRE>
-      </P>
-      <P>Next, unpack the libstdc++-v3 library tarball into this
-         <EM>gccsrcdir</EM> directory; it will create a
-         <EM>libsrcdir</EM> called <TT>libstdc++-<EM>version</EM></TT>:
-         <PRE>
+   <P>Next, unpack the libstdc++-v3 library tarball into this
+      <EM>gccsrcdir</EM> directory; it will create a
+      <EM>libsrcdir</EM> called <TT>libstdc++-<EM>version</EM></TT>:
+      <PRE>
    gzip -dc libstdc++-version.tar.gz | tar xf -</PRE>
-      </P>
-      <P>Finally, rename <EM>libsrcdir</EM> to <TT>libstdc++-v3</TT> so that
-         gcc's configure flags will be able to deal with the new library.
-         <PRE>
+   </P>
+   <P>Finally, rename <EM>libsrcdir</EM> to <TT>libstdc++-v3</TT> so that
+      gcc's configure flags will be able to deal with the new library.
+      <PRE>
    mv <EM>libsrcdir</EM> libstdc++-v3</PRE>
-      </P>
    </P>
 
 
       <A HREF="http://gcc.gnu.org/install/">GCC Installation
       Instructions</A> first.
    </P>
-   <P>Due to namespaces, when building libstdc++-v3 you'll have to configure
+   <P>When building libstdc++-v3 you'll have to configure
       the entire <EM>gccsrcdir</EM> directory.  The full list of libstdc++-v3
       specific configuration options, not dependent on the specific compiler
       release being used, can be found <A HREF="configopts.html">here</A>.
       <PRE>
    make all-target-<EM>libstdc++-v3</EM></PRE>
       This will configure and build the C++ library in the
-      <EM>gccbuilddir/cpu-vendor-OS/</EM>libstdc++ directory.
+      <EM>gccbuilddir/cpu-vendor-os/</EM>libstdc++ directory.
    </P>
    <P>If you are rebuilding from a previous build [attempt], some
       information is kept in a cache file.  This is stored in
-      <EM>gccbuilddir/cpu-vendor-OS/</EM> if you are building with
+      <EM>gccbuilddir/cpu-vendor-os/</EM> if you are building with
       multilibs (the default), or in
-      <EM>gccbuilddir/cpu-vendor-OS/</EM>libstdc++-v3 if you have
+      <EM>gccbuilddir/cpu-vendor-os/</EM>libstdc++-v3 if you have
       multilibs disabled.  The filename is config.cache; if previous
       information is causing problems, you can delete it entirely, or
       simply edit it and remove lines.
       <PRE>
    lib/
    include/g++-v3/
+      backward/
       bits/
-      ext/
-   CPU-vendor-OS/include/g++-v3/
-      bits/
+      <EM>cpu-vendor-os</EM>/bits/
       ext/</PRE>
    </P>
    <P>You can check the status of the build without installing it using
        <P>Use the <TT>ldd(1)</TT> utility to show which library the system
           thinks it will get at runtime.
        </P>
+       <P>A libstdc++.la file is also installed, for use with Libtool.  If
+          you use Libtool to create your executables, these details are
+          taken care of for you.
+       </P>
    </OL>
    </P>
 
 <P CLASS="fineprint"><EM>
 Comments and suggestions are welcome, and may be sent to
 <A HREF="mailto:libstdc++@gcc.gnu.org">the mailing list</A>.
-<BR> $Id: install.html,v 1.4 2001/02/07 00:03:20 pme Exp $
+<BR> $Id: install.html,v 1.5 2001/04/03 00:26:54 pme Exp $
 </EM></P>