head 1.1; branch 1.1.1; access; symbols netbsd-11-0-RC4:1.1.1.13 netbsd-11-0-RC3:1.1.1.13 netbsd-11-0-RC2:1.1.1.13 netbsd-11-0-RC1:1.1.1.13 gcc-14-3-0:1.1.1.14 perseant-exfatfs-base-20250801:1.1.1.13 netbsd-11:1.1.1.13.0.2 netbsd-11-base:1.1.1.13 gcc-12-5-0:1.1.1.13 netbsd-10-1-RELEASE:1.1.1.10.6.1 perseant-exfatfs-base-20240630:1.1.1.13 gcc-12-4-0:1.1.1.13 perseant-exfatfs:1.1.1.12.0.2 perseant-exfatfs-base:1.1.1.12 netbsd-8-3-RELEASE:1.1.1.3 netbsd-9-4-RELEASE:1.1.1.4 netbsd-10-0-RELEASE:1.1.1.10.6.1 netbsd-10-0-RC6:1.1.1.10.6.1 netbsd-10-0-RC5:1.1.1.10.6.1 netbsd-10-0-RC4:1.1.1.10.6.1 netbsd-10-0-RC3:1.1.1.10.6.1 netbsd-10-0-RC2:1.1.1.10.6.1 netbsd-10-0-RC1:1.1.1.10.6.1 gcc-12-3-0:1.1.1.12 gcc-10-5-0:1.1.1.11 netbsd-10:1.1.1.10.0.6 netbsd-10-base:1.1.1.10 netbsd-9-3-RELEASE:1.1.1.4 gcc-10-4-0:1.1.1.10 cjep_sun2x-base1:1.1.1.10 cjep_sun2x:1.1.1.10.0.4 cjep_sun2x-base:1.1.1.10 cjep_staticlib_x-base1:1.1.1.10 netbsd-9-2-RELEASE:1.1.1.4 cjep_staticlib_x:1.1.1.10.0.2 cjep_staticlib_x-base:1.1.1.10 gcc-10-3-0:1.1.1.10 netbsd-9-1-RELEASE:1.1.1.4 gcc-9-3-0:1.1.1.9 gcc-7-5-0:1.1.1.7 phil-wifi-20200421:1.1.1.6 phil-wifi-20200411:1.1.1.6 is-mlppp:1.1.1.5.0.2 is-mlppp-base:1.1.1.5 phil-wifi-20200406:1.1.1.6 netbsd-8-2-RELEASE:1.1.1.3 gcc-8-4-0:1.1.1.8 netbsd-9-0-RELEASE:1.1.1.4 netbsd-9-0-RC2:1.1.1.4 netbsd-9-0-RC1:1.1.1.4 phil-wifi-20191119:1.1.1.5 gcc-8-3-0:1.1.1.5 netbsd-9:1.1.1.4.0.2 netbsd-9-base:1.1.1.4 phil-wifi-20190609:1.1.1.4 netbsd-8-1-RELEASE:1.1.1.3 netbsd-8-1-RC1:1.1.1.3 pgoyette-compat-merge-20190127:1.1.1.3.14.1 pgoyette-compat-20190127:1.1.1.4 gcc-7-4-0:1.1.1.4 pgoyette-compat-20190118:1.1.1.4 pgoyette-compat-1226:1.1.1.4 pgoyette-compat-1126:1.1.1.4 gcc-6-5-0:1.1.1.4 pgoyette-compat-1020:1.1.1.3 pgoyette-compat-0930:1.1.1.3 pgoyette-compat-0906:1.1.1.3 netbsd-7-2-RELEASE:1.1.1.2 pgoyette-compat-0728:1.1.1.3 netbsd-8-0-RELEASE:1.1.1.3 phil-wifi:1.1.1.3.0.16 phil-wifi-base:1.1.1.3 pgoyette-compat-0625:1.1.1.3 netbsd-8-0-RC2:1.1.1.3 pgoyette-compat-0521:1.1.1.3 pgoyette-compat-0502:1.1.1.3 pgoyette-compat-0422:1.1.1.3 netbsd-8-0-RC1:1.1.1.3 pgoyette-compat-0415:1.1.1.3 pgoyette-compat-0407:1.1.1.3 pgoyette-compat-0330:1.1.1.3 pgoyette-compat-0322:1.1.1.3 pgoyette-compat-0315:1.1.1.3 netbsd-7-1-2-RELEASE:1.1.1.2 pgoyette-compat:1.1.1.3.0.14 pgoyette-compat-base:1.1.1.3 gcc-6-4-0:1.1.1.3 netbsd-7-1-1-RELEASE:1.1.1.2 gcc-5-5-0:1.1.1.3 matt-nb8-mediatek:1.1.1.3.0.12 matt-nb8-mediatek-base:1.1.1.3 perseant-stdc-iso10646:1.1.1.3.0.10 perseant-stdc-iso10646-base:1.1.1.3 netbsd-8:1.1.1.3.0.8 netbsd-8-base:1.1.1.3 prg-localcount2-base3:1.1.1.3 prg-localcount2-base2:1.1.1.3 prg-localcount2-base1:1.1.1.3 prg-localcount2:1.1.1.3.0.6 prg-localcount2-base:1.1.1.3 pgoyette-localcount-20170426:1.1.1.3 bouyer-socketcan-base1:1.1.1.3 pgoyette-localcount-20170320:1.1.1.3 netbsd-7-1:1.1.1.2.0.10 netbsd-7-1-RELEASE:1.1.1.2 netbsd-7-1-RC2:1.1.1.2 netbsd-7-nhusb-base-20170116:1.1.1.2 bouyer-socketcan:1.1.1.3.0.4 bouyer-socketcan-base:1.1.1.3 pgoyette-localcount-20170107:1.1.1.3 netbsd-7-1-RC1:1.1.1.2 pgoyette-localcount-20161104:1.1.1.3 netbsd-7-0-2-RELEASE:1.1.1.2 localcount-20160914:1.1.1.3 netbsd-7-nhusb:1.1.1.2.0.8 netbsd-7-nhusb-base:1.1.1.2 pgoyette-localcount-20160806:1.1.1.3 pgoyette-localcount-20160726:1.1.1.3 pgoyette-localcount:1.1.1.3.0.2 pgoyette-localcount-base:1.1.1.3 gcc-5-4-0:1.1.1.3 netbsd-7-0-1-RELEASE:1.1.1.2 gcc-5-3-0:1.1.1.3 netbsd-7-0:1.1.1.2.0.6 netbsd-7-0-RELEASE:1.1.1.2 gcc-4-8-5-pre-gcc-old-import:1.1.1.2 netbsd-7-0-RC3:1.1.1.2 netbsd-7-0-RC2:1.1.1.2 post-gcc-4-8-5-merge:1.1.1.2 gcc-4-8-5:1.1.1.2 netbsd-7-0-RC1:1.1.1.2 gcc-4-8-4:1.1.1.2 gcc-4-8-20141009:1.1.1.2 netbsd-6-0-6-RELEASE:1.1.1.1 netbsd-6-1-5-RELEASE:1.1.1.1 netbsd-7:1.1.1.2.0.4 netbsd-7-base:1.1.1.2 gcc-4-8-3:1.1.1.2 yamt-pagecache-base9:1.1.1.2 yamt-pagecache-tag8:1.1.1.1 netbsd-6-1-4-RELEASE:1.1.1.1 netbsd-6-0-5-RELEASE:1.1.1.1 tls-earlyentropy:1.1.1.2.0.2 tls-earlyentropy-base:1.1.1.2 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.2 riastradh-drm2-base3:1.1.1.2 gcc-4-8-3-pre-r208254:1.1.1.2 gcc-4-8-3-pre-r206687:1.1.1.2 imported-to-gcc-old-20140227-0107:1.1.1.1 netbsd-6-1-3-RELEASE:1.1.1.1 netbsd-6-0-4-RELEASE:1.1.1.1 netbsd-6-1-2-RELEASE:1.1.1.1 netbsd-6-0-3-RELEASE:1.1.1.1 netbsd-6-1-1-RELEASE:1.1.1.1 riastradh-drm2-base2:1.1.1.1 riastradh-drm2-base1:1.1.1.1 riastradh-drm2:1.1.1.1.0.12 riastradh-drm2-base:1.1.1.1 netbsd-6-1:1.1.1.1.0.16 netbsd-6-0-2-RELEASE:1.1.1.1 netbsd-6-1-RELEASE:1.1.1.1 netbsd-6-1-RC4:1.1.1.1 netbsd-6-1-RC3:1.1.1.1 agc-symver:1.1.1.1.0.14 agc-symver-base:1.1.1.1 netbsd-6-1-RC2:1.1.1.1 netbsd-6-1-RC1:1.1.1.1 yamt-pagecache-base8:1.1.1.1 netbsd-6-0-1-RELEASE:1.1.1.1 yamt-pagecache-base7:1.1.1.1 matt-nb6-plus-nbase:1.1.1.1 yamt-pagecache-base6:1.1.1.1 netbsd-6-0:1.1.1.1.0.10 netbsd-6-0-RELEASE:1.1.1.1 gcc-4-5-4:1.1.1.1 netbsd-6-0-RC2:1.1.1.1 tls-maxphys:1.1.1.1.0.8 tls-maxphys-base:1.1.1.2 matt-nb6-plus:1.1.1.1.0.6 matt-nb6-plus-base:1.1.1.1 netbsd-6-0-RC1:1.1.1.1 yamt-pagecache-base5:1.1.1.1 yamt-pagecache-base4:1.1.1.1 netbsd-6:1.1.1.1.0.4 netbsd-6-base:1.1.1.1 yamt-pagecache-base3:1.1.1.1 yamt-pagecache-base2:1.1.1.1 yamt-pagecache:1.1.1.1.0.2 yamt-pagecache-base:1.1.1.1 gcc-4-5-3:1.1.1.1 FSF:1.1.1; locks; strict; comment @# @; 1.1 date 2011.06.21.01.24.07; author mrg; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2011.06.21.01.24.07; author mrg; state Exp; branches 1.1.1.1.2.1 1.1.1.1.8.1; next 1.1.1.2; 1.1.1.2 date 2014.03.01.08.41.30; author mrg; state Exp; branches; next 1.1.1.3; commitid TtaB91QNTknAoYqx; 1.1.1.3 date 2016.01.24.06.05.43; author mrg; state Exp; branches 1.1.1.3.14.1 1.1.1.3.16.1; next 1.1.1.4; commitid uWWfbLp08zOK79Sy; 1.1.1.4 date 2018.11.04.00.12.37; author mrg; state Exp; branches; next 1.1.1.5; commitid bulspy67pMB6EyYA; 1.1.1.5 date 2019.10.01.09.36.13; author mrg; state Exp; branches; next 1.1.1.6; commitid smvgr2IPAQDr89FB; 1.1.1.6 date 2020.03.11.08.15.59; author mrg; state Exp; branches; next 1.1.1.7; commitid AhKhCnGPUZgytXZB; 1.1.1.7 date 2020.08.11.05.10.39; author mrg; state Exp; branches; next 1.1.1.8; commitid 5dBRDT7i6e65xBjC; 1.1.1.8 date 2020.08.11.05.30.16; author mrg; state Exp; branches; next 1.1.1.9; commitid 7AI4OfpLi4eqEBjC; 1.1.1.9 date 2020.09.05.07.52.18; author mrg; state Exp; branches; next 1.1.1.10; commitid ZRYA7IOuwfMjAPmC; 1.1.1.10 date 2021.04.10.22.10.05; author mrg; state Exp; branches 1.1.1.10.6.1; next 1.1.1.11; commitid eC4g0MRpqTvEkNOC; 1.1.1.11 date 2023.07.11.00.32.50; author mrg; state Exp; branches; next 1.1.1.12; commitid 3yo4S98RsOFBNjwE; 1.1.1.12 date 2023.07.30.05.21.21; author mrg; state Exp; branches 1.1.1.12.2.1; next 1.1.1.13; commitid tk6nV4mbc9nVEMyE; 1.1.1.13 date 2024.06.30.07.35.48; author mrg; state Exp; branches; next 1.1.1.14; commitid m7BwZsPdfJvuHYfF; 1.1.1.14 date 2025.09.13.23.45.49; author mrg; state Exp; branches; next ; commitid KwhwN4krNWa6XBaG; 1.1.1.1.2.1 date 2014.05.22.16.37.44; author yamt; state Exp; branches; next ; commitid DX8bafDLmqEbpyBx; 1.1.1.1.8.1 date 2014.08.19.23.54.46; author tls; state Exp; branches; next ; commitid jTnpym9Qu0o4R1Nx; 1.1.1.3.14.1 date 2018.11.26.01.50.57; author pgoyette; state Exp; branches; next ; commitid Zj4q5SspGdKXto1B; 1.1.1.3.16.1 date 2019.06.10.21.54.48; author christos; state Exp; branches; next 1.1.1.3.16.2; commitid jtc8rnCzWiEEHGqB; 1.1.1.3.16.2 date 2020.04.08.14.06.37; author martin; state Exp; branches; next 1.1.1.3.16.3; commitid Qli2aW9E74UFuA3C; 1.1.1.3.16.3 date 2020.04.13.07.58.34; author martin; state Exp; branches; next ; commitid X01YhRUPVUDaec4C; 1.1.1.10.6.1 date 2023.07.13.09.18.31; author martin; state Exp; branches; next ; commitid nTDZbluVjX9bCCwE; 1.1.1.12.2.1 date 2024.07.01.01.00.57; author perseant; state Exp; branches; next ; commitid NkoYLLCQWWw9v4gF; desc @@ 1.1 log @Initial revision @ text @ API Evolution and Deprecation History

API Evolution and Deprecation History

A list of user-visible changes, in chronological order

3.0

Extensions moved to include/ext.

Include files from the SGI/HP sources that pre-date the ISO standard are added. These files are placed into the include/backward directory and a deprecated warning is added that notifies on inclusion (-Wno-deprecated deactivates the warning.)

Deprecated include backward/strstream added.

Removal of include builtinbuf.h, indstream.h, parsestream.h, PlotFile.h, SFile.h, stdiostream.h, and stream.h.

3.1

Extensions from SGI/HP moved from namespace std to namespace __gnu_cxx. As part of this, the following new includes are added: ext/algorithm, ext/functional, ext/iterator, ext/memory, and ext/numeric.

Extensions to basic_filebuf introduced: __gnu_cxx::enc_filebuf, and __gnu_cxx::stdio_filebuf.

Extensions to tree data structures added in ext/rb_tree.

Removal of ext/tree, moved to backward/tree.h.

3.2

Symbol versioning introduced for shared library.

Removal of include backward/strstream.h.

Allocator changes. Change __malloc_alloc to malloc_allocator and __new_alloc to new_allocator.

For GCC releases from 2.95 through the 3.1 series, defining __USE_MALLOC on the gcc command line would change the default allocation strategy to instead use malloc and free. (This same functionality is now spelled _GLIBCXX_FORCE_NEW, see this page for details.

Error handling in iostreams cleaned up, made consistent.

3.3

3.4

Large file support.

Extensions for generic characters and char_traits added in ext/pod_char_traits.h.

Support for wchar_t specializations of basic_filebuf enhanced to support UTF-8 and Unicode, depending on host. More hosts support basic wchar_t functionality.

Support for char_traits beyond builtin types.

Conformant allocator class and usage in containers. As part of this, the following extensions are added: ext/bitmap_allocator.h, ext/debug_allocator.h, ext/mt_allocator.h, ext/malloc_allocator.h,ext/new_allocator.h, ext/pool_allocator.h.

This is a change from all previous versions, and may require source-level changes due to allocator-related changes to structures names and template parameters, filenames, and file locations. Some, like __simple_alloc, __allocator, __alloc, and _Alloc_traits have been removed.

Default behavior of std::allocator has changed.

Previous versions prior to 3.4 cache allocations in a memory pool, instead of passing through to call the global allocation operators (i.e., __gnu_cxx::pool_allocator). More recent versions default to the simpler __gnu_cxx::new_allocator.

Previously, all allocators were written to the SGI style, and all STL containers expected this interface. This interface had a traits class called _Alloc_traits that attempted to provide more information for compile-time allocation selection and optimization. This traits class had another allocator wrapper, __simple_alloc<T,A>, which was a wrapper around another allocator, A, which itself is an allocator for instances of T. But wait, there's more: __allocator<T,A> is another adapter. Many of the provided allocator classes were SGI style: such classes can be changed to a conforming interface with this wrapper: __allocator<T, __alloc> is thus the same as allocator<T>.

The class allocator used the typedef __alloc to select an underlying allocator that satisfied memory allocation requests. The selection of this underlying allocator was not user-configurable.

Table B.1. Extension Allocators

Allocator (3.4)Header (3.4)Allocator (3.[0-3])Header (3.[0-3])
__gnu_cxx::new_allocator<T>ext/new_allocator.hstd::__new_allocmemory
__gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory
__gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory
__gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__default_alloc_template<bool,int>memory
__gnu_cxx::__mt_alloc<T>ext/mt_allocator.h
__gnu_cxx::bitmap_allocator<T>ext/bitmap_allocator.h

Releases after gcc-3.4 have continued to add to the collection of available allocators. All of these new allocators are standard-style. The following table includes details, along with the first released version of GCC that included the extension allocator.

Table B.2. Extension Allocators Continued

AllocatorIncludeVersion
__gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
__gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

Debug mode first appears.

Precompiled header support PCH support.

Macro guard for changed, from _GLIBCPP_ to _GLIBCXX_.

Extension ext/stdio_sync_filebuf.h added.

Extension ext/demangle.h added.

4.0

TR1 features first appear.

Extension allocator ext/array_allocator.h added.

Extension codecvt specializations moved to ext/codecvt_specializations.h.

Removal of ext/demangle.h.

4.1

Removal of cassert from all standard headers: now has to be explicitly included for std::assert calls.

Extensions for policy-based data structures first added. New includes, types, namespace pb_assoc.

Extensions for typelists added in ext/typelist.h.

Extension for policy-based basic_string first added: __gnu_cxx::__versa_string in ext/vstring.h.

4.2

Default visibility attributes applied to namespace std. Support for -fvisibility.

TR1 random, complex, and C compatibility headers added.

Extensions for concurrent programming consolidated into ext/concurrence.h and ext/atomicity.h, including change of namespace to __gnu_cxx in some cases. Added types include _Lock_policy, __concurrence_lock_error, __concurrence_unlock_error, __mutex, __scoped_lock.

Extensions for type traits consolidated into ext/type_traits.h. Additional traits are added (__conditional_type, __enable_if, others.)

Extensions for policy-based data structures revised. New includes, types, namespace moved to __pb_ds.

Extensions for debug mode modified: now nested in namespace std::__debug and extensions in namespace __gnu_cxx::__debug.

Extensions added: ext/typelist.h and ext/throw_allocator.h.

4.3

C++0X features first appear.

TR1 regex and cmath's mathematical special function added.

Backward include edit.

  • Removed

    algobase.h algo.h alloc.h bvector.h complex.h defalloc.h deque.h fstream.h function.h hash_map.h hash_set.h hashtable.h heap.h iomanip.h iostream.h istream.h iterator.h list.h map.h multimap.h multiset.h new.h ostream.h pair.h queue.h rope.h set.h slist.h stack.h streambuf.h stream.h tempbuf.h tree.h vector.h

  • Added

    hash_map and hash_set

  • Added in C++0x

    auto_ptr.h and binders.h

Header dependency streamlining.

  • algorithm no longer includes climits, cstring, or iosfwd

  • bitset no longer includes istream or ostream, adds iosfwd

  • functional no longer includes cstddef

  • iomanip no longer includes istream, istream, or functional, adds ioswd

  • numeric no longer includes iterator

  • string no longer includes algorithm or memory

  • valarray no longer includes numeric or cstdlib

  • tr1/hashtable no longer includes memory or functional

  • tr1/memory no longer includes algorithm

  • tr1/random no longer includes algorithm or fstream

Debug mode for unordered_map and unordered_set.

Parallel mode first appears.

Variadic template implementations of items in tuple and functional.

Default what implementations give more elaborate exception strings for bad_cast, bad_typeid, bad_exception, and bad_alloc.

PCH binary files no longer installed. Instead, the source files are installed.

Namespace pb_ds moved to __gnu_pb_ds.

4.4

C++0X features.

  • Added.

    atomic, chrono, condition_variable, forward_list, initializer_list, mutex, ratio, thread

  • Updated and improved.

    algorithm, system_error, type_traits

  • Use of the GNU extension namespace association converted to inline namespaces.

  • Preliminary support for initializer_list and defaulted and deleted constructors in container classes.

  • unique_ptr.

  • Support for new character types char16_t and char32_t added to char_traits, basic_string, numeric_limits, and assorted compile-time type traits.

  • Support for string conversions to_string and to_wstring.

  • Member functions taking string arguments were added to iostreams including basic_filebuf, basic_ofstream, and basic_ifstream.

  • Exception propagation support, including exception_ptr, current_exception, copy_exception, and rethrow_exception.

Uglification of try to __try and catch to __catch.

Audit of internal mutex usage, conversion to functions returning static local mutex.

Extensions added: ext/pointer.h and ext/extptr_allocator.h. Support for non-standard pointer types has been added to vector and forward_list.

4.5

C++0X features.

  • Added.

    functional, future, random

  • Updated and improved.

    atomic, system_error, type_traits

  • Add support for explicit operators and standard layout types.

Profile mode first appears.

Support for decimal floating-point arithmetic, including decimal32, decimal64, and decimal128.

Python pretty-printers are added for use with appropriately-advanced versions of gdb.

Audit for application of function attributes notrow, const, pure, and noreturn.

The default behavior for comparing typeinfo names changed, so in typeinfo, __GXX_MERGED_TYPEINFO_NAMES now defaults to zero.

Extensions modified: ext/throw_allocator.h.

@ 1.1.1.1 log @initial import of GCC 4.5.3 sources. changes since 4.1 are way too numerous to review, please see http://gcc.gnu.org/gcc-4.5/changes.html (and the 4.2, 4.3 and 4.4 versions, too.) this includes the core, c++, objc and the non java/ada/fortran parts of the testsuite. @ text @@ 1.1.1.1.8.1 log @Rebase to HEAD as of a few days ago. @ text @d2 2 a3 1 API Evolution and Deprecation History

API Evolution and Deprecation History

d8 1 a8 1

3.0

d17 1 a17 1

3.1

d29 1 a29 1

3.2

d33 2 a34 5 free. For the 3.2 and 3.3 release series the same functionality was spelled _GLIBCXX_FORCE_NEW. From GCC 3.4 onwards the functionality is enabled by setting GLIBCXX_FORCE_NEW in the environment, see the mt allocator chapter d36 2 a37 2

Error handling in iostreams cleaned up, made consistent.

3.3

3.4

d78 1 a78 1

Table B.6. Extension Allocators

Allocator (3.4)Header (3.4)Allocator (3.[0-3])Header (3.[0-3])
__gnu_cxx::new_allocator<T>ext/new_allocator.hstd::__new_allocmemory
__gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory
__gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory
__gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__default_alloc_template<bool,int>memory
__gnu_cxx::__mt_alloc<T>ext/mt_allocator.h
__gnu_cxx::bitmap_allocator<T>ext/bitmap_allocator.h

Releases after gcc-3.4 have continued to add to the collection d82 1 a82 1

Table B.7. Extension Allocators Continued

AllocatorIncludeVersion
__gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
__gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

d92 1 a92 1

4.0

d101 1 a101 1

4.1

d108 1 a108 1

4.2

d123 1 a123 1

4.3

d129 1 a129 1

  • Removed

    d137 1 a137 1

  • Added in C++11

    d141 1 a141 1

    • algorithm no longer includes climits, cstring, or iosfwd

    • bitset no longer includes istream or ostream, adds iosfwd

    • functional no longer includes cstddef

    • iomanip no longer includes istream, istream, or functional, adds ioswd

    • numeric no longer includes iterator

    • string no longer includes algorithm or memory

    • valarray no longer includes numeric or cstdlib

    • tr1/hashtable no longer includes memory or functional

    • tr1/memory no longer includes algorithm

    • tr1/random no longer includes algorithm or fstream

    d146 1 a146 1 functional. d152 1 a152 1 PCH binary files no longer installed. Instead, the source files are installed. d155 1 a155 1

4.4

d158 1 a158 1

  • d210 1 a210 1

4.5

d213 1 a213 1

  • d230 1 a230 1 Support for decimal floating-point arithmetic, including decimal32, decimal64, and decimal128. d240 1 a240 1

@ 1.1.1.1.2.1 log @sync with head. for a reference, the tree before this commit was tagged as yamt-pagecache-tag8. this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments") @ text @d2 2 a3 1 API Evolution and Deprecation History

API Evolution and Deprecation History

d8 1 a8 1

3.0

d17 1 a17 1

3.1

d29 1 a29 1

3.2

d33 2 a34 5 free. For the 3.2 and 3.3 release series the same functionality was spelled _GLIBCXX_FORCE_NEW. From GCC 3.4 onwards the functionality is enabled by setting GLIBCXX_FORCE_NEW in the environment, see the mt allocator chapter d36 2 a37 2

Error handling in iostreams cleaned up, made consistent.

3.3

3.4

d78 1 a78 1

Table B.6. Extension Allocators

Allocator (3.4)Header (3.4)Allocator (3.[0-3])Header (3.[0-3])
__gnu_cxx::new_allocator<T>ext/new_allocator.hstd::__new_allocmemory
__gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory
__gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory
__gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__default_alloc_template<bool,int>memory
__gnu_cxx::__mt_alloc<T>ext/mt_allocator.h
__gnu_cxx::bitmap_allocator<T>ext/bitmap_allocator.h

Releases after gcc-3.4 have continued to add to the collection d82 1 a82 1

Table B.7. Extension Allocators Continued

AllocatorIncludeVersion
__gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
__gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

d92 1 a92 1

4.0

d101 1 a101 1

4.1

d108 1 a108 1

4.2

d123 1 a123 1

4.3

d129 1 a129 1

  • Removed

    d137 1 a137 1

  • Added in C++11

    d141 1 a141 1

    • algorithm no longer includes climits, cstring, or iosfwd

    • bitset no longer includes istream or ostream, adds iosfwd

    • functional no longer includes cstddef

    • iomanip no longer includes istream, istream, or functional, adds ioswd

    • numeric no longer includes iterator

    • string no longer includes algorithm or memory

    • valarray no longer includes numeric or cstdlib

    • tr1/hashtable no longer includes memory or functional

    • tr1/memory no longer includes algorithm

    • tr1/random no longer includes algorithm or fstream

    d146 1 a146 1 functional. d152 1 a152 1 PCH binary files no longer installed. Instead, the source files are installed. d155 1 a155 1

4.4

d158 1 a158 1

  • d210 1 a210 1

4.5

d213 1 a213 1

  • d230 1 a230 1 Support for decimal floating-point arithmetic, including decimal32, decimal64, and decimal128. d240 1 a240 1

@ 1.1.1.2 log @import GCC 4.8 branch at r206687. highlights from: http://gcc.gnu.org/gcc-4.6/changes.html GCC now has stricter checks for invalid command-line options New -Wunused-but-set-variable and -Wunused-but-set-parameter warnings Many platforms have been obsoleted Link-time optimization improvements A new switch -fstack-usage has been added A new function attribute leaf was introduced A new warning, enabled by -Wdouble-promotion Support for selectively enabling and disabling warnings via #pragma GCC diagnostic has been added There is now experimental support for some features from the upcoming C1X revision of the ISO C standard Improved experimental support for the upcoming C++0x ISO C++ standard G++ now issues clearer diagnostics in several cases Updates for ARM, x86, MIPS, PPC/PPC64, SPARC Darwin, FreeBSD, Solaris 2, MinGW and Cygwin now all support __float128 on 32-bit and 64-bit x86 targets. [*1] highlights from: http://gcc.gnu.org/gcc-4.7/changes.html The -fconserve-space flag has been deprecated Support for a new parameter --param case-values-threshold=n was added Interprocedural and Link-time optimization improvements A new built-in, __builtin_assume_aligned, has been added A new warning option -Wunused-local-typedefs was added A new experimental command-line option -ftrack-macro-expansion was added Support for atomic operations specifying the C++11/C11 memory model has been added There is support for some more features from the C11 revision of the ISO C standard Improved experimental support for the new ISO C++ standard, C++11 Updates for ARM, x86, MIPS, PPC/PPC64, SH, SPARC, TILE* A new option (-grecord-gcc-switches) was added highlights from: http://gcc.gnu.org/gcc-4.8/changes.html GCC now uses C++ as its implementation language. This means that to build GCC from sources, you will need a C++ compiler that understands C++ 2003 DWARF4 is now the default when generating DWARF debug information A new general optimization level, -Og, has been introduced A new option -ftree-partial-pre was added The option -fconserve-space has been removed The command-line options -fipa-struct-reorg and -fipa-matrix-reorg have been removed Interprocedural and Link-time optimization improvements AddressSanitizer, a fast memory error detector, has been added [*2] A new -Wsizeof-pointer-memaccess warning has been added G++ now supports a -std=c++1y option for experimentation with features proposed for the next revision of the standard, expected around 2014 Improved experimental support for the new ISO C++ standard, C++11 A new port has been added to support AArch64 Updates for ARM, x86, MIPS, PPC/PPC64, SH, SPARC, TILE* [*1] we should support this too! [*2] we should look into this. https://code.google.com/p/address-sanitizer/ @ text @d2 2 a3 1 API Evolution and Deprecation History

API Evolution and Deprecation History

d8 1 a8 1

3.0

d17 1 a17 1

3.1

d29 1 a29 1

3.2

d33 2 a34 5 free. For the 3.2 and 3.3 release series the same functionality was spelled _GLIBCXX_FORCE_NEW. From GCC 3.4 onwards the functionality is enabled by setting GLIBCXX_FORCE_NEW in the environment, see the mt allocator chapter d36 2 a37 2

Error handling in iostreams cleaned up, made consistent.

3.3

3.4

d78 1 a78 1

Table B.6. Extension Allocators

Allocator (3.4)Header (3.4)Allocator (3.[0-3])Header (3.[0-3])
__gnu_cxx::new_allocator<T>ext/new_allocator.hstd::__new_allocmemory
__gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory
__gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory
__gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__default_alloc_template<bool,int>memory
__gnu_cxx::__mt_alloc<T>ext/mt_allocator.h
__gnu_cxx::bitmap_allocator<T>ext/bitmap_allocator.h

Releases after gcc-3.4 have continued to add to the collection d82 1 a82 1

Table B.7. Extension Allocators Continued

AllocatorIncludeVersion
__gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
__gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

d92 1 a92 1

4.0

d101 1 a101 1

4.1

d108 1 a108 1

4.2

d123 1 a123 1

4.3

d129 1 a129 1

  • Removed

    d137 1 a137 1

  • Added in C++11

    d141 1 a141 1

    • algorithm no longer includes climits, cstring, or iosfwd

    • bitset no longer includes istream or ostream, adds iosfwd

    • functional no longer includes cstddef

    • iomanip no longer includes istream, istream, or functional, adds ioswd

    • numeric no longer includes iterator

    • string no longer includes algorithm or memory

    • valarray no longer includes numeric or cstdlib

    • tr1/hashtable no longer includes memory or functional

    • tr1/memory no longer includes algorithm

    • tr1/random no longer includes algorithm or fstream

    d146 1 a146 1 functional. d152 1 a152 1 PCH binary files no longer installed. Instead, the source files are installed. d155 1 a155 1

4.4

d158 1 a158 1

  • d210 1 a210 1

4.5

d213 1 a213 1

  • d230 1 a230 1 Support for decimal floating-point arithmetic, including decimal32, decimal64, and decimal128. d240 1 a240 1

@ 1.1.1.3 log @import GCC 5.3.0. see these urls for details which are too large to include here: http://gcc.gnu.org/gcc-4.9/changes.html http://gcc.gnu.org/gcc-5/changes.html (note that GCC 5.x is a release stream like GCC 4.9.x, 4.8.x, etc.) the main issues we will have are: The default mode for C is now -std=gnu11 instead of -std=gnu89. ARM: The deprecated option -mwords-little-endian has been removed. The options -mapcs, -mapcs-frame, -mtpcs-frame and -mtpcs-leaf-frame which are only applicable to the old ABI have been deprecated. MIPS: The o32 ABI has been modified and extended. The o32 64-bit floating-point register support is now obsolete and has been removed. It has been replaced by three ABI extensions FPXX, FP64A, and FP64. The meaning of the -mfp64 command-line option has changed. It is now used to enable the FP64A and FP64 ABI extensions. @ text @d80 1 a80 1

Table B.6. Extension Allocators

Allocator (3.4)Header (3.4)Allocator (3.[0-3])Header (3.[0-3])
__gnu_cxx::new_allocator<T>ext/new_allocator.hstd::__new_allocmemory
__gnu_cxx::malloc_allocator<T>ext/malloc_allocator.hstd::__malloc_alloc_template<int>memory
__gnu_cxx::debug_allocator<T>ext/debug_allocator.hstd::debug_alloc<T>memory
__gnu_cxx::__pool_alloc<T>ext/pool_allocator.hstd::__default_alloc_template<bool,int>memory
__gnu_cxx::__mt_alloc<T>ext/mt_allocator.h
__gnu_cxx::bitmap_allocator<T>ext/bitmap_allocator.h

Releases after gcc-3.4 have continued to add to the collection d84 1 a84 1

Table B.7. Extension Allocators Continued

AllocatorIncludeVersion
__gnu_cxx::array_allocator<T>ext/array_allocator.h4.0.0
__gnu_cxx::throw_allocator<T>ext/throw_allocator.h4.2.0

d236 1 a236 1 Audit for application of function attributes nothrow, const, pure, and noreturn. a241 51

4.6

Use constexpr and nullptr where appropriate throughout the library.

The library was updated to avoid including stddef.h in order to reduce namespace pollution.

Reference-count annotations to assist data race detectors.

Added make_exception_ptr as an alias of copy_exception.

4.7

Use of noexcept throughout library.

Partial support for C++11 allocators first appears.

monotonic_clock renamed to steady_clock as required by the final C++11 standard.

A new clocale model for newlib is available.

The library was updated to avoid including unistd.h in order to reduce namespace pollution.

Debug Mode was improved for unordered containers.

4.8

New random number engines and distributions. Optimisations for random.

New --enable-libstdcxx-verbose configure option

The --enable-libstdcxx-time configure option becomes unnecessary given a sufficiently recent glibc.

4.9

Implementation of regex completed.

C++14 library and TS implementations are added.

copy_exception deprecated.

__gnu_cxx::array_allocator deprecated.

5

ABI transition adds new implementations of several components, using the abi_tag attribute and the __cxx11 inline namespace to distinguish the new entities from the old ones.

  • Use of the new or old ABI can be selected per-translation unit with the _GLIBCXX_USE_CXX11_ABI macro.

  • New non-reference-counted string implementation.

  • New list implementation containing a new data member in order to provide O(1) size().

C++11 support completed (movable iostreams, new I/O manipulators, Unicode conversion utilities, atomic operations for shared_ptr, functions for notifying condition variables and making futures ready at thread exit).

Changed formatting of floating point types when ios_base::fixed|ios_base::scientific is set in a stream's format flags.

Improved C++14 support and TS implementations.

New random number engines and distributions.

GDB Xmethods for containers and unique_ptr added.

has_trivial_default_constructor, has_trivial_copy_constructor and has_trivial_copy_assign deprecated. @ 1.1.1.3.16.1 log @Sync with HEAD @ text @d2 1 a2 1 API Evolution and Deprecation History