OSDN Git Service

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