OSDN Git Service

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