1 2004-01-30 Paolo Carlini <pcarlini@suse.de>
3 * include/bits/basic_string.tcc (_S_construct(_InIterator,
4 _InIterator, const _Alloc&, input_iterator_tag)): Simplify
5 the double loop, streamline.
7 * include/bits/basic_string.tcc: Very minor tweaks.
9 2004-01-30 Loren J. Rittle <ljrittle@acm.org>
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.
23 2004-01-29 Stephen M. Webb <stephen.webb@bregmasoft.com>
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
35 2004-01-29 Benjamin Kosnik <bkoz@redhat.com>
37 * include/bits/allocator.h: Temporary switch to new_allocator as
38 the default to unjam bootstraps.
40 2004-01-28 Benjamin Kosnik <bkoz@redhat.com>
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
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,
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.
70 * include/ext/mt_allocator.h: Replace free with delete.
72 2004-01-28 Benjamin Kosnik <bkoz@redhat.com>
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.
79 2004-01-28 Stefan Olsson <stefan@snon.net>
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.
86 2004-01-28 Paolo Carlini <pcarlini@suse.de>
88 * include/bits/basic_string.h (_S_create(size_t,
89 const _Alloc&): Change signature to take two size_type
91 * include/bits/basic_string.tcc (_S_construct(_InIterator,
92 _InIterator, const _Alloc&, input_iterator_tag)): Update
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.
104 * include/bits/basic_string.h (_Rep::operator[]): Tweak
105 signature to take a size_type, consistently with the other
108 2004-01-27 Benjamin Kosnik <bkoz@redhat.com>
110 * testsuite/27_io/ios_base/storage/11584.cc: Correct new and
111 delete declarations, add include and test variable.
113 2003-01-27 Jerry Quinn <jlquinn@optonline.net>
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.
121 2004-01-27 Jerry Quinn <jlquinn@optonline.net>
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.
131 2004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
132 PJ Darcy <darcypj@us.ibm.com>
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.
143 2004-01-27 Paolo Carlini <pcarlini@suse.de>
146 * include/bits/sstream.tcc: Guard use of extern template.
148 2004-01-27 Paolo Carlini <pcarlini@suse.de>
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.
155 2004-01-26 Paolo Carlini <pcarlini@suse.de>
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:
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.
172 2004-01-26 Paolo Carlini <pcarlini@suse.de>
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):
182 * include/bits/basic_string.h, include/bits/basic_string.tcc:
183 Fold overlong lines, minor formatting changes.
185 2004-01-26 Paolo Carlini <pcarlini@suse.de>
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.
193 2004-01-26 Paolo Carlini <pcarlini@suse.de>
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.
201 * include/bits/basic_string.tcc (insert(size_type,
202 const _CharT*, size_type)): Tweak slightly.
204 2004-01-26 Andreas Schwab <schwab@suse.de>
206 * config/locale/gnu/monetary_members.cc: Restore locale before
207 rethrowing exception.
209 2004-01-25 Paolo Carlini <pcarlini@suse.de>
211 * include/bits/basic_string.h (_M_replace_aux, _M_replace_safe):
213 * include/bits/basic_string.tcc (_M_replace_aux, _M_replace_safe):
216 * include/bits/basic_string.tcc: Very minor tweaks.
218 2004-01-25 Paolo Carlini <pcarlini@suse.de>
220 * testsuite/performance/string_append.cc: Increase number
223 2004-01-25 Paolo Carlini <pcarlini@suse.de>
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.
229 * include/bits/basic_string.h: Tweak some comments.
231 2004-01-24 Paolo Carlini <pcarlini@suse.de>
233 * include/bits/basic_string.tcc (operator+(const _CharT*,
234 const basic_string&)): No need to go through the append
235 taking two iterators.
237 2004-01-24 Paolo Carlini <pcarlini@suse.de>
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.
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.
256 2004-01-24 Paolo Carlini <pcarlini@suse.de>
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.
263 2004-01-24 Paolo Carlini <pcarlini@suse.de>
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.
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.
290 2004-01-23 Paolo Carlini <pcarlini@suse.de>
293 * include/debug/bitset (operator|=): Fix typo.
294 * testsuite/23_containers/bitset/operations/13838.cc: New.
296 2004-01-23 Paolo Carlini <pcarlini@suse.de>
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.
309 * include/bits/basic_string.tcc (append(const basic_string&),
310 append(const basic_string&, size_type, size_type)): Tweak
313 * include/bits/basic_string.tcc (copy(_CharT*, size_type,
314 size_type)): If __n == 0 don't call traits::copy.
316 2004-01-23 Stefan Olsson <stefan@snon.net>
318 * include/ext/mt_allocator.h: Reduce lock contention.
320 2004-01-23 Paolo Carlini <pcarlini@suse.de>
323 * include/bits/fstream.tcc (underflow): Remove unused
325 * include/bits/streambuf_iterator.h (equal): Ditto.
326 * include/bits/locale_facets.h (_M_convert_from_char):
329 2004-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
337 * config.h.in, configure: Regenerate.
339 2004-01-23 Paolo Carlini <pcarlini@suse.de>
341 * include/bits/basic_string.h (push_back(_CharT)):
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.
351 2004-01-23 Loren J. Rittle <ljrittle@acm.org>
354 * testsuite/performance/allocator_map_thread.cc: New test.
356 2004-01-22 Paolo Carlini <pcarlini@suse.de>
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
364 2004-01-22 Paolo Carlini <pcarlini@suse.de>
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
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*,
377 (insert(size_type, const _CharT*, size_type)): Ditto.
378 (replace(size_type, size_type, const _CharT*,
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.
389 2004-01-21 Paolo Carlini <pcarlini@suse.de>
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.
396 2004-01-21 Paolo Carlini <pcarlini@suse.de>
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
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):
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,
427 (compare(size_type, size_type, const _CharT*)): Ditto.
428 (compare(size_type, size_type, const _CharT*, size_type)): Ditto.
430 2004-01-19 Stefan Olsson <stefan@snon.net>
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.
438 2004-01-19 Loren J. Rittle <ljrittle@acm.org>
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.
444 2004-01-19 Paolo Carlini <pcarlini@suse.de>
446 * src/debug.cc: Make sure all the names are prefixed with
447 double (or single) underscore.
449 2004-01-19 Paolo Carlini <pcarlini@suse.de>
451 * src/debug.cc: Trivial formatting change.
453 2004-01-19 Paolo Carlini <pcarlini@suse.de>
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.
460 2004-01-18 Paolo Carlini <pcarlini@suse.de>
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:
469 2004-01-18 Paolo Carlini <pcarlini@suse.de>
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
492 2004-01-16 Benjamin Kosnik <bkoz@redhat.com>
494 * testsuite/ext/enc_filebuf/char/13189.cc: Fix guards.
495 * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Same.
497 2004-01-16 Danny Smith <dannysmith@users.sourceforge.net>
499 * testsuite/testsuite_hooks.cc (try_mkfifo): Avoid calling
502 2004-01-15 Stefan Olsson <stefan@snon.net>
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.
508 2004-01-14 Paolo Carlini <pcarlini@suse.de>
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)):
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.
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.
536 2004-01-14 Stefan Olsson <stefan@snon.net>
538 * include/ext/mt_allocator.h: Fixups.
539 * testsuite/performance/allocator.cc: Enable __mt_alloc tests.
540 * testsuite/performance/allocator_thread.cc: Same.
542 2004-01-13 Benjamin Kosnik <bkoz@redhat.com>
544 * testsuite/performance/ifstream_extract_float.cc: Add higher
546 * testsuite/performance/ofstream_insert_float.cc: Same.
548 2004-01-13 Paolo Carlini <pcarlini@suse.de>
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.
554 2004-01-13 Benjamin Kosnik <bkoz@redhat.com>
556 * testsuite/performance/ifstream_extract_float.cc: New.
557 * testsuite/performance/ofstream_insert_float.cc: Float generation
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.
576 2004-01-13 Paolo Carlini <pcarlini@suse.de>
578 * include/bits/locale_facets.tcc (num_get::do_get(void*&)):
579 Set correctly just basefield, the only group that matters.
581 2004-01-13 Paolo Carlini <pcarlini@suse.de>
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
591 (rope::_S_new_RopeLeaf, rope::_S_new_RopeConcatenation,
592 rope::_S_new_RopeFunction, rope::_S_new_RopeSubstring): Tweak.
594 2004-01-13 Paolo Carlini <pcarlini@suse.de>
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.
604 2004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
606 * testsuite/lib/libstdc++.exp: Set LD_LIBRARY_PATH_32 for
609 2004-01-12 Paolo Carlini <pcarlini@suse.de>
611 * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc:
613 * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
616 2004-01-12 Paolo Carlini <pcarlini@suse.de>
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.
630 2004-01-12 Mark Mitchell <mark@codesourcery.com>
632 * testsuite/testsuite_hooks.h (__gnu_test::try_mkfifo): Declare it.
633 * testsuite/testsuite_hooks.cc (__gnu_test::try_mkfifo): Define
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:
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.
648 2004-01-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
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.
661 2004-01-11 Paolo Carlini <pcarlini@suse.de>
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.
674 2004-01-10 Paolo Carlini <pcarlini@suse.de>
676 * docs/html/ext/lwg-active.html, docs/html/ext/lwg-defects.html:
679 2004-01-10 Paolo Carlini <pcarlini@suse.de>
682 * include/bits/locale_classes.h (class locale): Fix category
684 * testsuite/22_locale/locale/13630.cc: Add.
686 2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
688 * include/bits/locale_facets.h: Make a name really dependent. This
689 will be needed when Core Issue 224 is implemented.
691 2004-01-09 Paolo Carlini <pcarlini@suse.de>
693 * testsuite/performance/allocator.cc: Demangle typeid(obj).name().
694 * testsuite/performance/allocator_thread.cc: Likewise.
696 2004-01-07 Benjamin Kosnik <bkoz@redhat.com>
698 * crossconfig.m4: Add LFS, io bits to linux cross config.
699 * acconfig.h: Remove obsolete bits, reorder.
700 * config.h.in: Regenerate.
704 2004-01-07 Gawain Bolton <gp.bolton@computer.org>
706 * include/bits/stl_list.h:
707 * include/bits/list.tc:
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):
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
728 Create separate classes for non-constant and constant
729 iterators to clarify code, avoid extra template parameters and
730 casting away constness.
732 2004-01-07 Benjamin Kosnik <bkoz@redhat.com>
734 * src/Makefile.am (sources): Add list.cc, tree.cc.
735 * src/stl_tree.cc: Move to...
736 * src/tree.cc: ...here.
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.
742 * bits/stl_vector.h: Column wrap comments.
744 2004-01-07 Loren J. Rittle <ljrittle@acm.org>
746 (re-open) PR libstdc++/12658
747 * src/locale_init.cc (locale::locale): Remove ill-scoped mutex.
748 (locale::global): Likewise.
750 2004-01-07 Paolo Carlini <pcarlini@suse.de>
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
759 * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
760 * testsuite/27_io/basic_ostream/inserters_character/char/1.cc:
762 * testsuite/27_io/basic_ostream/inserters_character/char/2.cc:
764 * testsuite/27_io/basic_ostream/inserters_character/char/3.cc:
766 * testsuite/27_io/basic_ostream/inserters_character/char/4.cc:
768 * testsuite/27_io/basic_ostream/inserters_character/char/5.cc:
770 * testsuite/27_io/basic_ostream/inserters_character/char/6.cc:
772 * testsuite/27_io/basic_ostream/inserters_character/char/8.cc:
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
784 2004-01-06 Benjamin Kosnik <bkoz@redhat.com>
785 Stefan Olsson <stefan@snon.net>
787 * scripts/check_performance: Use -pthread.
788 * testsuite/performance/allocator.cc: Tweaks, add list.
789 * testsuite/performance/allocator_thread.cc: New.
791 2004-01-06 Jerry Quinn <jlquinn@optonline.net>
793 * include/bits/locale_facets.h: Document public classes and
795 * include/bits/locale_facets.tcc (time_get::_M_extract_via_format):
798 2004-01-06 Paolo Carlini <pcarlini@suse.de>
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:
804 * testsuite/27_io/basic_istream/extractors_other/char/3.cc:
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:
822 * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
824 * testsuite/27_io/basic_istream/readsome/char/8258.cc:
826 * testsuite/27_io/basic_istream/seekg/char/2346-fstream.cc:
828 * testsuite/27_io/basic_istream/seekg/char/2346-sstream.cc:
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.
834 2004-01-04 Paolo Carlini <pcarlini@suse.de>
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:
840 * testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc:
842 * testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc:
844 * testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc:
846 * testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc:
848 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
850 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
852 * testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc:
854 * testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
856 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc:
858 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc:
860 * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc:
863 2004-01-04 Mark Mitchell <mark@codesourcery.com>
866 * testsuite/27_io/basic_filebuf/4.cc: Remove use of invalid copy
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.
880 2004-01-04 Paolo Carlini <pcarlini@suse.de>
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):
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