From a94e5126ff25d3ec64cdeb750fc684e54afb4795 Mon Sep 17 00:00:00 2001 From: pme Date: Wed, 30 May 2001 21:55:05 +0000 Subject: [PATCH] 2001-05-30 Phil Edwards * 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 --- libstdc++-v3/ChangeLog | 21 ++ libstdc++-v3/docs/doxygen/user.cfg.in | 2 +- libstdc++-v3/docs/html/17_intro/howto.html | 7 +- libstdc++-v3/docs/html/18_support/howto.html | 9 +- libstdc++-v3/docs/html/19_diagnostics/howto.html | 16 +- libstdc++-v3/docs/html/20_util/howto.html | 23 +-- libstdc++-v3/docs/html/23_containers/howto.html | 14 +- libstdc++-v3/docs/html/24_iterators/howto.html | 97 ++++++++- libstdc++-v3/docs/html/25_algorithms/howto.html | 16 +- libstdc++-v3/docs/html/26_numerics/howto.html | 26 ++- libstdc++-v3/docs/html/27_io/howto.html | 13 +- .../docs/html/27_io/iostreams_hierarchy.pdf | 1 - libstdc++-v3/docs/html/documentation.html | 67 +++--- libstdc++-v3/docs/html/ext/howto.html | 21 +- libstdc++-v3/docs/html/faq/index.html | 164 ++++++--------- libstdc++-v3/docs/html/faq/index.txt | 226 +++++++++------------ libstdc++-v3/docs/html/install.html | 146 +++++-------- 17 files changed, 431 insertions(+), 438 deletions(-) delete mode 100644 libstdc++-v3/docs/html/27_io/iostreams_hierarchy.pdf diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6d2e09d..73bbce6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,24 @@ +2001-05-30 Phil Edwards + + * 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 * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Use diff --git a/libstdc++-v3/docs/doxygen/user.cfg.in b/libstdc++-v3/docs/doxygen/user.cfg.in index 85bcb7c..eae5c69 100644 --- a/libstdc++-v3/docs/doxygen/user.cfg.in +++ b/libstdc++-v3/docs/doxygen/user.cfg.in @@ -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 diff --git a/libstdc++-v3/docs/html/17_intro/howto.html b/libstdc++-v3/docs/html/17_intro/howto.html index ee918c5..f284aa5 100644 --- a/libstdc++-v3/docs/html/17_intro/howto.html +++ b/libstdc++-v3/docs/html/17_intro/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Chapter 17 - + @@ -125,8 +125,7 @@

<foo> vs <foo.h>

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 std::.

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 @@ -145,7 +144,7 @@

Comments and suggestions are welcome, and may be sent to the mailing list. -
$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 $

diff --git a/libstdc++-v3/docs/html/18_support/howto.html b/libstdc++-v3/docs/html/18_support/howto.html index f2b5d88..154177b 100644 --- a/libstdc++-v3/docs/html/18_support/howto.html +++ b/libstdc++-v3/docs/html/18_support/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Chapter 18 - + @@ -186,6 +186,11 @@ out of them, Bad Things happen.

+

Note also that atexit() 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. +

Return to top of page or to the FAQ.

@@ -260,7 +265,7 @@

Comments and suggestions are welcome, and may be sent to the mailing list. -
$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 $

diff --git a/libstdc++-v3/docs/html/19_diagnostics/howto.html b/libstdc++-v3/docs/html/19_diagnostics/howto.html index 26ba4cd..27e6361 100644 --- a/libstdc++-v3/docs/html/19_diagnostics/howto.html +++ b/libstdc++-v3/docs/html/19_diagnostics/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Chapter 19 - + @@ -93,16 +93,8 @@ object file. The checks are also cleaner and easier to read and understand.

-

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 - _GLIBCPP_NO_CONCEPT_CHECKS (yes, with the leading underscore), - _STL_NO_CONCEPT_CHECKS (also with the leading underscore), - or NDEBUG. 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 assert(), which is often turned - off for production builds. +

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.

Return to top of page or @@ -116,7 +108,7 @@

Comments and suggestions are welcome, and may be sent to the mailing list. -
$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 $

diff --git a/libstdc++-v3/docs/html/20_util/howto.html b/libstdc++-v3/docs/html/20_util/howto.html index f959468..1d425fb 100644 --- a/libstdc++-v3/docs/html/20_util/howto.html +++ b/libstdc++-v3/docs/html/20_util/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Chapter 20 - + @@ -96,7 +96,7 @@
     struct My_Type
     {
-	My_Type (My_Type const&);
+        My_Type (My_Type const&);
     };
       
Note the const keyword; the object being copied shouldn't change. @@ -120,23 +120,10 @@ void f() { - std::vector< std::auto_ptr<int> > vec_ap_int; + std::vector< std::auto_ptr<int> > vec_ap_int; } - Should you try this, you will see an error along the lines of the - following (look through the ugly line-wrapping): -
-/installdir/include/g++-v3/bits/concept_checks.h: In
- static member function `static _Type
- _STL_ERROR::__const_parameter_required_for_copy_constructor(_Type, const
- _Type&) [with _Type = std::auto_ptr<int>]':
-/installdir/include/g++-v3/bits/concept_checks.h:383: passing
- `const std::auto_ptr<int>' as `this' argument of
- `std::auto_ptr<_Tp>::operator std::auto_ptr_ref<_Tp1>()
- [with _Tp1 = int, _Tp = int]' discards qualifiers
-      
- 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.

Return to top of page or to the FAQ. @@ -213,7 +200,7 @@

Comments and suggestions are welcome, and may be sent to the mailing list. -
$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 $

diff --git a/libstdc++-v3/docs/html/23_containers/howto.html b/libstdc++-v3/docs/html/23_containers/howto.html index f9d0431..603c499 100644 --- a/libstdc++-v3/docs/html/23_containers/howto.html +++ b/libstdc++-v3/docs/html/23_containers/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Chapter 23 - + @@ -45,10 +45,8 @@ algorithms are only given endpoints to work with. For the container classes, these are iterators (usually begin() and end(), but not always). For builtin arrays, these are - the address of the first element and the past-the-end element. - + the address of the first element and the + past-the-end element.

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 @@

Second, the line

-    inline unsigned int lengthof (T (&)[sz]) { return sz; } 
+ inline unsigned int lengthof (T (&)[sz]) { return sz; } looks just weird! Hint: unused parameters can be left nameless.

Return to top of page or @@ -134,7 +132,7 @@ 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.)

A container<bool>.   The Committee made provision @@ -239,7 +237,7 @@

Comments and suggestions are welcome, and may be sent to the mailing list. -
$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 $

diff --git a/libstdc++-v3/docs/html/24_iterators/howto.html b/libstdc++-v3/docs/html/24_iterators/howto.html index 5210632..9c658f9 100644 --- a/libstdc++-v3/docs/html/24_iterators/howto.html +++ b/libstdc++-v3/docs/html/24_iterators/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Chapter 24 - + @@ -70,7 +70,98 @@

It ends where?

-

Blah. +

This starts off sounding complicated, but is actually very easy, + especially towards the end. Trust me. +

+

Beginners usually have a little trouble understand the whole + 'past-the-end' thing, until they remember their early algebra classes + (see, they told you that stuff would come in handy!) and + the concept of half-open ranges. +

+

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: +

    +
  1. You can point anywhere in the array, or to the first element + past the end of the array. 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. +
  2. 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. +
  3. 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. +
+ 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++);. +

+

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 boundary + markers: +

+
+   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
+
+      
+ See? Everything between the boundary markers is part of the array. + Simple. +

+

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, "Everything up through this point," + and a graph terminating with an open dot meant, "Everything up + to, but not including, this point," respectively called closed + and open ranges? Remember how closed ranges were written with + brackets, [a,b], and open ranges were written with parentheses, + (a,b)? +

+

The boundary markers for arrays describe a half-open range, + starting with (and including) the first element, and ending with (but + not including) the last element: [beginning,end). See, I + told you it would be simple in the end. +

+

Iterators, and everything working with iterators, follows this same + time-honored tradition. A container's begin() method returns + an iterator referring to the first element, and its end() + 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. +

+

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. +

+

This generalizes very well. You can operate on sub-ranges quite + easily this way; functions accepting a [first,last) 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. +

+

Just don't dereference end().

Return to top of page or to the FAQ. @@ -85,7 +176,7 @@

Comments and suggestions are welcome, and may be sent to the mailing list. -
$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 $

diff --git a/libstdc++-v3/docs/html/25_algorithms/howto.html b/libstdc++-v3/docs/html/25_algorithms/howto.html index f0481cd..5444405 100644 --- a/libstdc++-v3/docs/html/25_algorithms/howto.html +++ b/libstdc++-v3/docs/html/25_algorithms/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Chapter 25 - + @@ -37,12 +37,12 @@ important things:
  1. 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.
  2. 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.

Even strings can be fed through the algorithms here, although the @@ -59,7 +59,7 @@

The single thing that trips people up the most is the definition of range used with iterators; the famous "past-the-end" rule that everybody loves to hate. The - iterators chapter of this + iterators chapter of this document has a complete explanation of this simple rule that seems to cause so much confusion. Once you get range into your head (it's not that hard, honest!), then the algorithms are a cakewalk. @@ -87,7 +87,7 @@

Comments and suggestions are welcome, and may be sent to the mailing list. -
$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 $

diff --git a/libstdc++-v3/docs/html/26_numerics/howto.html b/libstdc++-v3/docs/html/26_numerics/howto.html index 4f33841..f55b5dd 100644 --- a/libstdc++-v3/docs/html/26_numerics/howto.html +++ b/libstdc++-v3/docs/html/26_numerics/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Chapter 26 - + @@ -35,6 +35,7 @@
  • Complex Number Processing
  • Array Processing
  • Numerical Functions +
  • C99
    @@ -125,6 +126,27 @@ to the FAQ.

    +
    +

    C99

    +

    In addition to the other topics on this page, we'll note here some + of the C99 features that appear in libstdc++-v3. +

    +

    The C99 features depend on the --enable-c99 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. +

    +

    As of GCC 3.0, C99 support includes classification functions + such as isnormal, isgreater, isnan, etc. + The functions used for 'long long' support such as strtoll + are supported, as is the lldiv_t typedef. Also supported + are the wide character functions using 'long long', like + wcstoll. +

    +

    Return to top of page or + to the FAQ. +

    + @@ -133,7 +155,7 @@

    Comments and suggestions are welcome, and may be sent to the mailing list. -
    $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 $

    diff --git a/libstdc++-v3/docs/html/27_io/howto.html b/libstdc++-v3/docs/html/27_io/howto.html index 0da4417..8495f08 100644 --- a/libstdc++-v3/docs/html/27_io/howto.html +++ b/libstdc++-v3/docs/html/27_io/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Chapter 27 - + @@ -26,7 +26,6 @@
  • Copying a file
  • The buffering is screwing up my program!
  • Binary I/O -
  • Iostreams class hierarchy diagram
  • What is this <sstream>/stringstreams thing?
  • Deriving a stream buffer
  • More on binary I/O @@ -285,14 +284,6 @@


    -

    Iostreams class hierarchy diagram

    -

    The diagram 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 - Musee du Louvre. -

    - -

    What is this <sstream>/stringstreams thing?

    Stringstreams (defined in the header <sstream>) are in this author's opinion one of the coolest things since @@ -416,7 +407,7 @@

    Comments and suggestions are welcome, and may be sent to the mailing list. -
    $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 $

    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 index ab88913..0000000 --- a/libstdc++-v3/docs/html/27_io/iostreams_hierarchy.pdf +++ /dev/null @@ -1 +0,0 @@ -%PDF-1.2 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 841 595] /Resources 4 0 R /Contents 5 0 R /PieceInfo << /Illustrator7.0 << /LastModified (D:19990723224941+00'00') >> >> >> endobj 4 0 obj << /ProcSet [/PDF /Text] /Font 6 0 R >> endobj 6 0 obj << /F0 7 0 R >> endobj 5 0 obj << /Length 4532 /Filter [/ASCII85Decode /FlateDecode] >> stream GhUtXCMt.N(B"F5&+aY/@Qi]I;%s0lBq&tK!K+"a/W^0g,*/;JNiYL/lXkYFSkBQ+3$VRLAAp6[+Gk2p ]Y$V'q][Ii0`9nKmh=9$qUafIYES-6c9>:0iiB70cd1lN;\^Z5B(On5=3Kp1o4O9Ms/FWC4.r(nFZ"ID e#N8>Y&;s3hk&Gh=oPY>g/R7S`N35&lSnKGJT'N#f3]=I^3Ma7p@ZTLj1W%,c`?_IA&WBR:iYE0/De,) .5tSk?gUfI?gLVJ]B-%RhCB-/&1(hF(H3"13[7AhH6TkcV(T9#\l_XZ&A6prLn^=89]&sO]lO>H;AgG. E*Ffh#_X%&%CJ$hiAQ5#<*ID"b0kT-./,#D&_iK%9J/jH(%lNWYDLdVe&3s]TMfhIS&j#;9I<#\Qb$,7 OX=,>d],8TWGK,=QAXgt=(NL2B`c5r3!;DaCQfNY@HgI98u#(\L+TN8Jl%5*BSV6Z6K9q_Z)(MW:'d`5 CE&^O_Q6P>1m6SXTkQu$46r]!#A8?WKTu\^;IZ(1X`PciW(Q+Lf.k&6r_R]!C16>/_7.8)ebcN7*qjii`eZi1/lL%Sq>dU+ngdD%eur2Ir!M];qA%XP nggM_lW7J!bTqU+1.e,$hd?==gUobOrnIVuqu)sI^0ESJMlYEI^7K1Boq03mjIdgC#]cL-`Mp(D""BX_ 4*ghojioIOq^$>j-UD`2S$S)U@SX26/\%YFiKkq]SH'UgFsDKYc3pK<*th-hCrY?5N'BlZta# XuECr[WqMT*BHe=_R7LH*hKeO"[W?DCL1*,ub^MT0XZm%bleOB\KK]eSSfp?Yd)Uop%!fsF5729u=_ZrQ 5i@n/UVhOk%R==$MqJL_I=6iS#FhP;d 2Ufpk&(MK2D4[:eTU]13N@h:pI!M%FR(1,0_QrEs+Q$' Yn2o%b82KoY(S\8Pd88GM)kr+\o3H%i1p+NQ0K1E_t@s\pi$i7GVkCc"r:[KJu^'S\<74km['*s#_\Ft dMtM_6;h@h@Xq':.(O*fP^rU]N.D+#-m,3igY6dHDAg)`Pc^^`PkR6[#7dB$&m<*P$o:\9>RPgW*&XO: =AJ*0Yqp!^F@ld:d@mtqV%U&G7$WCp^tP0cWR`Fi\,aRdr7U!:Cd_.&3$"/Ee0;p&J8WO>BkO<5Vi34m 7O=jKMcj^c`DsuQ7&c/HYmi"_5%_(>kr8t6*NoP5:e2bi&TMLFZW[O#aDk322g:'@0^j[o+dY&WH1=bO .5iY75"c']o1"[T&)?Y&?^*Q!WeRT]g9Bo\ocqOAgR@"4h\b^tXf)'7dPL?>[(>+T4=g/*U.0cD''>im=>33CX'CB; 3GJX7QE_7QK=04O^T Y;TT?I\&I@q5g"@TW[#C->uYV^H=klN'`Do:g44"6nm6Tr-GXCpaIu4.!A.l99YQFY7\B@RsIqM*r$L: ctp+YI=*i@S[\K\R_G:Lc+D[,GNc9fCo]L5+7FWa0\DE`.,n0-oYYaG;[jClT-,@fT`A!.$l0]d70>8& B2h**HZlu[*6;P:D\9*7o*f:V!7OpNp^k&9^Du'>a!=G06qosuDO;9WG&PPrhd'UE_5!QLVIXN?3kefN S)$62YNh%W3oAP7T>L9OFFLoL5jrpIjTBg1q$o2*oE"*" #MjR0VX;"P?T^dW4f?oH[02C`1F3P*&bn;/$"54+HToa31o9QYBA4E2-MB,p)'7MA_4rcY8H6p,*>Ye>MJNe+i?d8NU3c;RgeDM[M7b&\Egn`&g8I+]ePi'UB=X/WH9dDIHtH)X`qkOd%N"&E`qe= ?C"#SYq<"D#I:GXRB6%_QXsi[BhMK^%V-HR10NkrJK&KaWXQnDou/BF*pHQ#n3ORHThoac+*Yb"dV.30 jM4,s=K)(LjAZbj$uIba,:_-`>WX14KH.\GNa%Z91hBVdEouFiBIfLZe'R<"m*r.u[Ss*f^o-97="l59 0;]h"VcRV69',:O:;V@O.ZV.TM.$^-En$cc=3ej,]p"PO[r*65)!\T8[RDOPr?f5mpc-H830fjj?mOD&V2fGJ0;nXLjUYB7S;iW!$qjV;3)2" +p6_sKT,_'lJH#s.$JZoaCQVu3UpW/oCrX:X4?e;6^Bu\FcMQ*oIXa_hQd'=>[o[^$SJ%Da5fBUpW2&o rRRU_+s_\t&T5Y`>dV]'S-k@"Q_kM?n_.I&4da\chQkMCLk)1%@f4\9GX#!HfnpZSEd 5B4@A0t)n-ciJ-WAjb9Ai!?.?F9;/<=hf^D5%cfket6q?T``S$NEX'@qD/F@qIuIR-.3o33<0"0Z2*C& ](Tdo:@SsHBq*3gY@lfrQ[90l\$q+^c-^g0-3t+"EZa%<[+CI;?,F"&F!tPGJGBK!YuEtS^Mj9R"Iekj ftBa(*OOrY;2DU%`o3kZF#L!cVp0L-BKO8n.PU;?r:TE:TE=Ug9K7 !N&L88e(4u=W"i,"cZ?qFSk8.n>E?ad$qUprd3T>7CH16s 4(],a>iE0c7#WqRT.IqDUJll/WsBaY+eHbLpWU#QjTQ0aoa,:UJ=/+5M2!W7E1fE,-t0eH+m<,]+hjGn M'aa8e_U[@eh1I)Cd!4MWnHO2i]&!)gJ`E;)5'Y;lfW-c`Rrmh7SCpj.DWjc(`,PSO_oPJbKPG/RJ6HG&htqbr484ODB,["l69o4n9F i)8b-L%'&bR!>dH;\*!YB"Io8>$Wu.S,QU.iO`0ZY;Mu(')F>_.g?f&Kq^t6a\op<%ifGI2?T1@\fU!E4Q_?<[Fg&Df40DH29ln?<1(*I( *NMEfeVDBiQ[)(Ind`qAo(c4L3/+\H8?^>$PP"*O-o0p2HN^\%3V9r`NO/"VWSQH=-iXDQ?kBF~> endstream endobj 7 0 obj << /Type /Font /Subtype /Type1 /Name /F0 /BaseFont /Helvetica /Encoding /MacRomanEncoding >> endobj xref 0 8 0000000000 65535 f 0000000009 00000 n 0000000058 00000 n 0000000115 00000 n 0000000298 00000 n 0000000384 00000 n 0000000353 00000 n 0000005005 00000 n trailer << /Root 1 0 R /Size 8 >> startxref 5113 %%EOF \ No newline at end of file diff --git a/libstdc++-v3/docs/html/documentation.html b/libstdc++-v3/docs/html/documentation.html index 7af16b0..2a16a84 100644 --- a/libstdc++-v3/docs/html/documentation.html +++ b/libstdc++-v3/docs/html/documentation.html @@ -3,7 +3,7 @@ Standard C++ Library v3 - + @@ -11,15 +11,42 @@

    All of these documents (in fact, this entire homepage set) are bundled with the library source, under the docs subdirectory, for releases and snapshots. The sole exception is the - automatically-generated source documentation, - available separately. + automatically-generated source documentation, available separately.

    +
    +

    Source Documentation

    +

    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. +

    +

    + The latest collection is libstdc++-doxygen-20010501.tar.gz (3.7MB), + viewable online. + The collection is also available in the libstdc++ snapshots directory at + <URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/>. You will + almost certainly need to use one of the + mirror sites to download + the tarball. After unpacking, simply load + libstdc++-doxygen-20010501/index.html + in a browser. Feedback (and additional documentation!) is welcome. +

    + +
    +

    Configuring, Building, Installing

    + + +

    Introductory notes for libstdc++

    This is a short list of text files pertaining to this implementation of ISO 14882. A brief description follows the name of the file.

    +

    - -
    -

    Configuring, Building, Installing

    - +


    Chapter-Specific Information, Extensions, Notes and Advice

    @@ -71,27 +92,5 @@
  • Extensions to the Standard Library -
    -

    Source Documentation

    -

    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. -

    -

    - The latest - collection is libstdc++-doxygen-20010501.tar.gz (3.7MB), available in - the libstdc++ snapshots directory at - <URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/>. You will - almost certainly need to use one of the - mirror sites to download - the tarball. After unpacking, simply load - libstdc++-doxygen-20010501/index.html in a browser. You can also - browse the same collection - online. - Feedback (and additional documentation!) is welcome. -

    - - diff --git a/libstdc++-v3/docs/html/ext/howto.html b/libstdc++-v3/docs/html/ext/howto.html index cdc0958..593e30f 100644 --- a/libstdc++-v3/docs/html/ext/howto.html +++ b/libstdc++-v3/docs/html/ext/howto.html @@ -8,7 +8,7 @@ libstdc++-v3 HOWTO: Extensions - + @@ -116,14 +116,21 @@

    • filebufs have another ctor with this signature:
      -basic_filebuf(int __fd, const char* __name, ios_base::openmode __mode); +basic_filebuf(__c_file_type*, ios_base::openmode, int_type);
      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:
      - int __fd, // open file descriptor
      - const char* __name,
      - ios_base::openmode __mode // same as the other openmode uses + arguments are as follows: +
        +
      • __c_file_type* F + // the __c_file_type typedef usually boils down to stdio's FILE +
      • ios_base::openmode M + // same as all the other uses of openmode +
      • int_type B + // buffer size, defaults to BUFSIZ +
      + For those wanting to use file descriptors instead of FILE*'s, I + invite you to contemplate the mysteries of C's fdopen().

    Return to top of page or @@ -159,7 +166,7 @@

    Comments and suggestions are welcome, and may be sent to the mailing list. -
    $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 $

    diff --git a/libstdc++-v3/docs/html/faq/index.html b/libstdc++-v3/docs/html/faq/index.html index 22518ed..e202e54 100644 --- a/libstdc++-v3/docs/html/faq/index.html +++ b/libstdc++-v3/docs/html/faq/index.html @@ -9,7 +9,7 @@ ** Locations of "the most recent snapshot is the Nth" text are ** answers 1_1, 1_4, 4_1, 5_6. --> - + @@ -41,8 +41,7 @@ http://gcc.gnu.org/onlinedocs/libstdc++/faq/.

  • Installation
    1. How do I install libstdc++-v3? -
    2. Is this a drop-in replacement for the - libstdc++ that's shipped with g++? +
    3. [removed]
    4. What is this CVS thing that you keep mentioning?
    5. How do I know if it works? @@ -52,7 +51,7 @@ http://gcc.gnu.org/onlinedocs/libstdc++/faq/.

      1. Can libstdc++-v3 be used with <my favorite compiler>? -
      2. Building under Cygwin hangs/explodes!? +
      3. [removed]
      4. Building under DEC OSF kills the assembler
      @@ -82,7 +81,7 @@ http://gcc.gnu.org/onlinedocs/libstdc++/faq/.

    6. What's next after libstdc++-v3?
    7. What about the STL from SGI?
    8. Extensions and Backward Compatibility -
    9. Compiling with "-fnew-abi" +
    10. [removed]
    11. Is libstdc++-v3 thread-safe?
    12. How do I get a copy of the ISO C++ Standard?
    @@ -146,10 +145,10 @@ HREF="http://gcc.gnu.org/gcc-2.95/buildstat.html">portability Drepper are the lead maintainers of the CVS archive.

    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 homepage. If you - have questions, ideas, code, or are just curious, sign up! + doing so on the homepage. + If you have questions, ideas, code, or are just curious, sign up!


    @@ -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.

    which is no longer available, thanks deja...--> -

    Nathan Myers gave the best of all possible answers, responding - to a Usenet article asking this question: Sooner, if you help. +

    Nathan Myers gave the best of all possible answers, responding to a + Usenet article asking this question: Sooner, if you help.

    @@ -254,20 +253,19 @@ which is no longer available, thanks deja...--> 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 autoconfand 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 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. + with new flags such as --enable-threads are there also, as well as + patches and instructions for working with GCC 2.95.

    The top-level install.html and RELEASE-NOTES files contain @@ -278,11 +276,9 @@ HREF="http://sources.redhat.com/automake/">automake.


    -

    2.2 Is this a drop-in replacement for the - libstdc++ that's shipped with g++?

    -

    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. +

    2.2 [removed]

    +

    This question has become moot and has been removed. The stub + is here to preserve numbering (and hence links/bookmarks).


    @@ -294,7 +290,7 @@ HREF="http://sources.redhat.com/automake/">automake. HREF="http://www.gnu.org/software/cvs/cvs.html">CVS entry in the GNU software catalogue has a better description as well as a - link to the makers of CVS. + link to the makers of CVS.

    The "anonymous client checkout" 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.

    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") 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! @@ -353,29 +340,9 @@ HREF="http://sources.redhat.com/automake/">automake.


    -

    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. -

    -

    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 - installation instructions). - Or you can get a prebuilt set of bits/std_limits.h and - src/limitsMEMBERS.cc files from Mumit Khan's - Cygwin-related website. +

    3.2 [removed]

    +

    This question has become moot and has been removed. The stub + is here to preserve numbering (and hence links/bookmarks).


    @@ -403,7 +370,7 @@ HREF="http://sources.redhat.com/automake/">automake.

    4.1 What works already?

    This is a verbatim clip from the "Status" section - of the RELEASE-NOTES for the latest snapshot. + of the RELEASE-NOTES for the latest snapshot.

    @@ -473,7 +440,8 @@ to the list, Nathan Myers announced that he has started a list of libstdc++, either. Really! Please do not report these as bugs.

    -

    The biggest of these is the quadzillions of warnings about the +

    -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 @@ -483,14 +451,15 @@ to the list, Nathan Myers announced that he has started a list of

    -

    Another is the rel_ops namespace and the template +

    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 - sums - things up here. + 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 + sums + things up here.

    The g++-3 headers are @@ -514,7 +483,8 @@ to the list, Nathan Myers announced that he has started a list of

    -

    If you're on a GNU/Linux system and have just upgraded to +

    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:

    @@ -527,22 +497,24 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
        
    Note that 2.95.x shipped with the
    old v2 library which is no longer - maintained. + 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 +

    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. 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).

    -

    More information, including how to optionally disable the checks, - is available here. +

    More information, including how to optionally enable/disable the + checks, is available + here.

    @@ -614,9 +586,8 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation.

    5.3 What about the STL from SGI?

    The 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. :-) + 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 @@ -642,14 +613,9 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation.


    -

    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 - thread - (by the name HOWTO-honor-std) is very instructive. More info - is at the end of RELEASE-NOTES. -

    -

    This functionality is now automated and turned on by default. +

    5.5 [removed]

    +

    This question has become moot and has been removed. The stub + is here to preserve numbering (and hence links/bookmarks).


    @@ -672,16 +638,15 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation.

    5.7 How do I get a copy of the ISO C++ Standard?

    -

    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 here. - (And if you've already registered with them, clicking this - link will take you to directly to the place where you can +

    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 here. + (And if you've already registered with them, clicking this link will + take you to directly to the place where you can buy the standard on-line.

    @@ -695,9 +660,10 @@ HREF="http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html">speculation.

    Comments and suggestions are welcome, and may be sent to 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 $

    + diff --git a/libstdc++-v3/docs/html/faq/index.txt b/libstdc++-v3/docs/html/faq/index.txt index f5f7bd5..37f8e7e 100644 --- a/libstdc++-v3/docs/html/faq/index.txt +++ b/libstdc++-v3/docs/html/faq/index.txt @@ -20,13 +20,12 @@ 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 ? - 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? _________________________________________________________________ @@ -184,39 +183,39 @@ 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 @@ -229,21 +228,13 @@ 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! @@ -269,26 +260,10 @@ 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 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::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 @@ -299,7 +274,7 @@ 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 - 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 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 - 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 diff --git a/libstdc++-v3/docs/html/install.html b/libstdc++-v3/docs/html/install.html index 24df89b..392186e 100644 --- a/libstdc++-v3/docs/html/install.html +++ b/libstdc++-v3/docs/html/install.html @@ -7,7 +7,7 @@ libstdc++-v3 Installation Instructions - + @@ -39,27 +39,32 @@

    Tools you will need beforehand

    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 mirror list.

    -

    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.) +

    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), + and libtool (multilanguage, version 1.4 or later), + 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).

    -

    If you don't have bash, and want to run 'make check' 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. +

    GNU Make is the only 'make' that will parse the makefiles correctly. +

    + +

    To test your build, you will need either DejaGNU 1.4 (to run + 'make check' like + the rest of GCC), + or Bash 2.x (to run 'make check-script').

    As of June 19, 2000, libstdc++ attempts to use tricky and @@ -73,44 +78,20 @@ here.

    +

    Setting up the source directories

    -

    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. - -

    - -

    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. -

    -

    The following definitions will be used throughout the rest of this document:

      @@ -129,7 +110,7 @@
    Note:
      -
    1. The .91 snapshot and following are intended to replace the +
    2. The 3.0 version and following are intended to replace the library that comes with the compiler, so libsrcdir and libbuilddir must be contained under gccsrcdir and gccbuilddir, respectively. @@ -140,58 +121,24 @@

    -

    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: -

    - -

    ...with a gcc-2.9[67] snapshot -

    Unpack the gccsrcdir and go into that directory. For - instance, gcc-2.95.2 is a valid gccsrcdir. - Once in gccsrcdir, you'll need to rename or delete - the libstdc++-v3 directory which comes with that snapshot: -

    +   

    Check out or download the gcc sources: the resulting source directory + (gcc or gcc-3.0, for example) is gccsrcdir. + Once in gccsrcdir, you'll need to rename or delete the + libstdc++-v3 directory which comes with that snapshot: +

        mv libstdc++-v3 libstdc++-v3-previous  [OR]
        rm -r libstdc++-v3
    -

    -

    Next, unpack the libstdc++-v3 library tarball into the - gccsrcdir directory; it will create a - libsrcdir called libstdc++-version: -

    -   gzip -dc libstdc++-version.tar.gz | tar xf -
    -

    -

    Finally, make a soft link between libsrcdir and - libstdc++-v3 so that libstdc++-v3 will be the default C++ - library used. -

    -   ln -s libsrcdir libstdc++-v3
    -

    - -

    ...with CVS gcc -

    Check out or download the gcc sources: the resulting source - directory is gccsrcdir. Once in gccsrcdir, - you'll need to rename or delete the libstdc++-v3 directory - which comes with that snapshot: -

    -   mv libstdc++-v3 libstdc++-v3-previous  [OR]
    -   rm -r libstdc++-v3
    -

    -

    Next, unpack the libstdc++-v3 library tarball into this - gccsrcdir directory; it will create a - libsrcdir called libstdc++-version: -

    +   

    Next, unpack the libstdc++-v3 library tarball into this + gccsrcdir directory; it will create a + libsrcdir called libstdc++-version: +

        gzip -dc libstdc++-version.tar.gz | tar xf -
    -

    -

    Finally, rename libsrcdir to libstdc++-v3 so that - gcc's configure flags will be able to deal with the new library. -

    +   

    +

    Finally, rename libsrcdir to libstdc++-v3 so that + gcc's configure flags will be able to deal with the new library. +

        mv libsrcdir libstdc++-v3
    -

    @@ -201,7 +148,7 @@ GCC Installation Instructions first.

    -

    Due to namespaces, when building libstdc++-v3 you'll have to configure +

    When building libstdc++-v3 you'll have to configure the entire gccsrcdir directory. The full list of libstdc++-v3 specific configuration options, not dependent on the specific compiler release being used, can be found here. @@ -235,13 +182,13 @@

        make all-target-libstdc++-v3
    This will configure and build the C++ library in the - gccbuilddir/cpu-vendor-OS/libstdc++ directory. + gccbuilddir/cpu-vendor-os/libstdc++ directory.

    If you are rebuilding from a previous build [attempt], some information is kept in a cache file. This is stored in - gccbuilddir/cpu-vendor-OS/ if you are building with + gccbuilddir/cpu-vendor-os/ if you are building with multilibs (the default), or in - gccbuilddir/cpu-vendor-OS/libstdc++-v3 if you have + gccbuilddir/cpu-vendor-os/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. @@ -263,10 +210,9 @@

        lib/
        include/g++-v3/
    +      backward/
           bits/
    -      ext/
    -   CPU-vendor-OS/include/g++-v3/
    -      bits/
    +      cpu-vendor-os/bits/
           ext/

    You can check the status of the build without installing it using @@ -316,6 +262,10 @@

    Use the ldd(1) utility to show which library the system thinks it will get at runtime.

    +

    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. +

    @@ -334,7 +284,7 @@

    Comments and suggestions are welcome, and may be sent to the mailing list. -
    $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 $

    -- 2.7.4