OSDN Git Service

3742dcb87862f789cca9979daf37507ca39f3245
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / ChangeLog
1 2004-01-28  Benjamin Kosnik  <bkoz@redhat.com>
2
3         * src/globals_io.cc: Change to __gnu_internal namespace.
4         * src/globals_locale.cc: Same.
5         * src/locale_init.cc: Same.
6         * src/ios_init.cc: Same.
7         
8 2004-01-28  Stefan Olsson  <stefan@snon.net>
9
10         * include/ext/mt_allocator.h: Replaced all malloc() calls with
11         operator new(). Added support for the env variable
12         GLIBCXX_FORCE_NEW (this required the _S_init call to be the first
13         one in allocate() as well). Fix typos.
14
15 2004-01-28  Paolo Carlini  <pcarlini@suse.de>
16
17         * include/bits/basic_string.h (_S_create(size_t,
18         const _Alloc&): Change signature to take two size_type
19         arguments.
20         * include/bits/basic_string.tcc (_S_construct(_InIterator,
21         _InIterator, const _Alloc&, input_iterator_tag)): Update
22         call, tweak a bit.
23         (_S_construct(_InIterator, _InIterator, const _Alloc&,
24         forward_iterator_tag)): Likewise.
25         (_S_construct(size_type, _CharT, const _Alloc&)): Likewise.
26         (_M_mutate(size_type, size_type, size_type)): Don't
27         implement the exponential growth policy, demand it to
28         _S_create, update call and simplify.
29         (_M_clone(const _Alloc&, size_type)): Likewise.
30         (_S_create(size_type, size_type, const _Alloc&)): Implement
31         the growth policy, simplify otherwise.
32
33         * include/bits/basic_string.h (_Rep::operator[]): Tweak
34         signature to take a size_type, consistently with the other
35         members.
36         
37 2004-01-27  Benjamin Kosnik  <bkoz@redhat.com>
38
39         * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
40         delete declarations, add include and test variable.
41
42 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
43
44         * include/bits/codecvt.h, include/bits/locale_facets.h,
45         include/bits/postypes.h, include/bits/stl_bvector.h,
46         include/bits/stl_multiset.h, include/bits/stl_set.h,
47         include/bits/stream_iterator.h, include/bits/streambuf_iterator.h,
48         include/std/std_complex.h:  Document.
49
50 2004-01-27  Jerry Quinn  <jlquinn@optonline.net>
51
52         PR libstdc++/11584
53         * include/bits/ios_base.h (ios_base::_M_grow_words):  Add
54         iword/pword selector.
55         (ios_base::iword, ios_base::pword):  Use it.
56         * src/ios.cc (ios_base::_M_grow_words):  Clear _M_word_zero
57         iword or pword member on alloc failure.
58         * testsuite/27_io/ios_base/storage/11584.cc:  New test.
59
60 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
61             PJ Darcy  <darcypj@us.ibm.com>
62
63         * configure.host: Add support for *-tpf.
64         * crossconfig.m4: Likewise.
65         * configure: Regenerate.
66         * config/os/tpf: New directory.
67         * config/os/tpf/os_defines.h: New file.
68         * config/os/tpf/ctype_base.h: Likewise.
69         * config/os/tpf/ctype_inline.h: Likewise.
70         * config/os/tpf/ctype_noninline.h: Likewise.
71
72 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
73
74         PR libstdc++/13884
75         * include/bits/sstream.tcc: Guard use of extern template.
76         
77 2004-01-27  Paolo Carlini  <pcarlini@suse.de>
78
79         * include/bits/basic_string.tcc
80         (basic_string(const basic_string&, size_type, size_type),
81         basic_string(const basic_string&, size_type, size_type,
82         const _Alloc&)): Avoid unnecessarily constructing iterators.
83
84 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
85
86         * config/locale/generic/c_locale.cc: Fix throw messages
87         to use the __N marker.
88         * config/locale/gnu/c_locale.cc: Likewise.
89         * config/locale/ieee_1003.1-2001/codecvt_specializations.h:
90         Likewise.
91         * docs/html/17_intro/C++STYLE: Likewise.
92         * include/bits/basic_ios.tcc: Likewise.
93         * include/bits/fstream.tcc: Likewise.
94         * include/bits/vector.tcc: Likewise.
95         * include/ext/ropeimpl.h: Likewise.
96         * include/std/std_bitset.h: Likewise.
97         * src/ios.cc: Likewise.
98         * src/locale.cc: Likewise.
99         * src/localename.cc: Likewise.
100
101 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
102
103         * include/bits/basic_string.h (_M_replace_aux): Use the
104         __N marker in throw message.
105         * include/bits/basic_string.tcc (assign(const _CharT*,
106         size_type), insert(size_type, const _CharT*, size_type),
107         replace(size_type, size_type, const _CharT*, size_type),
108         reserve, _Rep::_S_create, resize, _M_replace_dispatch):
109         Likewise.
110
111         * include/bits/basic_string.h, include/bits/basic_string.tcc:
112         Fold overlong lines, minor formatting changes.
113
114 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
115
116         * include/bits/basic_string.h (replace(iterator, iterator,
117         const basic_string&)): Remove _GLIBCXX_DEBUG_PEDASSERT.
118         (replace(iterator, iterator, const _CharT*)): Ditto.
119         (replace(iterator, iterator, const _CharT*, size_type)):
120         Add missing _GLIBCXX_DEBUG_PEDASSERT.
121
122 2004-01-26  Paolo Carlini  <pcarlini@suse.de>
123
124         * include/bits/basic_string.tcc (replace(size_type,
125         size_type, const _CharT*, size_type)): Implement optimized
126         in-place algorithm for non-overlapping ranges.
127         * testsuite/21_strings/basic_string/replace/char/6.cc: New.
128         * testsuite/21_strings/basic_string/replace/wchar_t/6.cc: New.
129
130         * include/bits/basic_string.tcc (insert(size_type,
131         const _CharT*, size_type)): Tweak slightly.
132
133 2004-01-26  Andreas Schwab  <schwab@suse.de>
134
135         * config/locale/gnu/monetary_members.cc: Restore locale before
136         rethrowing exception.
137
138 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
139
140         * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
141         Define inline here.
142         * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
143         Move inline.
144
145         * include/bits/basic_string.tcc: Very minor tweaks.
146
147 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
148
149         * testsuite/performance/string_append.cc: Increase number
150         of iterations.
151
152 2004-01-25  Paolo Carlini  <pcarlini@suse.de>
153
154         * include/bits/basic_string.h (erase(size_type, size_type),
155         erase(iterator), erase(iterator, iterator)): Call _M_replace_safe
156         instead, thus avoiding redundant check for length_error.
157
158         * include/bits/basic_string.h: Tweak some comments.
159
160 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
161
162         * include/bits/basic_string.tcc (operator+(const _CharT*,
163         const basic_string&)): No need to go through the append
164         taking two iterators.
165
166 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
167
168         * include/bits/basic_string.tcc (rfind(_CharT, size_type)):
169         Revert last change to use std::min: machine language is worse.
170         (find_last_of(const _CharT*, size_type, size_type)): Ditto.
171         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
172         (find_last_not_of(_CharT, size_type)): Ditto.
173
174         * include/bits/basic_string.tcc (insert(size_type, const _CharT*,
175         size_type)): Discard the value returned by _M_check.
176         (replace(size_type, size_type, const _CharT*, size_type)): Ditto.
177         (append(const basic_string&, size_type, size_type)): Ditto.
178         (copy(_CharT*, size_type, size_type)): Ditto.
179         (compare(size_type, size_type, const basic_string&)): Ditto.
180         (compare(size_type, size_type, const basic_string&,
181         size_type, size_type)): Ditto.
182         (compare(size_type, size_type, const _CharT*)): Ditto.
183         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
184
185 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
186
187         * include/bits/basic_string.h (insert(size_type,
188         const basic_string&, size_type, size_type)): Define inline here.
189         * include/bits/basic_string.tcc (insert(size_type,
190         const basic_string&, size_type, size_type)): Move inline.
191
192 2004-01-24  Paolo Carlini  <pcarlini@suse.de>
193
194         * include/bits/basic_string.h (assign(const basic_string&,
195         size_type, size_type)): Define inline here.
196         (replace(size_type, size_type, const basic_string&,
197         size_type, size_type)): Ditto.
198         (_M_replace_dispatch(iterator, iterator, _InputIterator,
199         _InputIterator, __false_type)): Only declare.
200         (_M_replace(iterator, iterator, _InputIterator,
201         _InputIterator)): Remove.
202         * include/bits/basic_string.tcc (assign(const basic_string&,
203         size_type, size_type)): Move inline.
204         (replace(size_type, size_type, const basic_string&,
205         size_type, size_type)): Ditto.
206         (_M_replace_dispatch(iterator, iterator, _InputIterator,
207         _InputIterator, __false_type)): Define, now does also what
208         _M_replace did before.
209         * src/string-inst.cc (_M_replace): Don't instantiate.
210
211         * include/bits/basic_string.tcc (find(const _CharT*,
212         size_type, size_type)): Tidy.
213         (rfind(_CharT, size_type)): Ditto.
214         (find_first_not_of(const _CharT*, size_type, size_type)): Ditto.
215         (find_first_not_of(_CharT, size_type)): Ditto.
216         (find_last_not_of(const _CharT*, size_type, size_type)): Ditto.
217         (find_last_not_of(_CharT, size_type)): Ditto.
218
219 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
220
221         PR libstdc++/13838
222         * include/debug/bitset (operator|=): Fix typo.
223         * testsuite/23_containers/bitset/operations/13838.cc: New.
224
225 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
226
227         * include/bits/basic_string.tcc (insert(size_type,
228         const _CharT*, size_type __n)): Fix length_error check.
229         (replace(size_type, size_type, const _CharT*, size_type):
230         Ditto; call _M_replace_safe.
231         (_M_replace_aux(size_type, size_type, size_type, _CharT):
232         Fix length_error check.
233         (_M_replace(iterator, iterator, _InputIterator,
234         _InputIterator)): Ditto, tweak.
235         (_M_replace_safe(size_type, size_type, const _CharT*,
236         size_type)): Remove length_error check.
237
238         * include/bits/basic_string.tcc (append(const basic_string&),
239         append(const basic_string&, size_type, size_type)): Tweak
240         comment.
241
242         * include/bits/basic_string.tcc (copy(_CharT*, size_type,
243         size_type)): If __n == 0 don't call traits::copy.
244
245 2004-01-23  Stefan Olsson  <stefan@snon.net>
246
247         * include/ext/mt_allocator.h: Reduce lock contention.
248
249 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
250
251         PR libstdc++/13831
252         * include/bits/fstream.tcc (underflow): Remove unused
253         variable.
254         * include/bits/streambuf_iterator.h (equal): Ditto.
255         * include/bits/locale_facets.h (_M_convert_from_char):
256         Ditto.
257
258 2004-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
259
260         PR c/13814
261         * config/linker-map.gnu (nan): Delete.
262         * libmath/mathconf.h (NAN, nan): Delete.
263         * linkage.m4 (nan): Don't check for it.
264         * libmath/nan.c: Delete file.
265
266         * config.h.in, configure: Regenerate.
267
268 2004-01-23  Paolo Carlini  <pcarlini@suse.de>
269
270         * include/bits/basic_string.h (push_back(_CharT)):
271         Call _M_replace_aux.
272         (insert(size_type, const basic_string&)): Trivial tweak.
273         (insert(size_type, size_type, _CharT)): Call _M_replace_aux.
274         (insert(iterator, _CharT)): Ditto.
275         (erase(size_type, size_type)): Ditto.
276         (erase(iterator)): Ditto.
277         (erase(iterator, iterator)): Ditto.
278         (replace(size_type, size_type, size_type, _CharT)): Ditto.
279
280 2004-01-23  Loren J. Rittle  <ljrittle@acm.org>
281
282         libstdc++/13823
283         * testsuite/performance/allocator_map_thread.cc: New test.
284
285 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
286
287         * include/bits/locale_facets.tcc
288         (money_put::do_put(..., long double)): Use the basic_string
289         constructor for char arrays, not that for C-strings, to pass
290         __digits to do_put(..., const string_type&): __ws isn't
291         null-terminated.
292
293 2004-01-22  Paolo Carlini  <pcarlini@suse.de>
294
295         * include/bits/basic_string.h (_M_replace_safe): Change
296         signatures to take size_types and const _CharT*.
297         (_M_replace_aux): Likewise, takes size_types instead of
298         iterators.
299         (append(size_type, _CharT)): Update call.
300         (assign(size_type, _CharT)): Ditto.
301         (replace(iterator, iterator, size_type, _CharT)): Ditto.
302         (_M_replace_dispatch(iterator, iterator, _Integer,
303         _Integer, __true_type)): Ditto.
304         * include/bits/basic_string.tcc (assign(const _CharT*,
305         size_type)): Ditto.
306         (insert(size_type, const _CharT*, size_type)): Ditto.
307         (replace(size_type, size_type, const _CharT*,
308         size_type)): Ditto.
309         (_M_replace(iterator, iterator, _InputIterator,
310         _InputIterator)): Ditto.
311         (append(const basic_string&)): Ditto.
312         (append(const basic_string&, size_type, size_type): Ditto.
313         (append(const _CharT*, size_type): Ditto.
314         (_M_replace_safe, _M_replace_safe): Change definitions
315         accordingly, simplify.
316         * string-inst.cc (_M_replace_safe): Don't instantiate.
317
318 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
319
320         * include/bits/basic_string.tcc (append(const basic_string&)):
321         Revert previous change.
322         (append(const basic_string&, size_type, size_type)): Revert
323         previous change, use _M_check and _M_limit.
324
325 2004-01-21  Paolo Carlini  <pcarlini@suse.de>
326
327         * include/bits/basic_string.h (_M_check): Change to return
328         a checked __pos and take an additional const char* argument.
329         (_M_fold): Rename to _M_limit, change to return a size_type,
330         corresponding to the __off limited to the actual length.
331         (insert(size_type, size_type, _CharT)): Update call, call
332         replace.
333         (insert(iterator, _CharT)): Call replace(iterator, iterator,
334         size_type, _CharT) instead.
335         (erase(size_type, size_type)): Update calls.
336         (replace(size_type, size_type, size_type, _CharT)): Ditto.
337         (substr(size_type, size_type)): Use _M_check.
338         * include/bits/basic_string.tcc (basic_string(const basic_string&,
339         size_type, size_type)): Update calls.
340         (basic_string(const basic_string&, size_type, size_type,
341         const _Alloc&)): Ditto.
342         (assign(const basic_string&, size_type, size_type)): Use the
343         new _M_check and _M_limit.
344         (insert(size_type, const basic_string&, size_type, size_type):
345         Ditto.
346         (insert(size_type, const _CharT*, size_type)): Ditto.
347         (replace(size_type, size_type, const _CharT*, size_type): Ditto.
348         (replace(size_type, size_type, const basic_string&,
349         size_type, size_type)): Ditto.
350         (append(const basic_string&)): Ditto.
351         (append(const basic_string&, size_type, size_type)): Ditto.
352         (copy(_CharT*, size_type, size_type)): Ditto.
353         (compare(size_type, size_type, const basic_string&)): Ditto.
354         (compare(size_type, size_type, const basic_string&,size_type,
355         size_type)): Ditto.
356         (compare(size_type, size_type, const _CharT*)): Ditto.
357         (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
358
359 2004-01-19  Stefan Olsson  <stefan@snon.net>
360
361         * include/ext/mt_allocator.h: If a thread, when it dies, still has
362         memory on it's freelist this memory is not returned to global
363         list. Simplification of deallocate so that memory is always
364         returned to the calling thread id's freelist instead of to
365         global. Fix typos. Add volatile where appropriate.
366
367 2004-01-19  Loren J. Rittle  <ljrittle@acm.org>
368
369         * testsuite/ext/stdio_filebuf/char/10063-2.cc: Treat unbuffered.
370         * testsuite/ext/stdio_filebuf/char/10063-3.cc: New test.  Like -2 but
371         use __gnu_cxx::stdio_sync_filebuf<char> instead; allow buffered stream.
372
373 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
374
375         * src/debug.cc: Make sure all the names are prefixed with
376         double (or single) underscore.
377
378 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
379
380         * src/debug.cc: Trivial formatting change.
381
382 2004-01-19  Paolo Carlini  <pcarlini@suse.de>
383
384         * include/bits/basic_string.tcc (_S_construct(size_type,
385         _CharT, const _Alloc&)): Remove redundant try/catch.
386         (_M_mutate(size_type, size_type, size_type)): Ditto.
387         (_M_clone(const _Alloc&, size_type)): Ditto.
388         
389 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
390
391         * include/bits/basic_string.h (c_str()): Simplify, due to
392         21.3.4 the internal representation is always kept null-terminated.
393         * include/bits/basic_string.tcc (_M_clone): Null-terminate.
394         * testsuite/21_strings/basic_string/element_access/char/4.cc: New.
395         * testsuite/21_strings/basic_string/element_access/wchar_t/4.cc:
396         Ditto.
397
398 2004-01-18  Paolo Carlini  <pcarlini@suse.de>
399
400         * include/bits/basic_string.h (append(size_type, _CharT)):
401         Moved inline, just call _M_replace_aux, no source iterators at
402         risk of being clobbered.
403         (assign(size_type, _CharT)): Call directly _M_replace_aux.
404         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
405         input_iterator_tag)): Remove fifth unused argument.
406         (_M_replace_dispatch(iterator, iterator, _InputIterator,
407         _InputIterator, __false_type)): Update call.
408         * include/bits/basic_string.tcc (replace(size_type, size_type,
409         const _CharT*, size_type)): Update call.
410         (_M_replace_aux(iterator, iterator, size_type, _CharT)): Tweak
411         throw string literal.
412         (_M_replace_safe(iterator, iterator, _ForwardIterator,
413         _ForwardIterator)): Likewise.
414         (_M_replace(iterator, iterator, _InputIterator, _InputIterator,
415         input_iterator_tag)): Remove fifth unused argument.
416         (append(size_type __n, _CharT __c)): Move inline.
417         * src/string-inst.cc (S::_M_replace(S::iterator, S::iterator,
418         const C*, const C*, input_iterator_tag)): Remove fifth unused
419         argument.
420
421 2004-01-16  Benjamin Kosnik  <bkoz@redhat.com>
422
423         * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
424         * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.     
425
426 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
427
428         * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
429         mkfifo for mingw32.
430
431 2004-01-15  Stefan Olsson  <stefan@snon.net>
432
433         * include/ext/mt_allocator.h: Reuse thread id's as soon as
434         possible by changing the behaviour of thread_freelist to do
435         push_front when threads die instead of push_back.
436
437 2004-01-14  Paolo Carlini  <pcarlini@suse.de>
438
439         * include/bits/locale_facets.h (struct __numpunct_cache):
440         Add member _M_grouping_size, caching the length of _M_grouping.
441         (__numpunct_cache<>::_M_cache): Assign the latter.
442         (__verify_grouping): Move declaration...
443         * include/bits/locale_facets.tcc (__verify_grouping):
444         ... here, change signature to take a const char* and a size_t
445         for the grouping; not a template anymore.
446         (__add_grouping, num_put::_M_group_int, num_put::_M_group_float):
447         Likewise change signature and tweak consistently. 
448         (num_get::_M_extract_float, num_get::_M_extract_int,
449         num_put::_M_insert_int, num_put::_M_insert_float,
450         money_get::do_get(string_type&), money_get::do_put(string_type)):
451         Update callers. 
452         * config/locale/generic/numeric_members.cc
453         (numpunct<>::_M_initialize_numpunct): Assign the new member.    
454         * config/locale/gnu/numeric_members.cc
455         (numpunct<>::_M_initialize_numpunct): Likewise. 
456         * src/locale-inst.cc (__add_grouping): Tweak signature.
457         (__verify_grouping): Don't instantiate, not a template anymore.
458
459         * include/bits/locale_facets.h: Rename _M_truename_len ->
460         _M_truename_size, _M_falsename_len -> _M_falsename_size.
461         * include/bits/locale_facets.tcc: Likewise.
462         * config/locale/generic/numeric_members.cc: Likewise.
463         * config/locale/gnu/numeric_members.cc: Likewise.
464
465 2004-01-14  Stefan Olsson  <stefan@snon.net>
466
467         * include/ext/mt_allocator.h: Fixups.
468         * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
469         * testsuite/performance/allocator_thread.cc: Same.
470         
471 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
472
473         * testsuite/performance/ifstream_extract_float.cc: Add higher
474         precision tests.
475         * testsuite/performance/ofstream_insert_float.cc: Same.
476         
477 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
478
479         * src/locale-misc-inst.cc (__convert_from_v(long),
480         __convert_from_v(unsigned long), __convert_from_v(long long),
481         __convert_from_v(unsigned long long)): Remove, unused.
482
483 2004-01-13  Benjamin Kosnik  <bkoz@redhat.com>
484
485         * testsuite/performance/ifstream_extract_float.cc: New.
486         * testsuite/performance/ofstream_insert_float.cc: Float generation
487         matches above.
488
489         * 20_util/auto_ptr.cc, auto_ptr_neg.cc: Break into...
490         * 20_util/auto_ptr/1.cc: ...this.
491         * 20_util/auto_ptr/2.cc: Same.
492         * 20_util/auto_ptr/3.cc: Same.
493         * 20_util/auto_ptr/3946.cc: Same.
494         * 20_util/auto_ptr/4.cc: Same.
495         * 20_util/auto_ptr/5.cc: Same.
496         * 20_util/auto_ptr/6.cc: Same.
497         * 20_util/auto_ptr/7.cc: Same.
498         * 20_util/auto_ptr/assign_neg.cc
499         * 20_util/pairs.cc: Break into...
500         * 20_util/pair/1.cc: ...this.
501         * 20_util/pair/2.cc: Same.
502         * 20_util/pair/3.cc: Same.
503         * 20_util/pair/4.cc: Same.
504
505 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
506
507         * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
508         Set correctly just basefield, the only group that matters.
509
510 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
511
512         * include/ext/rope (_Rope_rep_alloc_base): Eliminate.
513         (_Rope_rep_base): Inherit directly from the rope allocator;
514         use rebinding instead of _Alloc_traits; pick up data member
515         from _Rope_rep_alloc_base.
516         (_Rope_alloc_base): Eliminate.
517         (_Rope_base): Inherit directly from the rope allocator; use
518         rebinding instead of _Alloc_traits; pick up data member from
519         _Rope_alloc_base.
520         (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
521         rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
522
523 2004-01-13  Paolo Carlini  <pcarlini@suse.de>
524
525         PR libstdc++/13650
526         * include/bits/basic_string.tcc (compare(size_type, size_type,
527         const _CharT*, size_type)): Implement correctly the resolution
528         of DR 5: basically, s is a char array, -not- a C string.
529         * include/bits/basic_string.h: Tweak some comments.
530         * testsuite/21_strings/basic_string/compare/char/13650.cc: New.
531         * testsuite/21_strings/basic_string/compare/wchar_t/13650.cc: New.
532
533 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
534
535         * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
536         Solaris.
537
538 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
539
540         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
541         Use try_mkfifo.
542         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
543         Likewise.
544
545 2004-01-12  Paolo Carlini  <pcarlini@suse.de>
546
547         * include/bits/locale_facets.h (struct __numpunct_cache):
548         Add members _M_truename_len and _M_falsename_len, caching
549         the lengths of _M_truename and _M_falsename.
550         (__numpunct_cache<>::_M_cache): Assign the latter.
551         * include/bits/locale_facets.tcc (num_get::do_get(bool&),
552         num_put::do_put(bool)): Use the new members, thus avoiding
553         computing string lengths again and again.
554         * config/locale/generic/numeric_members.cc
555         (numpunct<>::_M_initialize_numpunct): Assign the new members.
556         * config/locale/gnu/numeric_members.cc
557         (numpunct<>::_M_initialize_numpunct): Likewise.
558
559 2004-01-12  Mark Mitchell  <mark@codesourcery.com>
560
561         * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
562         * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
563         it.
564         * testsuite/27_io/basic_filebuf/close/char/4879.cc: Use try_mkfifo
565         and remove Cygwin XFAIL.
566         * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
567         * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
568         * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
569         * testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
570         Likewise.
571         * testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
572         * testsuite/27_io/objects/char/7.cc: Likewise.
573         * testsuite/27_io/objects/char/9661-1.cc: Likewise.
574         * testsuite/27_io/objects/wchar_t/7.cc: Likewise.
575         * testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
576
577 2004-01-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
578
579         * include/std/std_complex.h (std::complex<>::real): Return a
580         reference. Add non-const overload.
581         (std::complex<>::real): Likewise.
582         (std::real): Likewise.
583         (std::imag): Likewise.
584         (std::operator+): Tidy.
585         (std::operator-): Likewise.
586         (std::operator*): Likewise.
587         (std::operator/): Likewise.
588         (std::operator>>): Likewise.
589
590 2004-01-11  Paolo Carlini  <pcarlini@suse.de>
591
592         PR libstdc++/13582
593         * include/bits/fstream.tcc (imbue): Exploit the external
594         buffer to imbue 'on the fly' a new locale and convert its
595         remainder with the new codecvt facet.
596         (underflow): Tweak slightly to deal with this special case.
597         * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: New.
598         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Ditto.
599         * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Ditto.
600         * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Ditto.
601         * testsuite/27_io/objects/wchar_t/13582-1_xin.in: Ditto.
602         
603 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
604
605         * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
606         Import Revision 28.
607
608 2004-01-10  Paolo Carlini  <pcarlini@suse.de>
609
610         PR libstdc++/13630
611         * include/bits/locale_classes.h (class locale): Fix category
612         typedef.
613         * testsuite/22_locale/locale/13630.cc: Add.
614
615 2004-01-10  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
616
617         * include/bits/locale_facets.h: Make a name really dependent. This
618         will be needed when Core Issue 224 is implemented.
619
620 2004-01-09  Paolo Carlini  <pcarlini@suse.de>
621
622         * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
623         * testsuite/performance/allocator_thread.cc: Likewise.
624
625 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
626
627         * crossconfig.m4: Add LFS, io bits to linux cross config.
628         * acconfig.h: Remove obsolete bits, reorder.
629         * config.h.in: Regenerate.
630         * aclocal.m4: Same.
631         * configure: Same.
632         
633 2004-01-07  Gawain Bolton  <gp.bolton@computer.org>
634
635         * include/bits/stl_list.h:
636         * include/bits/list.tc:
637         * src/list.cc:
638         Performance enhancements for destructor, push_front(),
639         push_back(), pop_front(), pop_back(), sort()
640         Eliminated static_casts where possible.
641         Moved code out of header files into new src/list.cc
642         implementation file for library where possible.
643         Remove inheritance from iterator class and create separate
644         classes for non-constant and constant iterators.
645         * include/bits/stl_tree.h (_Rb_tree class):
646         * src/tree.cc: 
647         Only erase contents in destructor.
648         Eliminate unnecessary initialization in assignment operator.
649         Optimize for the nominal case by not checking whether
650         container is empty in clear().
651         Re-order test in _M_insert() to improve performance.
652         Move initialization of new node's left & right pointers to
653         src/tree.cc to where new node's colour is initialized
654         and to reduce the amount of inline code.
655         Use  _M_leftmost() and _M_end() to improve readability where
656         appropriate.
657         Create separate classes for non-constant and constant
658         iterators to clarify code, avoid extra template parameters and 
659         casting away constness.         
660         
661 2004-01-07  Benjamin Kosnik  <bkoz@redhat.com>
662
663         * src/Makefile.am (sources): Add list.cc, tree.cc.
664         * src/stl_tree.cc: Move to...
665         * src/tree.cc: ...here.
666         * src/list.cc: Add.
667         * config/linker-map.gnu: Tweaks.
668         * testsuite/23_containers/map/operators/1_neg.cc: Add excess errors.
669         * testsuite/23_containers/set/operators/1_neg.cc: Add excess errors.
670
671         * bits/stl_vector.h: Column wrap comments.
672         
673 2004-01-07  Loren J. Rittle  <ljrittle@acm.org>
674
675         (re-open) PR libstdc++/12658
676         * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
677         (locale::global): Likewise.
678
679 2004-01-07  Paolo Carlini  <pcarlini@suse.de>
680
681         * testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc:
682         Remove redundant #include.
683         * testsuite/27_io/basic_ostream/endl/char/1.cc: Likewise.
684         * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise,
685         re-enable normal testing.
686         * testsuite/27_io/basic_ostream/ends/char/2.cc: Remove redundant
687         #include.
688         * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
689         * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
690         Likewise.
691         * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
692         Likewise.
693         * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
694         Likewise.
695         * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
696         Likewise.
697         * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
698         Likewise.
699         * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
700         Likewise.
701         * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
702         Likewise.
703         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc:
704         More properly, #include <locale>.
705         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc:
706         Remove redundant #include.
707         * testsuite/27_io/basic_ostream/inserters_other/char/2.cc: Likewise.
708         * testsuite/27_io/basic_ostream/inserters_other/char/3.cc: Remove
709         redundant DejaGnu directive.
710         * testsuite/27_io/basic_ostream/inserters_other/char/4.cc: Remove
711         redundant #include.
712
713 2004-01-06  Benjamin Kosnik  <bkoz@redhat.com>
714             Stefan Olsson  <stefan@snon.net>
715
716         * scripts/check_performance: Use -pthread.
717         * testsuite/performance/allocator.cc: Tweaks, add list.
718         * testsuite/performance/allocator_thread.cc: New.
719
720 2004-01-06  Jerry Quinn  <jlquinn@optonline.net>
721
722         * include/bits/locale_facets.h: Document public classes and
723         functions.
724         * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
725         Add comment.
726
727 2004-01-06  Paolo Carlini  <pcarlini@suse.de>
728
729         * testsuite/27_io/basic_istream/extractors_other/char/1.cc:
730         Remove redundant #includes.
731         * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
732         Likewise.
733         * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
734         Likewise.
735         * testsuite/27_io/basic_istream/get/char/1.cc: Likewise.
736         * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
737         * testsuite/27_io/basic_istream/getline/char/1.cc: Likewise.
738         * testsuite/27_io/basic_istream/getline/char/2.cc: Likewise.
739         * testsuite/27_io/basic_istream/getline/char/3.cc: Likewise.
740         * testsuite/27_io/basic_istream/ignore/char/1.cc: Likewise.
741         * testsuite/27_io/basic_istream/ignore/char/6360.cc: Likewise.
742         * testsuite/27_io/basic_istream/ignore/char/7220.cc: Likewise.
743         * testsuite/27_io/basic_istream/peek/char/1.cc: Likewise.
744         * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
745         * testsuite/27_io/basic_istream/putback/char/1.cc: Likewise.
746         * testsuite/27_io/basic_istream/read/char/1.cc: Likewise.
747         * testsuite/27_io/basic_istream/read/char/2.cc: Likewise.
748         * testsuite/27_io/basic_istream/read/char/3.cc: Likewise.
749         * testsuite/27_io/basic_istream/readsome/char/6746-1.cc:
750         Likewise.
751         * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
752         Likewise.
753         * testsuite/27_io/basic_istream/readsome/char/8258.cc:
754         Likewise.
755         * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
756         Likewise.
757         * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
758         Likewise.
759         * testsuite/27_io/basic_istream/seekg/char/8348-1.cc: Likewise.
760         * testsuite/27_io/basic_istream/seekg/char/8348-2.cc: Likewise.
761         * testsuite/27_io/basic_istream/tellg/char/8348.cc: Likewise.
762
763 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
764
765         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
766         Remove redundant #includes.
767         * testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc:
768         Likewise.
769         * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
770         Likewise.
771         * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
772         Likewise.
773         * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
774         Likewise.
775         * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
776         Likewise.
777         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
778         Likewise.
779         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
780         Likewise.
781         * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
782         Likewise.
783         * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
784         Likewise.
785         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
786         Likewise.
787         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
788         Likewise.
789         * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
790         Likewise.
791
792 2004-01-04  Mark Mitchell  <mark@codesourcery.com>
793
794         PR c++/12226
795         * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
796         constructor.
797         * testsuite/27_io/basic_fstream/4.cc: Likewise.
798         * testsuite/27_io/basic_ifstream/4.cc: Likewise.
799         * testsuite/27_io/basic_ios/4.cc: Likewise.
800         * testsuite/27_io/basic_iostream/4.cc: Likewise.
801         * testsuite/27_io/basic_istream/4.cc: Likewise.
802         * testsuite/27_io/basic_istingstream/4.cc: Likewise.
803         * testsuite/27_io/basic_ofstream/4.cc: Likewise.
804         * testsuite/27_io/basic_ostream/4.cc: Likewise.
805         * testsuite/27_io/basic_ostringstream/4.cc: Likewise.
806         * testsuite/27_io/basic_stringbuf/5.cc: Likewise.
807         * testsuite/27_io/basic_stringstream/4.cc: Likewise.
808
809 2004-01-04  Paolo Carlini  <pcarlini@suse.de>
810
811         * config/locale/generic/numeric_members.cc (_M_initialize_numpunct):
812         Avoid unnecessarily zero terminating _M_atoms_out and _M_atoms_in;
813         always use double underscored names.
814         * config/locale/gnu/numeric_members.cc (_M_initialize_numpunct):
815         Likewise.
816         * include/bits/locale_facets.h (struct __numpunct_cache):
817         Dimension _M_atoms_out and _M_atoms_in one position smaller.
818         (__numpunct_cache<>::_M_cache): Don't zero terminate _M_atoms_out
819         and _M_atoms_in.