1 2004-01-28 Benjamin Kosnik <bkoz@redhat.com>
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.
8 2004-01-28 Stefan Olsson <stefan@snon.net>
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.
15 2004-01-28 Paolo Carlini <pcarlini@suse.de>
17 * include/bits/basic_string.h (_S_create(size_t,
18 const _Alloc&): Change signature to take two size_type
20 * include/bits/basic_string.tcc (_S_construct(_InIterator,
21 _InIterator, const _Alloc&, input_iterator_tag)): Update
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.
33 * include/bits/basic_string.h (_Rep::operator[]): Tweak
34 signature to take a size_type, consistently with the other
37 2004-01-27 Benjamin Kosnik <bkoz@redhat.com>
39 * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
40 delete declarations, add include and test variable.
42 2003-01-27 Jerry Quinn <jlquinn@optonline.net>
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.
50 2004-01-27 Jerry Quinn <jlquinn@optonline.net>
53 * include/bits/ios_base.h (ios_base::_M_grow_words): Add
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.
60 2004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
61 PJ Darcy <darcypj@us.ibm.com>
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.
72 2004-01-27 Paolo Carlini <pcarlini@suse.de>
75 * include/bits/sstream.tcc: Guard use of extern template.
77 2004-01-27 Paolo Carlini <pcarlini@suse.de>
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.
84 2004-01-26 Paolo Carlini <pcarlini@suse.de>
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:
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.
101 2004-01-26 Paolo Carlini <pcarlini@suse.de>
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):
111 * include/bits/basic_string.h, include/bits/basic_string.tcc:
112 Fold overlong lines, minor formatting changes.
114 2004-01-26 Paolo Carlini <pcarlini@suse.de>
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.
122 2004-01-26 Paolo Carlini <pcarlini@suse.de>
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.
130 * include/bits/basic_string.tcc (insert(size_type,
131 const _CharT*, size_type)): Tweak slightly.
133 2004-01-26 Andreas Schwab <schwab@suse.de>
135 * config/locale/gnu/monetary_members.cc: Restore locale before
136 rethrowing exception.
138 2004-01-25 Paolo Carlini <pcarlini@suse.de>
140 * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
142 * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
145 * include/bits/basic_string.tcc: Very minor tweaks.
147 2004-01-25 Paolo Carlini <pcarlini@suse.de>
149 * testsuite/performance/string_append.cc: Increase number
152 2004-01-25 Paolo Carlini <pcarlini@suse.de>
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.
158 * include/bits/basic_string.h: Tweak some comments.
160 2004-01-24 Paolo Carlini <pcarlini@suse.de>
162 * include/bits/basic_string.tcc (operator+(const _CharT*,
163 const basic_string&)): No need to go through the append
164 taking two iterators.
166 2004-01-24 Paolo Carlini <pcarlini@suse.de>
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.
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.
185 2004-01-24 Paolo Carlini <pcarlini@suse.de>
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.
192 2004-01-24 Paolo Carlini <pcarlini@suse.de>
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.
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.
219 2004-01-23 Paolo Carlini <pcarlini@suse.de>
222 * include/debug/bitset (operator|=): Fix typo.
223 * testsuite/23_containers/bitset/operations/13838.cc: New.
225 2004-01-23 Paolo Carlini <pcarlini@suse.de>
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.
238 * include/bits/basic_string.tcc (append(const basic_string&),
239 append(const basic_string&, size_type, size_type)): Tweak
242 * include/bits/basic_string.tcc (copy(_CharT*, size_type,
243 size_type)): If __n == 0 don't call traits::copy.
245 2004-01-23 Stefan Olsson <stefan@snon.net>
247 * include/ext/mt_allocator.h: Reduce lock contention.
249 2004-01-23 Paolo Carlini <pcarlini@suse.de>
252 * include/bits/fstream.tcc (underflow): Remove unused
254 * include/bits/streambuf_iterator.h (equal): Ditto.
255 * include/bits/locale_facets.h (_M_convert_from_char):
258 2004-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
266 * config.h.in, configure: Regenerate.
268 2004-01-23 Paolo Carlini <pcarlini@suse.de>
270 * include/bits/basic_string.h (push_back(_CharT)):
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.
280 2004-01-23 Loren J. Rittle <ljrittle@acm.org>
283 * testsuite/performance/allocator_map_thread.cc: New test.
285 2004-01-22 Paolo Carlini <pcarlini@suse.de>
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
293 2004-01-22 Paolo Carlini <pcarlini@suse.de>
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
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*,
306 (insert(size_type, const _CharT*, size_type)): Ditto.
307 (replace(size_type, size_type, const _CharT*,
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.
318 2004-01-21 Paolo Carlini <pcarlini@suse.de>
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.
325 2004-01-21 Paolo Carlini <pcarlini@suse.de>
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
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):
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,
356 (compare(size_type, size_type, const _CharT*)): Ditto.
357 (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
359 2004-01-19 Stefan Olsson <stefan@snon.net>
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.
367 2004-01-19 Loren J. Rittle <ljrittle@acm.org>
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.
373 2004-01-19 Paolo Carlini <pcarlini@suse.de>
375 * src/debug.cc: Make sure all the names are prefixed with
376 double (or single) underscore.
378 2004-01-19 Paolo Carlini <pcarlini@suse.de>
380 * src/debug.cc: Trivial formatting change.
382 2004-01-19 Paolo Carlini <pcarlini@suse.de>
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.
389 2004-01-18 Paolo Carlini <pcarlini@suse.de>
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:
398 2004-01-18 Paolo Carlini <pcarlini@suse.de>
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
421 2004-01-16 Benjamin Kosnik <bkoz@redhat.com>
423 * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
424 * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
426 2004-01-16 Danny Smith <dannysmith@users.sourceforge.net>
428 * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
431 2004-01-15 Stefan Olsson <stefan@snon.net>
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.
437 2004-01-14 Paolo Carlini <pcarlini@suse.de>
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)):
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.
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.
465 2004-01-14 Stefan Olsson <stefan@snon.net>
467 * include/ext/mt_allocator.h: Fixups.
468 * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
469 * testsuite/performance/allocator_thread.cc: Same.
471 2004-01-13 Benjamin Kosnik <bkoz@redhat.com>
473 * testsuite/performance/ifstream_extract_float.cc: Add higher
475 * testsuite/performance/ofstream_insert_float.cc: Same.
477 2004-01-13 Paolo Carlini <pcarlini@suse.de>
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.
483 2004-01-13 Benjamin Kosnik <bkoz@redhat.com>
485 * testsuite/performance/ifstream_extract_float.cc: New.
486 * testsuite/performance/ofstream_insert_float.cc: Float generation
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.
505 2004-01-13 Paolo Carlini <pcarlini@suse.de>
507 * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
508 Set correctly just basefield, the only group that matters.
510 2004-01-13 Paolo Carlini <pcarlini@suse.de>
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
520 (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
521 rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
523 2004-01-13 Paolo Carlini <pcarlini@suse.de>
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.
533 2004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
535 * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
538 2004-01-12 Paolo Carlini <pcarlini@suse.de>
540 * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
542 * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
545 2004-01-12 Paolo Carlini <pcarlini@suse.de>
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.
559 2004-01-12 Mark Mitchell <mark@codesourcery.com>
561 * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
562 * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
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:
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.
577 2004-01-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
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.
590 2004-01-11 Paolo Carlini <pcarlini@suse.de>
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.
603 2004-01-10 Paolo Carlini <pcarlini@suse.de>
605 * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
608 2004-01-10 Paolo Carlini <pcarlini@suse.de>
611 * include/bits/locale_classes.h (class locale): Fix category
613 * testsuite/22_locale/locale/13630.cc: Add.
615 2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
617 * include/bits/locale_facets.h: Make a name really dependent. This
618 will be needed when Core Issue 224 is implemented.
620 2004-01-09 Paolo Carlini <pcarlini@suse.de>
622 * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
623 * testsuite/performance/allocator_thread.cc: Likewise.
625 2004-01-07 Benjamin Kosnik <bkoz@redhat.com>
627 * crossconfig.m4: Add LFS, io bits to linux cross config.
628 * acconfig.h: Remove obsolete bits, reorder.
629 * config.h.in: Regenerate.
633 2004-01-07 Gawain Bolton <gp.bolton@computer.org>
635 * include/bits/stl_list.h:
636 * include/bits/list.tc:
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):
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
657 Create separate classes for non-constant and constant
658 iterators to clarify code, avoid extra template parameters and
659 casting away constness.
661 2004-01-07 Benjamin Kosnik <bkoz@redhat.com>
663 * src/Makefile.am (sources): Add list.cc, tree.cc.
664 * src/stl_tree.cc: Move to...
665 * src/tree.cc: ...here.
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.
671 * bits/stl_vector.h: Column wrap comments.
673 2004-01-07 Loren J. Rittle <ljrittle@acm.org>
675 (re-open) PR libstdc++/12658
676 * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
677 (locale::global): Likewise.
679 2004-01-07 Paolo Carlini <pcarlini@suse.de>
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
688 * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
689 * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
691 * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
693 * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
695 * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
697 * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
699 * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
701 * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
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
713 2004-01-06 Benjamin Kosnik <bkoz@redhat.com>
714 Stefan Olsson <stefan@snon.net>
716 * scripts/check_performance: Use -pthread.
717 * testsuite/performance/allocator.cc: Tweaks, add list.
718 * testsuite/performance/allocator_thread.cc: New.
720 2004-01-06 Jerry Quinn <jlquinn@optonline.net>
722 * include/bits/locale_facets.h: Document public classes and
724 * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
727 2004-01-06 Paolo Carlini <pcarlini@suse.de>
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:
733 * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
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:
751 * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
753 * testsuite/27_io/basic_istream/readsome/char/8258.cc:
755 * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
757 * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
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.
763 2004-01-04 Paolo Carlini <pcarlini@suse.de>
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:
769 * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
771 * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
773 * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
775 * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
777 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
779 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
781 * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
783 * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
785 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
787 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
789 * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
792 2004-01-04 Mark Mitchell <mark@codesourcery.com>
795 * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
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.
809 2004-01-04 Paolo Carlini <pcarlini@suse.de>
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):
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