1std::allocator 2 3 - persistent allocator 4 5 - shared memory allocator (use or link to boost::shmem::allocator) 6 7std::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 29std::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 52std::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 72testsuite 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 91g++/binutils 92 93 - compression for wide versions of basic types, not just narrow 94 95threads 96 97 - create MT abstraction layer for atomicity to pthreads. 98 99 - solution for threads + C++. 100 101other/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 120everybody can live with. 121 122- exception specifications need to be reviewed for all parts of the 123library support and utility areas, particularly <new>. Part of this is 124a standards issue, where the 27_io standard is really in an odd 125spot. Do the work to make this consistent. 126 127- C-related issues WRT to io and filepos, mbstate_t. Seeking in wide 128streams. 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 132Nathan's commentary on cantrip, http://www.cantrip.org/cheaders.html 133 134- auto_ptr: seems to be some disagreement on what is 135standards-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 140needs 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 151addressed. Some of them proposed resolutions are already in the v-3 152sources, with macro-guards. Also, same with the TR. 153 154- need to think about doing a .texi or DocBook manual, instead of all 155these HTML pages. In addition, it would be nice to have a full manual, 156instead of a lot of ad-hoc pages. Weaknesses include numerics, locale, 157and io. 158 159- add FAQ entries -- improve the install instructions 160 161- add HOWTO entries 162 163- do more doxygen manpages 164 165