TODO: Update.

2001-12-18  Benjamin Kosnik  <bkoz@redhat.com>

	* 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
This commit is contained in:
Benjamin Kosnik 2001-12-18 22:01:20 +00:00 committed by Benjamin Kosnik
parent ae6c1efd65
commit 9560d353d3
4 changed files with 38 additions and 100 deletions

View File

@ -1,3 +1,10 @@
2001-12-18 Benjamin Kosnik <bkoz@redhat.com>
* 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 <bkoz@redhat.com>
* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Extended checking before

View File

@ -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 <xxxx>.
include/std
Files meant to be found by #include <name> 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 <iostream.h>.
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 <xxxx>.
include/backward
Headers provided for backward compatibility, such as <iostream.h>.
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/

View File

@ -1,13 +1,6 @@
- exception specifications need to be reviewed for all parts of the
library support and utility areas, particularly <new>.
- 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<wchar_T> 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<wchar_t> has not been adequently handled in terms of the
locale bits. (The io bits are done, with the exception of one
ostream<wchar_t> inserter for char.
- bool locale::operator() looks to be non-conformant
- num_get<char>::do_get<user_defined_type>
num_put<char>::do_put<user_defined_type>
num_put<char, char *>::do_put(char *, ios_base &, char, long double) const
num_put<char, char *>::do_put(char *, ios_base &, char, double) const
num_put<char, char *>::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 _Facet> class locale locale::combine(const locale &)
- ctype_byname<char>: 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<float> 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<float>& complex<float>::operator+=<float>(const complex<float> &)
class complex<float>& complex<float>::operator-=<float>(const complex<float> &)
class complex<float>& complex<float>::operator*=<float>(const complex<float> &)
- appears as if the following extraction operators are undefined:
operator>>(istream, complex<float>&)
operator>>(istream, complex<double>&)
operator>>(istream, complex<long double>&)
operator>>(istream, complex<user_defined_type>&)
sqrt (const complex<T>& x)
- Protect valarray::result_type (not Standard) and make it work with
the various helper classes.
- Make sure `valarray<bool> & == _Expr<_BinClos<logical_or,_ValArray,_ValArray,double,double>,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.
- <cmath>: provide missing names.
- provide testsuites for numerics.
- add FAQ entries -- improve the install instructions