From: Benjamin Kosnik Date: Tue, 18 Dec 2001 22:01:20 +0000 (+0000) Subject: TODO: Update. X-Git-Tag: prereleases/libstdc++-3.0.95~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9560d353d38cd1efb65c919eb44953503bcfafdc;p=thirdparty%2Fgcc.git TODO: Update. 2001-12-18 Benjamin Kosnik * docs/html/17_intro/TODO: Update. * docs/html/17_intro/RELEASE-NOTES: Edits, update. * README: Edit for clarity, update to reflect current directory structure. From-SVN: r48165 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 8e1544eb6ad4..7157fc1bd456 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2001-12-18 Benjamin Kosnik + + * docs/html/17_intro/TODO: Update. + * docs/html/17_intro/RELEASE-NOTES: Edits, update. + * README: Edit for clarity, update to reflect current directory + structure. + 2001-12-18 Benjamin Kosnik * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Extended checking before diff --git a/libstdc++-v3/README b/libstdc++-v3/README index 3ace755fa0ee..f95a8c93382c 100644 --- a/libstdc++-v3/README +++ b/libstdc++-v3/README @@ -4,12 +4,11 @@ New users may wish to point their web browsers to the file documentation.html in the 'docs/html' subdirectory. It contains brief building instructions and notes on how to configure the library in interesting ways. +Instructions for configuring and building appear in +docs/html/install.html. -Instructions for configuring and building this snapshot appear -in docs/html/install.html. - -This directory contains the files needed to create [a still broken -subset of] an ISO Standard C++ Library. +This directory contains the files needed to create an ISO Standard C++ +Library. It has subdirectories: @@ -17,23 +16,10 @@ It has subdirectories: Files in HTML and text format that document usage, quirks of the implementation, and contributor checklists. - include/bits - Files included by standard headers and by other files in - the bits directory. Includes a set of files bits/std_xxxx.h - that implement the standard headers . - include/std Files meant to be found by #include directives in standard-conforming user programs. - include/ext - Headers that define extensions to the standard library. No - standard header refers to any of them. - - include/backward - Headers provided for backward compatibility, such as . - They are not used in this library. - include/c Headers intended to directly include standard C headers. [NB: this can be enabled via --enable-cheaders=c] @@ -50,6 +36,19 @@ It has subdirectories: defined there into the _C_legacy namespace. [NB: this can be enabled via --enable-cheaders=c_shadow] + include/bits + Files included by standard headers and by other files in + the bits directory. Includes a set of files bits/std_xxxx.h + that implement the standard headers . + + include/backward + Headers provided for backward compatibility, such as . + They are not used in this library. + + include/ext + Headers that define extensions to the standard library. No + standard header refers to any of them. + src Files that are used in constructing the library, but are not installed. @@ -73,10 +72,20 @@ Currently these are: config/io config/locale -Files needed only to construct the library, but not installed, -are in src/. Files to be copied as part of an installation are -all found in the subdirectories mentioned above. (A configure -script may link files from another directory into one of these.) +In addition, three subdirectories are convenience libraries: + + libio + Contains the subset of the GNU libio library needed for + C++. Currently not used. + + libmath + Support routines needed for C++ math. Only needed if the + underlying "C" implementation is weak or looses. + + libsupc++ + Contains the runtime library for C++, including exception + handling and memory allocation and deallocation, RTTI, terminate + handlers, etc. Note that glibc also has a bits/ subdirectory. We will either need to be careful not to collide with names in its bits/ diff --git a/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES b/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES index 0f834224c01a..5cf43ee972ba 100644 Binary files a/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES and b/libstdc++-v3/docs/html/17_intro/RELEASE-NOTES differ diff --git a/libstdc++-v3/docs/html/17_intro/TODO b/libstdc++-v3/docs/html/17_intro/TODO index 0128b2bb5347..6a9e16da76c7 100644 --- a/libstdc++-v3/docs/html/17_intro/TODO +++ b/libstdc++-v3/docs/html/17_intro/TODO @@ -1,13 +1,6 @@ - exception specifications need to be reviewed for all parts of the library support and utility areas, particularly . -- exception/stdexcept headers will do, but are not cleanly -implemented. Also, some kind of consensus needs to be established on -if the presence of stdexcept should be assumed in iostreams -headers. V3 currently takes the position that references to stdexcept -classes necessitates the inclusion of stdexcept, other library vendors -seem less inclined. - - scoping/linking issues WRT to C structs need to be worked out. See Nathan's commentary on cantrip, http://www.cantrip.org/cheaders.html @@ -20,66 +13,20 @@ string and vector iterator classes. basic_string::reverse_iterator may be implemented incorrectly, or need things like operator==(__normal_iterator, const char*&), and swap(vector) -- SGI iterator/allocator classes are not strictly conforming. In -particular, raw_storage_iterator, mem_fun1_ref_t are all problem -areas. - - auto_ptr: seems to be some disagreement on what is standards-conformant behavior, specially on conversion operators. -- vswprintf, vwprintf, wprintf, wscanf, wcsftime, swscanf, fgetws, -fputwc, fputws, fwide, fwprintf, fwscanf, getwc, getwchar, putwc, etc: -C library wchar_t functionality. - -- facets heirarchies seem on occasion give odd errors to conformace -tests. Need to test that they are constructed in a strictly-conforming -manner. - -- stuff like `LC_CTYPE' is not found. Locale oddness? - - header optimizations to keep compile times reasonable are most certainly detracting from full conformance, as many templatized definitions are squired away and pre-instantiated, so that the compiler doesn't have to parse them. Areas effected: valarray, string, all of iostreams and locales. -- basic_string not implemented - -- ostreambuf_iterator has not been made standards-conformant (both -char and wchar_t) In particular, look at -time_put::put(OutIt, ios_base&, char, const tm*, const char*, const -char*) const - - C-related issues WRT to libio and filepos, mbstate_t. Need to straighten this stuff out with the glibc-2.2 libio. Also may need to define operators for mbstate_t so that 'mbstate_t& == mbstate_t' is something that can be done. -- codecvt has not been adequently handled in terms of the -locale bits. (The io bits are done, with the exception of one -ostream inserter for char. - -- bool locale::operator() looks to be non-conformant - -- num_get::do_get - num_put::do_put -num_put::do_put(char *, ios_base &, char, long double) const -num_put::do_put(char *, ios_base &, char, double) const -num_put::do_put(char *, ios_base &, char, void const *) const -etc. -appear to be broken, or headers mashed, or undefined. - -- locale and std::combine not working correctly - template class locale locale::combine(const locale &) - -- ctype_byname: check to make sure derivation standards-conformant. - -- codecvt::unshift not working for char, wchar_t - -- no match for money_base::pattern &[int] - -- money_get::do_get weirded out for wchar_t - - looks like deque::get_allocator not standards conformant or deque allocator non-standard. @@ -90,18 +37,10 @@ needs to be drawn throughout the entire STL implementation. - priority_queue conversions may be non-conformant -- istream_iterator uses 2 arguments, should it be 4? - - 'do the right thing' ctor fixing needs to be done for string. This is still subject to some debate on the library issues list, so I suggest punting till the dust clears. -- the ctype and "tolower" "isspace" stuff really needs to be sorted -out. A portable, cross platform interface needs to be defined. A -"fixincludes"-like solution needs to be put into place to prune -headers. The "C" functions need to be able to work in std:: and "C" -namespaces. - - complex seems to be the single largest source of internal compiler errors when compiling the c++ library across non-x86 platforms. Somebody needs to make sure the complex support builtin to @@ -112,23 +51,12 @@ class complex& complex::operator+=(const complex &) class complex& complex::operator-=(const complex &) class complex& complex::operator*=(const complex &) -- appears as if the following extraction operators are undefined: -operator>>(istream, complex&) -operator>>(istream, complex&) -operator>>(istream, complex&) -operator>>(istream, complex&) -sqrt (const complex& x) - - Protect valarray::result_type (not Standard) and make it work with the various helper classes. - Make sure `valarray & == _Expr<_BinClos,bool>' is defined -- long double std_cmath stuff looks weak - -- fwide not declared. C++ wchar_t issues completely unaddressed. - - known issues WRT to io and corner cases with the buffers. This is still subject to interpretation, and I think the current implementation is credible. @@ -160,12 +88,6 @@ sources, with macro-guards. - add MT support for locale, string, istream, ostream -- specialize functions that use_facet<> calls on failure for the required - facets, and construct them lazily so unused facets need not be constructed - when the locale is. - -- : provide missing names. - - provide testsuites for numerics. - add FAQ entries -- improve the install instructions