]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/libstdc++-v3/contrib/libstdc++-v3-4.1.0/docs/html/17_intro/TODO
update
[l4.git] / l4 / pkg / libstdc++-v3 / contrib / libstdc++-v3-4.1.0 / docs / html / 17_intro / TODO
1 std::allocator
2
3   - switch to mt_allocator with --enable-threads=posix. 
4
5   - persistent allocator
6
7   - global/extern allocator
8
9 std::string 
10
11   - Policy-based design incorporating COW
12     vs. deep copy issues, MT scalability
13     See Andrei Alexandrescu, June 2001, C/C++ Users Journal
14     "Generic<Programming>: A Policy-Based basic_string Implementation"
15     http://www.cuj.com/documents/s=7994/cujcexp1906alexandr/
16
17   - operator!= and utility/rel_ops operators need to be made safe with
18     string and vector iterator classes. basic_string::reverse_iterator may
19     be implemented incorrectly, or need things like
20     operator==(__normal_iterator, const char*&), and swap(vector)
21
22   - 'do the right thing' ctor fixing needs to be done for string. This
23     is still subject to some debate on the library issues list, so I
24     suggest punting till the dust clears.
25
26   - fix template members of basic_string<> to overload iterators and
27     non-iterators properly.  (This is the infamous hack as in vector<> etc
28     23.1.1 para 10.)
29
30 std::locale  
31
32   - implement __convert_to_v and __convert_from_v without "C" library
33     functions and and LANG environment variable dependencies.
34
35   - use localedata to implement generic named (non-MT-safe) locales?
36     Figure out a way to use ICU data, like libjava? Re-package and use
37     the glibc localedata, even if we aren't on linux? Need a generic
38     locale model that does something besides the "C" locale.
39
40   - make locale::classic() separate from named locale code. This will
41     improve the static linkage situation, but will require new
42     initialization code. In particular, we need lazy-initialization of
43     locale::classic(), and maybe the has_facet/use_facet functions for all
44     the required facets. The end goal is a self-contained
45     locale_init.cc, or one with transitive closure without the locale
46     instantiations (locale-inst.cc) or the named locale bits
47     (localename.cc).
48
49   - Jerry(?)/Paolo(?) work on __float_to_char.
50
51   - minimize ctype convertion in data facets, see numpunct/num_put/num_get
52
53 std::basic_filebuf, 27_io
54
55   - wfilebuf, get variable-encoding working and tested, including
56     positioning and seeking. (I think this may be done now)
57
58   - wfilebuf testsuite (getting there...)
59
60   - look ahead for unbuffered io, so know when multiple putc's can be
61     coalesced.
62
63   - unlocked __basic_file + new mutext class
64
65   - optimized the sentries for istream/ostream
66
67   - v2 vs. v3 speed
68
69   - add optimization hooks (esp. whitespace eating) to streambuf
70   - add _M_begin() and _M_end() to streambuf
71   - add algorithm specializations for [io]streambuf_iterator (copy find etc.)
72
73 testsuite
74
75   - valgrind hooks into make check so can tell memory leakage
76     Some commentary on the valgrind users list
77
78   - add hooks for qmtest for visual diffs 
79
80   - automatic testing of interactive tests
81
82   - diffing generated output files
83
84   - provide testsuites for numerics.
85
86   - make check-abi needs to have full symbol checking. Scope the LSB
87     testsuite, see what's going on with the typeinfo etc. bits.
88
89   - try to do a better job of ABI testing, with instantiations of all
90     standard-specified types checked, not just exported symbols.
91
92 g++/binutils
93
94   - compression for wide versions of basic types, not just narrow
95
96 threads
97
98   - create MT abstraction layer for atomicity to pthreads.
99
100   - solution for threads + C++.
101
102 - audit for places where __builtin_expect can be used.
103
104 - relocations, work on getting these down
105
106 - issues with __builtin_memcpy and std::copy from Jerry Quinn
107   http://gcc.gnu.org/ml/libstdc++/2003-02/msg00056.html
108   http://gcc.gnu.org/ml/libstdc++/2003-02/msg00302.html
109   http://gcc.gnu.org/ml/gcc/2003-10/msg01305.html
110
111 - fix dependency tracking for includes (.h, .tcc) during build process.
112
113 - coordinate with "C" library people the "C" compatibility headers.
114
115 - Think about naming all member data and member functions consistently
116   as per
117   funtions: _M_verb_adverb
118   data: _M_noun_adjective
119
120 - A C++STYLE guide that deals with nested namespaces, and that
121 everybody can live with.
122
123 - exception specifications need to be reviewed for all parts of the
124 library support and utility areas, particularly <new>. Part of this is
125 a standards issue, where the 27_io bugs/standard is really in an odd
126 spot.
127
128 - C-related issues WRT to io and filepos, mbstate_t. Seeking in wide
129 streams. May need to define operators for mbstate_t so that
130 'mbstate_t& == mbstate_t' is something that can be done.
131
132 - scoping/linking issues WRT to C structs need to be worked out. See
133 Nathan's commentary on cantrip, http://www.cantrip.org/cheaders.html
134
135 - auto_ptr: seems to be some disagreement on what is
136 standards-conformant behavior, specially on conversion operators.
137
138 - list::assignment operator needs const_cast
139
140 - a cleaner division between pointers-to-value_type and true iterators
141 needs to be drawn throughout the entire STL implementation.
142
143 - priority_queue conversions may be non-conformant
144
145 - Protect valarray::result_type (not Standard) and make it work with
146   the various helper classes.
147
148 - Make sure `valarray<bool> & == _Expr<_BinClos<logical_or,_ValArray,_ValArray,double,double>,bool>' 
149   is defined
150
151 - All of the Library working group closed issues need to be
152 addressed. Some of them proposed resolutions are already in the v-3
153 sources, with macro-guards. Also, same with the TR.
154
155 - add deprecated features from Annex D
156   - add #ifdef wrappers for all of them, including in each
157     C <xxx.h> header
158   - replace typedef'd non-deprecated types with more type-safe equivalents.
159
160 - add feature-test macros for non-standard extensions
161
162 - add MT support for locale, string, istream, ostream
163
164 - need to think about doing a .texi or DocBook manual, instead of all
165 these HTML pages. In addition, it would be nice to have a full manual,
166 instead of a lot of ad-hoc pages. Weaknesses include numerics, locale,
167 and io.
168
169 - add FAQ entries -- improve the install instructions
170
171 - add HOWTO entries
172
173 - do more doxygen manpages
174