documentation.html: Add a pointer to the doxygen style guide.

2003-10-23  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/documentation.html: Add a pointer to the doxygen style
	guide.
	* docs/html/17_intro/TODO: Update.
	* docs/html/test.html: Add instructions for running a subset of
	tests, update.

From-SVN: r72867
This commit is contained in:
Benjamin Kosnik 2003-10-23 20:35:13 +00:00 committed by Benjamin Kosnik
parent 57f542b355
commit d2c354f380
4 changed files with 141 additions and 67 deletions

View File

@ -1,3 +1,11 @@
2003-10-23 Benjamin Kosnik <bkoz@redhat.com>
* docs/html/documentation.html: Add a pointer to the doxygen style
guide.
* docs/html/17_intro/TODO: Update.
* docs/html/test.html: Add instructions for running a subset of
tests, update.
2003-10-23 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (money_get<>::do_get(...,

View File

@ -1,62 +1,133 @@
std::allocator
- switch to mt_allocator with --enable-threads=posix.
- Try to figure out a way to switch allocators in a more elegant
manner, and make the default allocator configurable.
- persistent allocator
- global/extern allocator
std::string
- re-design for multi-paradigm, meta string class solution incorporating COW
vs. deep copy issues, MT scalability
See Andrei Alexandrescu, June 2001, C/C++ Users Journal
"Generic<Programming>: A Policy-Based basic_string Implementation"
http://www.cuj.com/documents/s=7994/cujcexp1906alexandr/
- operator!= and utility/rel_ops operators need to be made safe with
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)
- '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.
- fix template members of basic_string<> to overload iterators and
non-iterators properly. (This is the infamous hack as in vector<> etc
23.1.1 para 10.)
std::locale
- implement __convert_to_v and __convert_from_v without "C" library
functions and and LANG environment variable dependencies.
- use localedata to implement generic named (non-MT-safe) locales?
Figure out a way to use ICU data, like libjava? Need a generic locale
model that does something besides the "C" locale.
- make locale::classic() separate from named locale code. This will
improve the static linkage situation, but will require new
initialization code.
- Jerry(?)/Paolo(?) work on __float_to_char.
- minimize ctype convertion in data facets, see numpunct/num_put/num_get
- finish caching data facets and using the caches
std::basic_filebuf, 27_io
- wfilebuf, get variable-encoding working and tested, including
positioning and seeking.
- wfilebuf testsuite
- look ahead for unbuffered io, so know when multiple putc's can be
coalesced.
- unlocked __basic_file + new mutext class
- optimized the sentries for istream/ostream
- v2 vs. v3 speed
- add optimization hooks (esp. whitespace eating) to streambuf
- add _M_begin() and _M_end() to streambuf
- add algorithm specializations for [io]streambuf_iterator (copy find etc.)
testsuite
- valgrind hooks into make check so can tell memory leakage
Some commentary on the valgrind users list
- add hooks for qmtest for visual diffs
- automatic testing of interactive tests
- diffing generated output files
- make check-abi needs to have full symbol checking. Scope the LSB
testsuite, see what's going on with the typeinfo etc. bits.
- provide testsuites for numerics.
- try to do a better job of ABI testing, with instantiations of all
standard-specified types checked, not just exported symbols.
g++/binutils
- compression for wide versions of basic types
- get Apple's debug mode, or something with equivalent functionality, in.
- audit for places where __builtin_expect can be used.
- relocations, work on getting these down
- issues with __builtin_memcpy and std::copy from Jerry Quinn
http://gcc.gnu.org/ml/libstdc++/2003-02/msg00076.html
- fix dependency tracking for includes (.h, .tcc) during build process.
- coordinate with "C" library people the "C" compatibility headers.
Explain why an ISO-14882-conformant solution is hopeless, with the current
twisted morass of "C" headers.
- do more doxygen manpages
- implement __convert_to_v and __convert_from_v without "C" library
functions and and LANG environment variable dependencies.
- use localedata to implement generic named (non-MT-safe) locales?
Figure out a way to use ICU data, like libjava?
- tuning for executable size, compilation speed, startup allocation,
executable speed.
- benchmarking addition to the testsuite that does the above.
- implement testing for symbol versioning for ELF targets.
- review streambuf, filebuf, stringbuf to optimize data member
placement. Do pback bits need to be in streambuf? How about
_M_set_indeterminate, etc?
- Think about naming all member data and member functions consistently
as per
funtions: _M_verb_adverb
data: _M_noun_adjective
as per
funtions: _M_verb_adverb
data: _M_noun_adjective
- A C++STYLE guide that deals with nested namespaces, and that
everybody can live with.
- exception specifications need to be reviewed for all parts of the
library support and utility areas, particularly <new>.
library support and utility areas, particularly <new>. Part of this is
a standards issue, where the 27_io bugs/standard is really in an odd
spot.
- C-related issues WRT to io and filepos, mbstate_t. Seeking in wide
streams. May need to define operators for mbstate_t so that
'mbstate_t& == mbstate_t' is something that can be done.
- scoping/linking issues WRT to C structs need to be worked out. See
Nathan's commentary on cantrip, http://www.cantrip.org/cheaders.html
- triglyphs/ciso646: and, and_eq, bitand, bitor, compl, not, not_eq,
or, or_eq, xor, xor_eq, true && 45, true and false, true or 45, etc.
(bool and int), etc.
- operator!= and utility/rel_ops operators need to be made safe with
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)
- auto_ptr: seems to be some disagreement on what is
standards-conformant behavior, specially on conversion operators.
- 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.
- 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.
- looks like deque::get_allocator not standards conformant or deque
allocator non-standard.
@ -67,47 +138,35 @@ needs to be drawn throughout the entire STL implementation.
- priority_queue conversions may be non-conformant
- '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.
- 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
- 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.
- All of the Library working group closed issues need to be
addressed. Some of them proposed resolutions are already in the v-3
sources, with macro-guards.
sources, with macro-guards. Also, same with the TR.
- add deprecated features from Annex D
- add #ifdef wrappers for all of them, including in each
C <xxx.h> header
- replace typedef'd non-deprecated types with more type-safe equivalents.
- add optimization hooks (esp. whitespace eating) to streambuf
- add _M_begin() and _M_end() to streambuf
- add algorithm specializations for [io]streambuf_iterator (copy find etc.)
- fix template members of basic_string<> to overload iterators and
non-iterators properly. (This is the infamous hack as in vector<> etc
23.1.1 para 10.)
- write filebuf for wide characters
- add feature-test macros for non-standard extensions
- create MT abstraction layer
- create MT abstraction layer for atomicity to pthreads.
- add MT support for locale, string, istream, ostream
- provide testsuites for numerics.
- need to think about doing a .texi or DocBook manual, instead of all
these HTML pages. In addition, it would be nice to have a full manual,
instead of a lot of ad-hoc pages. Weaknesses include numerics, locale,
and io.
- add FAQ entries -- improve the install instructions
- add HOWTO entries
- do more doxygen manpages

View File

@ -245,6 +245,8 @@
- names to avoid because of potential collisions</li>
<li><a href="17_intro/C++STYLE">C++STYLE</a>
- coding style by example</li>
<li> In the libstdc++-v3/docs/doxygen directory, see guide.html, a
doxygen markup style guide</li>
<li><a href="17_intro/CHECKLIST">CHECKLIST</a>
- a list of required features and their status.</li>
<li><a href="17_intro/DESIGN">DESIGN</a>

View File

@ -126,7 +126,7 @@ data Sample text files for testing input and output.
All new tests should be written with the policy of one test
case, one file in mind. At some point the entire testsuite will
be converted: the current status is that the 21_string,
22_locale, 27_io, and demangle directories have all been
22_locale, 23_containers, 27_io, and demangle directories have all been
transitioned.
</p>
@ -486,6 +486,11 @@ make check-target-libstdc++-v3 RUNTESTFLAGS="--target_board=calmrisc32-sid"
make check-target-libstdc++-v3 RUNTESTFLAGS="--target_board=arm-sim"
</pre>
<p> To run a subset of the library tests, simply edit the generated
file, <em>testsuite_files </em>, to include only the files that are
desired instead of all available test cases.
</p>
<p> In addition, there are some testing options that are mostly of
interest to library maintainers and system integrators. As such,
these tests may not work on all cpu and host combinations, and must