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