-- audit for places where __builtin_expect can be used.
+std::allocator
-- 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.
+ - switch to mt_allocator with --enable-threads=posix.
-- do more doxygen manpages
+ - 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
-- implement __convert_to_v and __convert_from_v without "C" library
-functions and and LANG environment variable dependencies.
+ - valgrind hooks into make check so can tell memory leakage
+ Some commentary on the valgrind users list
-- use localedata to implement generic named (non-MT-safe) locales?
-Figure out a way to use ICU data, like libjava?
+ - add hooks for qmtest for visual diffs
-- tuning for executable size, compilation speed, startup allocation,
-executable speed.
+ - automatic testing of interactive tests
-- benchmarking addition to the testsuite that does the above.
+ - diffing generated output files
-- implement testing for symbol versioning for ELF targets.
+ - make check-abi needs to have full symbol checking. Scope the LSB
+ testsuite, see what's going on with the typeinfo etc. bits.
-- review streambuf, filebuf, stringbuf to optimize data member
-placement. Do pback bits need to be in streambuf? How about
-_M_set_indeterminate, etc?
+ - 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.
- 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.
- 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
+