FSF GCC merge 02/23/03
[official-gcc.git] / libstdc++-v3 / docs / html / 17_intro / TODO
blob2ba36ad10a3b6956c3ba69f6f88b5b9f138c2bcc
1 - audit for places where __builtin_expect can be used.
3 - coordinate with "C" library people the "C" compatibility headers.
4   Explain why an ISO-14882-conformant solution is hopeless, with the current
5   twisted morass of "C" headers.
7 - do more doxygen manpages
9 - implement __convert_to_v and __convert_from_v without "C" library
10 functions and and LANG environment variable dependencies.
12 - use localedata to implement generic named (non-MT-safe) locales?
13 Figure out a way to use ICU data, like libjava?
15 - tuning for executable size, compilation speed, startup allocation,
16 executable speed.
18 - benchmarking addition to the testsuite that does the above.
20 - implement testing for symbol versioning for ELF targets.
22 - review streambuf, filebuf, stringbuf to optimize data member
23 placement.  Do pback bits need to be in streambuf? How about
24 _M_set_indeterminate, etc?
26 - Think about naming all member data and member functions consistently
27 as per
28 funtions: _M_verb_adverb
29 data: _M_noun_adjective
31 - exception specifications need to be reviewed for all parts of the
32 library support and utility areas, particularly <new>. 
34 - scoping/linking issues WRT to C structs need to be worked out. See
35 Nathan's commentary on cantrip, http://www.cantrip.org/cheaders.html
37 - triglyphs/ciso646: and, and_eq, bitand, bitor, compl, not, not_eq,
38 or, or_eq, xor, xor_eq, true && 45, true and false, true or 45, etc.
39 (bool and int), etc.
41 - operator!= and utility/rel_ops operators need to be made safe with
42 string and vector iterator classes. basic_string::reverse_iterator may
43 be implemented incorrectly, or need things like
44 operator==(__normal_iterator, const char*&), and swap(vector)
46 - auto_ptr: seems to be some disagreement on what is
47 standards-conformant behavior, specially on conversion operators.
49 - header optimizations to keep compile times reasonable are most
50 certainly detracting from full conformance, as many templatized
51 definitions are squired away and pre-instantiated, so that the
52 compiler doesn't have to parse them. Areas effected: valarray, string,
53 all of iostreams and locales.
55 - C-related issues WRT to libio and filepos, mbstate_t. Need to
56 straighten this stuff out with the glibc-2.2 libio. Also may need to
57 define operators for mbstate_t so that 'mbstate_t& == mbstate_t' is
58 something that can be done.
60 - looks like deque::get_allocator not standards conformant or deque
61 allocator non-standard.
63 - list::assignment operator needs const_cast
65 - a cleaner division between pointers-to-value_type and true iterators
66 needs to be drawn throughout the entire STL implementation.
68 - priority_queue conversions may be non-conformant
70 - 'do the right thing' ctor fixing needs to be done for string. This
71 is still subject to some debate on the library issues list, so I
72 suggest punting till the dust clears.
74 - Protect valarray::result_type (not Standard) and make it work with
75   the various helper classes.
77 - Make sure `valarray<bool> & == _Expr<_BinClos<logical_or,_ValArray,_ValArray,double,double>,bool>' 
78   is defined
80 - known issues WRT to io and corner cases with the buffers. This is
81 still subject to interpretation, and I think the current
82 implementation is credible.
84 - All of the Library working group closed issues need to be
85 addressed. Some of them proposed resolutions are already in the v-3
86 sources, with macro-guards.
88 - add deprecated features from Annex D
89   - add #ifdef wrappers for all of them, including in each
90     C <xxx.h> header
91   - replace typedef'd non-deprecated types with more type-safe equivalents.
93 - add optimization hooks (esp. whitespace eating) to streambuf
94   - add _M_begin() and _M_end() to streambuf
95   - add algorithm specializations for [io]streambuf_iterator (copy find etc.)
97 - fix template members of basic_string<> to overload iterators and
98   non-iterators properly.  (This is the infamous hack as in vector<> etc
99   23.1.1 para 10.)
101 - write filebuf for wide characters
103 - add feature-test macros for non-standard extensions
105 - create MT abstraction layer
107 - add MT support for locale, string, istream, ostream
109 - provide testsuites for numerics.
111 - add FAQ entries -- improve the install instructions
113 - add HOWTO entries