501
I Use This!
Activity Not Available

News

Analyzed 4 months ago. based on code collected 5 months ago.
Posted about 7 years ago
New Libraries Process: Process library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to: create child processes ... [More] setup streams for child processes communicate with child processes through streams (synchronously or asynchronously) wait for processes to exit (synchronously or asynchronously) terminate processes Broken feature: GitHub #67: "group.wait() does not return". Updated Libraries Any: Suppressed false warnings about returning reference to temporary boost::addressof is now used instead of directly taking the address #12615 Headers are not included using double quotes any more #12053 CI tests now run with address, leak, and undefined sanitizers Added more test Atomic: Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers. Config: Added BOOST_NO_CXX11_SFINAE_EXPR defect detection. Container: Fixed bugs: Trac #12749: "container::pmr::polymorphic_allocator compilation error". Trac #11333: "boost::basic_string_ref should interop with boost::container::basic_string". GitHub #45: "emplace_back must return reference to back(), not to *end()". Context: new API: call/cc deprecated API:execution-context stack manipulation on MIPS fixed #12719 segmentation fault when built with mingw-w64 #12948 Unexpected snprintf result is on Android ARM #38: context_entry() crashes on macOS #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android #41: std::bind() fails with invoke() #46: "rename of continuation member functions" missed a spot #50: bad assembly for fcontext on ppc64/sysv/elf Conversion: Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port) Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix) CI tests now run with address, leak, and undefined sanitizers Core: Implemented constexpr addressof on compilers that support C++11 constexpr and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF macro indicates when constexpr addressof is not available. In lightweight_test.hpp, added new macros BOOST_TEST_ALL_EQ and BOOST_TEST_ALL_WITH for testing container contents (Bjorn Reese). Coroutine2: #4: coroutine2<> does not accept std::bind DLL: Fixed WinCE compilation Added boost:dll::symbol_location_ptr function for getting location of a symbol by pointer that could not be dereferenced (void pointer for example) Fixed UB in detail::aggressive_ptr_cast for member pointers Fixed leaks in experimental smart imports Fixed warnings CI tests now run with address and leak sanitizers Fiber: (un)bounded_channel<> removed #100: ASIO: unbuffered_channel / scheduler notify issue #105: skynet variants crash on windows #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile #110: Compile error on ARMv6 #111: endless-loop in buffered_channel::try_value_pop() #114: buffered_channel::try_push does not wake fibers in pop` Geometry: Improvements: matrix transformation is now based on Boost.QVM instead of Boost.Ublas Breaking changes: ublas_transformer is renamed to matrix_transformer explicit modifier is added to constructors of rtree index::dynamic_* parameters strategy::area::huiller replaced by strategy::area::spherical Solved issues: 363 Missing includes in geometry/index/parameters.hpp 364 within(Linear, Areal) compilation error when arguments use different point types 370 Buffer Seg Faults with Ring as Input Solved tickets: 11899 boost::geometry::equals doesn't handle open polygons 11930 Inaccuracy of area::huiller strategy 11931 Wrong spherical area with pole encircling polygons 12410 Lack of support of geographic coordinate system in correct() 12566 Ambiguous template instantiation in equal_to<> when pair value contains raw pointer 12861 Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree 12885 Use BOOST_THROW_EXCEPTION instead of throw Bugfixes: Fix distance_measure in get_turn_info Hash: Stop using std::unary_function and std::binary_function when they're not available. Interprocess: Fixed bugs: Trac #12617 ("clock_gettime not available on OS X 10.11"). Trac #12744 ("winapi::set_timer_resolution inadvertently changes timer resolution (Windows)"). GitHub Pull #32 ("Conform to std::pointer_traits requirements"). GitHub Pull #33 ("explicit cast to derived class" and "64/32 bit processes sharing"). GitHub Pull #34 ("Update example to use multi_index::member instead of BOOST_MULTI_INDEX_MEMBER"). GitHub Pull #35 ("Fixed options for cross-compilation"). New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED from Windows systems. This option derives the unique bootstamp used to name the folder where shared memory is placed from registry values associated with the session manager. This option only works on Vista and later systems and might be more stable than the default version. Intrusive: Fixed bugs: Boost Trac #12745: key_nodeptr_comp broken if the key type is void* Boost Trac #12761: intrusive::set::swap doesn't swap the comparison function* LexicalCast: Fixed multiple warnings #11842 CI tests now run with address, leak, and undefined sanitizers Math: Big push to ensure all functions in also in C99 are compatible with Annex F. Improved accuracy of the Bessel functions I0, I1, K0 and K1, see 12066. Multi-index Containers: Fixed a bug related to ambiguous references in the presence of more than one ranked index (ticket #12955). Maintenance fixes. Multiprecision: In cpp_bin_float prevent double rounding when converting to a denormalized float. See #12527. Fix bug in integer sqrt for very small integers. See #12559. Fix conversion to signed-zero in cpp_bin_float. Change cpp_bin_float rounding code to round at arbitrary location so we can use it for conversions, see #12527. Improve performance of 128-bit bit-scan operations. Fix subtraction of very small quantities in cpp_bin_float. See: #12580. Bring error handling into line with C99 Annex F. See #12581. Fix bitwise export of trivial cpp_int's, see #12627. Fix ilogb (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see #12625. Allow conversion from __float128 to cpp_bin_float. Fix bug in left shift of cpp_int which would result in bit-loss, see #12790. Fixed bugs in bounded but variable precision cpp_int's caused by over-aggressive constexpr optimization, see #12798. Predef: Fix Intel C/C++ compiler version specification. Add BOOST_VERSION_NUMBER_MAJOR, BOOST_VERSION_NUMBER_MINOR, BOOST_VERSION_NUMBER_PATCH macros to extract components from valid version numbers. Change VS version numbering. Versions after VS2015 will use the compiler version instead of the varied product versions. Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Regex: Compiling with Oracle C++ toolset is no longer restricted to static linking. Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: #12818. Smart Pointers: Rewrite of allocate_shared and make_shared for arrays for a more optimal and more maintainable implementation (Glen Fernandes) Pointer cast functions with move semantics (Chris Glover) Test: Boost.test v3.5 see the Change log section for more details. New feature: Now Boost.Test provides customization points for logging user defined types JUnit output format can now have a log-level JUnit output format has not better performances when the test modules have a lot of checks Bug fixes Trac tickets #11756, #12540, #12712, #12748, #12778 Pull request PR107, PR108 TypeIndex: Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST, which implements the functionality for runtime_cast but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS macro (thanks to Chris Glover for imlpementing it) Fixed undefined macro warning in stl_type_index.hpp #12739 CI tests now run with address, leak, and undefined sanitizers TypeTraits: Added new traits make_void and void_t. Unordered: Initial support for new C++17 member functions: insert_or_assign and try_emplace in unordered_map, merge and extract in all containers. Variant: Fixed construction of variant from recursive_variant_ (thanks to Mikhail Maksimov for the fix) #12508, #12645 Do not enable variadic templates for MSVC2015Update1 as it still has issues #12236 Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) #12680, #7120 Made boost::polymorphic_*get to work as boost::*get in undocumented border cases and fixed tests #11950 CI tests now run with address, leak, and undefined sanitizers Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1 Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1 Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1, 4.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang, C++98: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted about 7 years ago
New Libraries Process: Process library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to: create child processes ... [More] setup streams for child processes communicate with child processes through streams (synchronously or asynchronously) wait for processes to exit (synchronously or asynchronously) terminate processes Broken feature: GitHub #67: "group.wait() does not return". Updated Libraries Any: Suppressed false warnings about returning reference to temporary boost::addressof is now used instead of directly taking the address #12615 Headers are not included using double quotes any more #12053 CI tests now run with address, leak, and undefined sanitizers Added more test Atomic: Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers. Config: Added BOOST_NO_CXX11_SFINAE_EXPR defect detection. Container: Fixed bugs: Trac #12749: "container::pmr::polymorphic_allocator compilation error". Trac #11333: "boost::basic_string_ref should interop with boost::container::basic_string". GitHub #45: "emplace_back must return reference to back(), not to *end()". Context: new API: call/cc deprecated API:execution-context stack manipulation on MIPS fixed #12719 segmentation fault when built with mingw-w64 #12948 Unexpected snprintf result is on Android ARM #38: context_entry() crashes on macOS #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android #41: std::bind() fails with invoke() #46: "rename of continuation member functions" missed a spot #50: bad assembly for fcontext on ppc64/sysv/elf Conversion: Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port) Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix) CI tests now run with address, leak, and undefined sanitizers Core: Implemented constexpr addressof on compilers that support C++11 constexpr and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF macro indicates when constexpr addressof is not available. In lightweight_test.hpp, added new macros BOOST_TEST_ALL_EQ and BOOST_TEST_ALL_WITH for testing container contents (Bjorn Reese). Coroutine2: #4: coroutine2<> does not accept std::bind DLL: Fixed WinCE compilation Added boost:dll::symbol_location_ptr function for getting location of a symbol by pointer that could not be dereferenced (void pointer for example) Fixed UB in detail::aggressive_ptr_cast for member pointers Fixed leaks in experimental smart imports Fixed warnings CI tests now run with address and leak sanitizers Fiber: (un)bounded_channel<> removed #100: ASIO: unbuffered_channel / scheduler notify issue #105: skynet variants crash on windows #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile #110: Compile error on ARMv6 #111: endless-loop in buffered_channel::try_value_pop() #114: buffered_channel::try_push does not wake fibers in pop` Geometry: Improvements: matrix transformation is now based on Boost.QVM instead of Boost.Ublas Breaking changes: ublas_transformer is renamed to matrix_transformer explicit modifier is added to constructors of rtree index::dynamic_* parameters strategy::area::huiller replaced by strategy::area::spherical Solved issues: 363 Missing includes in geometry/index/parameters.hpp 364 within(Linear, Areal) compilation error when arguments use different point types 370 Buffer Seg Faults with Ring as Input Solved tickets: 11899 boost::geometry::equals doesn't handle open polygons 11930 Inaccuracy of area::huiller strategy 11931 Wrong spherical area with pole encircling polygons 12410 Lack of support of geographic coordinate system in correct() 12566 Ambiguous template instantiation in equal_to<> when pair value contains raw pointer 12861 Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree 12885 Use BOOST_THROW_EXCEPTION instead of throw Bugfixes: Fix distance_measure in get_turn_info Hash: Stop using std::unary_function and std::binary_function when they're not available. Interprocess: Fixed bugs: Trac #12617 ("clock_gettime not available on OS X 10.11"). Trac #12744 ("winapi::set_timer_resolution inadvertently changes timer resolution (Windows)"). GitHub Pull #32 ("Conform to std::pointer_traits requirements"). GitHub Pull #33 ("explicit cast to derived class" and "64/32 bit processes sharing"). GitHub Pull #34 ("Update example to use multi_index::member instead of BOOST_MULTI_INDEX_MEMBER"). GitHub Pull #35 ("Fixed options for cross-compilation"). New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED from Windows systems. This option derives the unique bootstamp used to name the folder where shared memory is placed from registry values associated with the session manager. This option only works on Vista and later systems and might be more stable than the default version. Intrusive: Fixed bugs: Boost Trac #12745: key_nodeptr_comp broken if the key type is void* Boost Trac #12761: intrusive::set::swap doesn't swap the comparison function* LexicalCast: Fixed multiple warnings #11842 CI tests now run with address, leak, and undefined sanitizers Math: Big push to ensure all functions in also in C99 are compatible with Annex F. Improved accuracy of the Bessel functions I0, I1, K0 and K1, see 12066. Multi-index Containers: Fixed a bug related to ambiguous references in the presence of more than one ranked index (ticket #12955). Maintenance fixes. Multiprecision: In cpp_bin_float prevent double rounding when converting to a denormalized float. See #12527. Fix bug in integer sqrt for very small integers. See #12559. Fix conversion to signed-zero in cpp_bin_float. Change cpp_bin_float rounding code to round at arbitrary location so we can use it for conversions, see #12527. Improve performance of 128-bit bit-scan operations. Fix subtraction of very small quantities in cpp_bin_float. See: #12580. Bring error handling into line with C99 Annex F. See #12581. Fix bitwise export of trivial cpp_int's, see #12627. Fix ilogb (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see #12625. Allow conversion from __float128 to cpp_bin_float. Fix bug in left shift of cpp_int which would result in bit-loss, see #12790. Fixed bugs in bounded but variable precision cpp_int's caused by over-aggressive constexpr optimization, see #12798. Predef: Fix Intel C/C++ compiler version specification. Add BOOST_VERSION_NUMBER_MAJOR, BOOST_VERSION_NUMBER_MINOR, BOOST_VERSION_NUMBER_PATCH macros to extract components from valid version numbers. Change VS version numbering. Versions after VS2015 will use the compiler version instead of the varied product versions. Regex: Compiling with Oracle C++ toolset is no longer restricted to static linking. Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: #12818. Smart Pointers: Rewrite of allocate_shared and make_shared for arrays for a more optimal and more maintainable implementation (Glen Fernandes) Pointer cast functions with move semantics (Chris Glover) Test: Boost.test v3.5 see the Change log section for more details. New feature: Now Boost.Test provides customization points for logging user defined types JUnit output format can now have a log-level JUnit output format has not better performances when the test modules have a lot of checks Bug fixes Trac tickets #11756, #12540, #12712, #12748, #12778 Pull request PR107, PR108 TypeIndex: Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST, which implements the functionality for runtime_cast but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS macro (thanks to Chris Glover for imlpementing it) Fixed undefined macro warning in stl_type_index.hpp #12739 CI tests now run with address, leak, and undefined sanitizers TypeTraits: Added new traits make_void and void_t. Unordered: Initial support for new C++17 member functions: insert_or_assign and try_emplace in unordered_map, merge and extract in all containers. Variant: Fixed construction of variant from recursive_variant_ (thanks to Mikhail Maksimov for the fix) #12508, #12645 Do not enable variadic templates for MSVC2015Update1 as it still has issues #12236 Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) #12680, #7120 Made boost::polymorphic_*get to work as boost::*get in undocumented border cases and fixed tests #11950 CI tests now run with address, leak, and undefined sanitizers Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1 Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1 Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1, 4.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang, C++98: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted about 7 years ago
New Libraries Process: Process library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to: create child processes ... [More] setup streams for child processes communicate with child processes through streams (synchronously or asynchronously) wait for processes to exit (synchronously or asynchronously) terminate processes Broken feature: GitHub #67: "group.wait() does not return". Updated Libraries Any: Suppressed false warnings about returning reference to temporary boost::addressof is now used instead of directly taking the address #12615 Headers are not included using double quotes any more #12053 CI tests now run with address, leak, and undefined sanitizers Added more test Atomic: Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers. Config: Added BOOST_NO_CXX11_SFINAE_EXPR defect detection. Container: Fixed bugs: Trac #12749: "container::pmr::polymorphic_allocator compilation error". Trac #11333: "boost::basic_string_ref should interop with boost::container::basic_string". GitHub #45: "emplace_back must return reference to back(), not to *end()". Context: new API: call/cc deprecated API:execution-context stack manipulation on MIPS fixed #12719 segmentation fault when built with mingw-w64 #12948 Unexpected snprintf result is on Android ARM #38: context_entry() crashes on macOS #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android #41: std::bind() fails with invoke() #46: "rename of continuation member functions" missed a spot #50: bad assembly for fcontext on ppc64/sysv/elf Conversion: Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port) Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix) CI tests now run with address, leak, and undefined sanitizers Core: Implemented constexpr addressof on compilers that support C++11 constexpr and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF macro indicates when constexpr addressof is not available. In lightweight_test.hpp, added new macros BOOST_TEST_ALL_EQ and BOOST_TEST_ALL_WITH for testing container contents (Bjorn Reese). Coroutine2: #4: coroutine2<> does not accept std::bind DLL: Fixed WinCE compilation Added boost:dll::symbol_location_ptr function for getting location of a symbol by pointer that could not be dereferenced (void pointer for example) Fixed UB in detail::aggressive_ptr_cast for member pointers Fixed leaks in experimental smart imports Fixed warnings CI tests now run with address and leak sanitizers Fiber: (un)bounded_channel<> removed #100: ASIO: unbuffered_channel / scheduler notify issue #105: skynet variants crash on windows #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile #110: Compile error on ARMv6 #111: endless-loop in buffered_channel::try_value_pop() #114: buffered_channel::try_push does not wake fibers in pop` Geometry: Improvements: matrix transformation is now based on Boost.QVM instead of Boost.Ublas Breaking changes: ublas_transformer is renamed to matrix_transformer explicit modifier is added to constructors of rtree index::dynamic_* parameters strategy::area::huiller replaced by strategy::area::spherical Solved issues: 363 Missing includes in geometry/index/parameters.hpp 364 within(Linear, Areal) compilation error when arguments use different point types 370 Buffer Seg Faults with Ring as Input Solved tickets: 11899 boost::geometry::equals doesn't handle open polygons 11930 Inaccuracy of area::huiller strategy 11931 Wrong spherical area with pole encircling polygons 12410 Lack of support of geographic coordinate system in correct() 12566 Ambiguous template instantiation in equal_to<> when pair value contains raw pointer 12861 Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree 12885 Use BOOST_THROW_EXCEPTION instead of throw Bugfixes: Fix distance_measure in get_turn_info Hash: Stop using std::unary_function and std::binary_function when they're not available. Interprocess: Fixed bugs: Trac #12617 ("clock_gettime not available on OS X 10.11"). Trac #12744 ("winapi::set_timer_resolution inadvertently changes timer resolution (Windows)"). GitHub Pull #32 ("Conform to std::pointer_traits requirements"). GitHub Pull #33 ("explicit cast to derived class" and "64/32 bit processes sharing"). GitHub Pull #34 ("Update example to use multi_index::member instead of BOOST_MULTI_INDEX_MEMBER"). GitHub Pull #35 ("Fixed options for cross-compilation"). New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED from Windows systems. This option derives the unique bootstamp used to name the folder where shared memory is placed from registry values associated with the session manager. This option only works on Vista and later systems and might be more stable than the default version. Intrusive: Fixed bugs: Boost Trac #12745: key_nodeptr_comp broken if the key type is void* Boost Trac #12761: intrusive::set::swap doesn't swap the comparison function* LexicalCast: Fixed multiple warnings #11842 CI tests now run with address, leak, and undefined sanitizers Math: Big push to ensure all functions in also in C99 are compatible with Annex F. Improved accuracy of the Bessel functions I0, I1, K0 and K1, see 12066. Multi-index Containers: Fixed a bug related to ambiguous references in the presence of more than one ranked index (ticket #12955). Maintenance fixes. Multiprecision: In cpp_bin_float prevent double rounding when converting to a denormalized float. See #12527. Fix bug in integer sqrt for very small integers. See #12559. Fix conversion to signed-zero in cpp_bin_float. Change cpp_bin_float rounding code to round at arbitrary location so we can use it for conversions, see #12527. Improve performance of 128-bit bit-scan operations. Fix subtraction of very small quantities in cpp_bin_float. See: #12580. Bring error handling into line with C99 Annex F. See #12581. Fix bitwise export of trivial cpp_int's, see #12627. Fix ilogb (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see #12625. Allow conversion from __float128 to cpp_bin_float. Fix bug in left shift of cpp_int which would result in bit-loss, see #12790. Fixed bugs in bounded but variable precision cpp_int's caused by over-aggressive constexpr optimization, see #12798. Predef: Fix Intel C/C++ compiler version specification. Add BOOST_VERSION_NUMBER_MAJOR, BOOST_VERSION_NUMBER_MINOR, BOOST_VERSION_NUMBER_PATCH macros to extract components from valid version numbers. Change VS version numbering. Versions after VS2015 will use the compiler version instead of the varied product versions. Regex: Compiling with Oracle C++ toolset is no longer restricted to static linking. Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: #12818. Smart Pointers: Rewrite of allocate_shared and make_shared for arrays for a more optimal and more maintainable implementation (Glen Fernandes) Pointer cast functions with move semantics (Chris Glover) Test: Boost.test v3.5 see the Change log section for more details. New feature: Now Boost.Test provides customization points for logging user defined types JUnit output format can now have a log-level JUnit output format has not better performances when the test modules have a lot of checks Bug fixes Trac tickets #11756, #12540, #12712, #12748, #12778 Pull request PR107, PR108 TypeIndex: Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST, which implements the functionality for runtime_cast but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS macro (thanks to Chris Glover for imlpementing it) Fixed undefined macro warning in stl_type_index.hpp #12739 CI tests now run with address, leak, and undefined sanitizers TypeTraits: Added new traits make_void and void_t. Unordered: Initial support for new C++17 member functions: insert_or_assign and try_emplace in unordered_map, merge and extract in all containers. Variant: Fixed construction of variant from recursive_variant_ (thanks to Mikhail Maksimov for the fix) #12508, #12645 Do not enable variadic templates for MSVC2015Update1 as it still has issues #12236 Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) #12680, #7120 Made boost::polymorphic_*get to work as boost::*get in undocumented border cases and fixed tests #11950 CI tests now run with address, leak, and undefined sanitizers Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1 Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1 Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1, 4.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang, C++98: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted about 7 years ago
New Libraries Process: Process library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to: create child processes ... [More] setup streams for child processes communicate with child processes through streams (synchronously or asynchronously) wait for processes to exit (synchronously or asynchronously) terminate processes Broken feature: GitHub #67: "group.wait() does not return". Updated Libraries Any: Suppressed false warnings about returning reference to temporary boost::addressof is now used instead of directly taking the address #12615 Headers are not included using double quotes any more #12053 CI tests now run with address, leak, and undefined sanitizers Added more test Atomic: Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers. Config: Added BOOST_NO_CXX11_SFINAE_EXPR defect detection. Container: Fixed bugs: Trac #12749: "container::pmr::polymorphic_allocator compilation error". Trac #11333: "boost::basic_string_ref should interop with boost::container::basic_string". GitHub #45: "emplace_back must return reference to back(), not to *end()". Context: new API: call/cc deprecated API:execution-context stack manipulation on MIPS fixed #12719 segmentation fault when built with mingw-w64 #12948 Unexpected snprintf result is on Android ARM #38: context_entry() crashes on macOS #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android #41: std::bind() fails with invoke() #46: "rename of continuation member functions" missed a spot #50: bad assembly for fcontext on ppc64/sysv/elf Conversion: Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port) Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix) CI tests now run with address, leak, and undefined sanitizers Core: Implemented constexpr addressof on compilers that support C++11 constexpr and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF macro indicates when constexpr addressof is not available. In lightweight_test.hpp, added new macros BOOST_TEST_ALL_EQ and BOOST_TEST_ALL_WITH for testing container contents (Bjorn Reese). Coroutine2: #4: coroutine2<> does not accept std::bind DLL: Fixed WinCE compilation Added boost:dll::symbol_location_ptr function for getting location of a symbol by pointer that could not be dereferenced (void pointer for example) Fixed UB in detail::aggressive_ptr_cast for member pointers Fixed leaks in experimental smart imports Fixed warnings CI tests now run with address and leak sanitizers Fiber: (un)bounded_channel<> removed #100: ASIO: unbuffered_channel / scheduler notify issue #105: skynet variants crash on windows #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile #110: Compile error on ARMv6 #111: endless-loop in buffered_channel::try_value_pop() #114: buffered_channel::try_push does not wake fibers in pop` Geometry: Improvements: matrix transformation is now based on Boost.QVM instead of Boost.Ublas Breaking changes: ublas_transformer is renamed to matrix_transformer explicit modifier is added to constructors of rtree index::dynamic_* parameters strategy::area::huiller replaced by strategy::area::spherical Solved issues: 363 Missing includes in geometry/index/parameters.hpp 364 within(Linear, Areal) compilation error when arguments use different point types 370 Buffer Seg Faults with Ring as Input Solved tickets: 11930 Inaccuracy of area::huiller strategy 11931 Wrong spherical area with pole encircling polygons 12566 Ambiguous template instantiation in equal_to<> when pair value contains raw pointer 12861 Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree 12885 Use BOOST_THROW_EXCEPTION instead of throw Bugfixes: Fix distance_measure in get_turn_info Hash: Stop using std::unary_function and std::binary_function when they're not available. Interprocess: Fixed bugs: Trac #12617 ("clock_gettime not available on OS X 10.11"). Trac #12744 ("winapi::set_timer_resolution inadvertently changes timer resolution (Windows)"). GitHub Pull #32 ("Conform to std::pointer_traits requirements"). GitHub Pull #33 ("explicit cast to derived class" and "64/32 bit processes sharing"). GitHub Pull #34 ("Update example to use multi_index::member instead of BOOST_MULTI_INDEX_MEMBER"). GitHub Pull #35 ("Fixed options for cross-compilation"). New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED from Windows systems. This option derives the unique bootstamp used to name the folder where shared memory is placed from registry values associated with the session manager. This option only works on Vista and later systems and might be more stable than the default version. Intrusive: Fixed bugs: Boost Trac #12745: key_nodeptr_comp broken if the key type is void* Boost Trac #12761: intrusive::set::swap doesn't swap the comparison function* LexicalCast: Fixed multiple warnings #11842 CI tests now run with address, leak, and undefined sanitizers Math: Big push to ensure all functions in also in C99 are compatible with Annex F. Improved accuracy of the Bessel functions I0, I1, K0 and K1, see 12066. Multi-index Containers: Fixed a bug related to ambiguous references in the presence of more than one ranked index (ticket #12955). Maintenance fixes. Multiprecision: In cpp_bin_float prevent double rounding when converting to a denormalized float. See #12527. Fix bug in integer sqrt for very small integers. See #12559. Fix conversion to signed-zero in cpp_bin_float. Change cpp_bin_float rounding code to round at arbitrary location so we can use it for conversions, see #12527. Improve performance of 128-bit bit-scan operations. Fix subtraction of very small quantities in cpp_bin_float. See: #12580. Bring error handling into line with C99 Annex F. See #12581. Fix bitwise export of trivial cpp_int's, see #12627. Fix ilogb (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see #12625. Allow conversion from __float128 to cpp_bin_float. Fix bug in left shift of cpp_int which would result in bit-loss, see #12790. Fixed bugs in bounded but variable precision cpp_int's caused by over-aggressive constexpr optimization, see #12798. Predef: Fix Intel C/C++ compiler version specification. Add BOOST_VERSION_NUMBER_MAJOR, BOOST_VERSION_NUMBER_MINOR, BOOST_VERSION_NUMBER_PATCH macros to extract components from valid version numbers. Change VS version numbering. Versions after VS2015 will use the compiler version instead of the varied product versions. Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Regex: Compiling with Oracle C++ toolset is no longer restricted to static linking. Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: #12818. Smart Pointers: Rewrite of allocate_shared and make_shared for arrays for a more optimal and more maintainable implementation (Glen Fernandes) Pointer cast functions with move semantics (Chris Glover) Test: Boost.test v3.5 see the Change log section for more details. New feature: Now Boost.Test provides customization points for logging user defined types JUnit output format can now have a log-level JUnit output format has not better performances when the test modules have a lot of checks Bug fixes Trac tickets #11756, #12540, #12712, #12748, #12778 Pull request PR107, PR108 TypeIndex: Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST, which implements the functionality for runtime_cast but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS macro (thanks to Chris Glover for imlpementing it) Fixed undefined macro warning in stl_type_index.hpp #12739 CI tests now run with address, leak, and undefined sanitizers TypeTraits: Added new traits make_void and void_t. Unordered: Initial support for new C++17 member functions: insert_or_assign and try_emplace in unordered_map, merge and extract in all containers. Variant: Fixed construction of variant from recursive_variant_ (thanks to Mikhail Maksimov for the fix) #12508, #12645 Do not enable variadic templates for MSVC2015Update1 as it still has issues #12236 Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) #12680, #7120 Made boost::polymorphic_*get to work as boost::*get in undocumented border cases and fixed tests #11950 CI tests now run with address, leak, and undefined sanitizers Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1 Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1 Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1, 4.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang, C++98: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted about 7 years ago
New Libraries Process: Process library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to: create child processes ... [More] setup streams for child processes communicate with child processes through streams (synchronously or asynchronously) wait for processes to exit (synchronously or asynchronously) terminate processes Broken feature: GitHub #67: "group.wait() does not return". Updated Libraries Any: Suppressed false warnings about returning reference to temporary boost::addressof is now used instead of directly taking the address #12615 Headers are not included using double quotes any more #12053 CI tests now run with address, leak, and undefined sanitizers Added more test Atomic: Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers. Config: Added BOOST_NO_CXX11_SFINAE_EXPR defect detection. Container: Fixed bugs: Trac #12749: "container::pmr::polymorphic_allocator compilation error". Trac #11333: "boost::basic_string_ref should interop with boost::container::basic_string". GitHub #45: "emplace_back must return reference to back(), not to *end()". Context: new API: call/cc deprecated API:execution-context stack manipulation on MIPS fixed #12719 segmentation fault when built with mingw-w64 #12948 Unexpected snprintf result is on Android ARM #38: context_entry() crashes on macOS #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android #41: std::bind() fails with invoke() #46: "rename of continuation member functions" missed a spot #50: bad assembly for fcontext on ppc64/sysv/elf Conversion: Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port) Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix) CI tests now run with address, leak, and undefined sanitizers Core: Implemented constexpr addressof on compilers that support C++11 constexpr and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF macro indicates when constexpr addressof is not available. In lightweight_test.hpp, added new macros BOOST_TEST_ALL_EQ and BOOST_TEST_ALL_WITH for testing container contents (Bjorn Reese). Coroutine2: #4: coroutine2<> does not accept std::bind DLL: Fixed WinCE compilation Added boost:dll::symbol_location_ptr function for getting location of a symbol by pointer that could not be dereferenced (void pointer for example) Fixed UB in detail::aggressive_ptr_cast for member pointers Fixed leaks in experimental smart imports Fixed warnings CI tests now run with address and leak sanitizers Fiber: (un)bounded_channel<> removed #100: ASIO: unbuffered_channel / scheduler notify issue #105: skynet variants crash on windows #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile #110: Compile error on ARMv6 #111: endless-loop in buffered_channel::try_value_pop() #114: buffered_channel::try_push does not wake fibers in pop` Geometry: Improvements: matrix transformation is now based on Boost.QVM instead of Boost.Ublas Breaking changes: ublas_transformer is renamed to matrix_transformer explicit modifier is added to constructors of rtree index::dynamic_* parameters strategy::area::huiller replaced by strategy::area::spherical Solved issues: 363 Missing includes in geometry/index/parameters.hpp 364 within(Linear, Areal) compilation error when arguments use different point types 370 Buffer Seg Faults with Ring as Input Solved tickets: 11899 boost::geometry::equals doesn't handle open polygons 11930 Inaccuracy of area::huiller strategy 11931 Wrong spherical area with pole encircling polygons 12410 Lack of support of geographic coordinate system in correct() 12566 Ambiguous template instantiation in equal_to<> when pair value contains raw pointer 12861 Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree 12885 Use BOOST_THROW_EXCEPTION instead of throw Bugfixes: Fix distance_measure in get_turn_info Hash: Stop using std::unary_function and std::binary_function when they're not available. Interprocess: Fixed bugs: Trac #12617 ("clock_gettime not available on OS X 10.11"). Trac #12744 ("winapi::set_timer_resolution inadvertently changes timer resolution (Windows)"). GitHub Pull #32 ("Conform to std::pointer_traits requirements"). GitHub Pull #33 ("explicit cast to derived class" and "64/32 bit processes sharing"). GitHub Pull #34 ("Update example to use multi_index::member instead of BOOST_MULTI_INDEX_MEMBER"). GitHub Pull #35 ("Fixed options for cross-compilation"). New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED from Windows systems. This option derives the unique bootstamp used to name the folder where shared memory is placed from registry values associated with the session manager. This option only works on Vista and later systems and might be more stable than the default version. Intrusive: Fixed bugs: Boost Trac #12745: key_nodeptr_comp broken if the key type is void* Boost Trac #12761: intrusive::set::swap doesn't swap the comparison function* LexicalCast: Fixed multiple warnings #11842 CI tests now run with address, leak, and undefined sanitizers Math: Big push to ensure all functions in also in C99 are compatible with Annex F. Improved accuracy of the Bessel functions I0, I1, K0 and K1, see 12066. Multi-index Containers: Fixed a bug related to ambiguous references in the presence of more than one ranked index (ticket #12955). Maintenance fixes. Multiprecision: In cpp_bin_float prevent double rounding when converting to a denormalized float. See #12527. Fix bug in integer sqrt for very small integers. See #12559. Fix conversion to signed-zero in cpp_bin_float. Change cpp_bin_float rounding code to round at arbitrary location so we can use it for conversions, see #12527. Improve performance of 128-bit bit-scan operations. Fix subtraction of very small quantities in cpp_bin_float. See: #12580. Bring error handling into line with C99 Annex F. See #12581. Fix bitwise export of trivial cpp_int's, see #12627. Fix ilogb (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see #12625. Allow conversion from __float128 to cpp_bin_float. Fix bug in left shift of cpp_int which would result in bit-loss, see #12790. Fixed bugs in bounded but variable precision cpp_int's caused by over-aggressive constexpr optimization, see #12798. Predef: Fix Intel C/C++ compiler version specification. Add BOOST_VERSION_NUMBER_MAJOR, BOOST_VERSION_NUMBER_MINOR, BOOST_VERSION_NUMBER_PATCH macros to extract components from valid version numbers. Change VS version numbering. Versions after VS2015 will use the compiler version instead of the varied product versions. Regex: Compiling with Oracle C++ toolset is no longer restricted to static linking. Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: #12818. Smart Pointers: Rewrite of allocate_shared and make_shared for arrays for a more optimal and more maintainable implementation (Glen Fernandes) Pointer cast functions with move semantics (Chris Glover) Test: Boost.test v3.5 see the Change log section for more details. New feature: Now Boost.Test provides customization points for logging user defined types JUnit output format can now have a log-level JUnit output format has not better performances when the test modules have a lot of checks Bug fixes Trac tickets #11756, #12540, #12712, #12748, #12778 Pull request PR107, PR108 TypeIndex: Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST, which implements the functionality for runtime_cast but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS macro (thanks to Chris Glover for imlpementing it) Fixed undefined macro warning in stl_type_index.hpp #12739 CI tests now run with address, leak, and undefined sanitizers TypeTraits: Added new traits make_void and void_t. Unordered: Initial support for new C++17 member functions: insert_or_assign and try_emplace in unordered_map, merge and extract in all containers. Variant: Fixed construction of variant from recursive_variant_ (thanks to Mikhail Maksimov for the fix) #12508, #12645 Do not enable variadic templates for MSVC2015Update1 as it still has issues #12236 Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) #12680, #7120 Made boost::polymorphic_*get to work as boost::*get in undocumented border cases and fixed tests #11950 CI tests now run with address, leak, and undefined sanitizers Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1 Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1 Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1, 4.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang, C++98: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted about 7 years ago
New Libraries Process: Process library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to: create child processes ... [More] setup streams for child processes communicate with child processes through streams (synchronously or asynchronously) wait for processes to exit (synchronously or asynchronously) terminate processes Broken feature: GitHub #67: "group.wait() does not return". Updated Libraries Any: Suppressed false warnings about returning reference to temporary boost::addressof is now used instead of directly taking the address #12615 Headers are not included using double quotes any more #12053 CI tests now run with address, leak, and undefined sanitizers Added more test Atomic: Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers. Config: Added BOOST_NO_CXX11_SFINAE_EXPR defect detection. Container: Fixed bugs: Trac #12749: "container::pmr::polymorphic_allocator compilation error". Trac #11333: "boost::basic_string_ref should interop with boost::container::basic_string". GitHub #45: "emplace_back must return reference to back(), not to *end()". Context: new API: call/cc deprecated API:execution-context stack manipulation on MIPS fixed #12719 segmentation fault when built with mingw-w64 #12948 Unexpected snprintf result is on Android ARM #38: context_entry() crashes on macOS #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android #41: std::bind() fails with invoke() #46: "rename of continuation member functions" missed a spot #50: bad assembly for fcontext on ppc64/sysv/elf Conversion: Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port) Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix) CI tests now run with address, leak, and undefined sanitizers Core: Implemented constexpr addressof on compilers that support C++11 constexpr and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF macro indicates when constexpr addressof is not available. In lightweight_test.hpp, added new macros BOOST_TEST_ALL_EQ and BOOST_TEST_ALL_WITH for testing container contents (Bjorn Reese). Coroutine2: #4: coroutine2<> does not accept std::bind DLL: Fixed WinCE compilation Added boost:dll::symbol_location_ptr function for getting location of a symbol by pointer that could not be dereferenced (void pointer for example) Fixed UB in detail::aggressive_ptr_cast for member pointers Fixed leaks in experimental smart imports Fixed warnings CI tests now run with address and leak sanitizers Fiber: (un)bounded_channel<> removed #100: ASIO: unbuffered_channel / scheduler notify issue #105: skynet variants crash on windows #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile #110: Compile error on ARMv6 #111: endless-loop in buffered_channel::try_value_pop() #114: buffered_channel::try_push does not wake fibers in pop` Geometry: Improvements: matrix transformation is now based on Boost.QVM instead of Boost.Ublas Breaking changes: ublas_transformer is renamed to matrix_transformer explicit modifier is added to constructors of rtree index::dynamic_* parameters strategy::area::huiller replaced by strategy::area::spherical Solved issues: 363 Missing includes in geometry/index/parameters.hpp 364 within(Linear, Areal) compilation error when arguments use different point types 370 Buffer Seg Faults with Ring as Input Solved tickets: 11899 boost::geometry::equals doesn't handle open polygons 11930 Inaccuracy of area::huiller strategy 11931 Wrong spherical area with pole encircling polygons 12410 Lack of support of geographic coordinate system in correct() 12566 Ambiguous template instantiation in equal_to<> when pair value contains raw pointer 12861 Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree 12885 Use BOOST_THROW_EXCEPTION instead of throw Bugfixes: Fix distance_measure in get_turn_info Hash: Stop using std::unary_function and std::binary_function when they're not available. Interprocess: Fixed bugs: Trac #12617 ("clock_gettime not available on OS X 10.11"). Trac #12744 ("winapi::set_timer_resolution inadvertently changes timer resolution (Windows)"). GitHub Pull #32 ("Conform to std::pointer_traits requirements"). GitHub Pull #33 ("explicit cast to derived class" and "64/32 bit processes sharing"). GitHub Pull #34 ("Update example to use multi_index::member instead of BOOST_MULTI_INDEX_MEMBER"). GitHub Pull #35 ("Fixed options for cross-compilation"). New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED from Windows systems. This option derives the unique bootstamp used to name the folder where shared memory is placed from registry values associated with the session manager. This option only works on Vista and later systems and might be more stable than the default version. Intrusive: Fixed bugs: Boost Trac #12745: key_nodeptr_comp broken if the key type is void* Boost Trac #12761: intrusive::set::swap doesn't swap the comparison function* LexicalCast: Fixed multiple warnings #11842 CI tests now run with address, leak, and undefined sanitizers Math: Big push to ensure all functions in also in C99 are compatible with Annex F. Improved accuracy of the Bessel functions I0, I1, K0 and K1, see 12066. Multi-index Containers: Fixed a bug related to ambiguous references in the presence of more than one ranked index (ticket #12955). Maintenance fixes. Multiprecision: In cpp_bin_float prevent double rounding when converting to a denormalized float. See #12527. Fix bug in integer sqrt for very small integers. See #12559. Fix conversion to signed-zero in cpp_bin_float. Change cpp_bin_float rounding code to round at arbitrary location so we can use it for conversions, see #12527. Improve performance of 128-bit bit-scan operations. Fix subtraction of very small quantities in cpp_bin_float. See: #12580. Bring error handling into line with C99 Annex F. See #12581. Fix bitwise export of trivial cpp_int's, see #12627. Fix ilogb (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see #12625. Allow conversion from __float128 to cpp_bin_float. Fix bug in left shift of cpp_int which would result in bit-loss, see #12790. Fixed bugs in bounded but variable precision cpp_int's caused by over-aggressive constexpr optimization, see #12798. Predef: Fix Intel C/C++ compiler version specification. Add BOOST_VERSION_NUMBER_MAJOR, BOOST_VERSION_NUMBER_MINOR, BOOST_VERSION_NUMBER_PATCH macros to extract components from valid version numbers. Change VS version numbering. Versions after VS2015 will use the compiler version instead of the varied product versions. Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Regex: Compiling with Oracle C++ toolset is no longer restricted to static linking. Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: #12818. Smart Pointers: Rewrite of allocate_shared and make_shared for arrays for a more optimal and more maintainable implementation (Glen Fernandes) Pointer cast functions with move semantics (Chris Glover) Test: Boost.test v3.5 see the Change log section for more details. New feature: Now Boost.Test provides customization points for logging user defined types JUnit output format can now have a log-level JUnit output format has not better performances when the test modules have a lot of checks Bug fixes Trac tickets #11756, #12540, #12712, #12748, #12778 Pull request PR107, PR108 TypeIndex: Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST, which implements the functionality for runtime_cast but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS macro (thanks to Chris Glover for imlpementing it) Fixed undefined macro warning in stl_type_index.hpp #12739 CI tests now run with address, leak, and undefined sanitizers TypeTraits: Added new traits make_void and void_t. Unordered: Initial support for new C++17 member functions: insert_or_assign and try_emplace in unordered_map, merge and extract in all containers. Variant: Fixed construction of variant from recursive_variant_ (thanks to Mikhail Maksimov for the fix) #12508, #12645 Do not enable variadic templates for MSVC2015Update1 as it still has issues #12236 Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) #12680, #7120 Made boost::polymorphic_*get to work as boost::*get in undocumented border cases and fixed tests #11950 CI tests now run with address, leak, and undefined sanitizers Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1 Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1 Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1, 4.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang, C++98: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted about 7 years ago
New Libraries Process: Process library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to: create child processes ... [More] setup streams for child processes communicate with child processes through streams (synchronously or asynchronously) wait for processes to exit (synchronously or asynchronously) terminate processes Broken feature: GitHub #67: "group.wait() does not return". Updated Libraries Any: Suppressed false warnings about returning reference to temporary boost::addressof is now used instead of directly taking the address #12615 Headers are not included using double quotes any more #12053 CI tests now run with address, leak, and undefined sanitizers Added more test Atomic: Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers. Config: Added BOOST_NO_CXX11_SFINAE_EXPR defect detection. Container: Fixed bugs: Trac #12749: "container::pmr::polymorphic_allocator compilation error". Trac #11333: "boost::basic_string_ref should interop with boost::container::basic_string". GitHub #45: "emplace_back must return reference to back(), not to *end()". Context: new API: call/cc deprecated API:execution-context stack manipulation on MIPS fixed #12719 segmentation fault when built with mingw-w64 #12948 Unexpected snprintf result is on Android ARM #38: context_entry() crashes on macOS #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android #41: std::bind() fails with invoke() #46: "rename of continuation member functions" missed a spot #50: bad assembly for fcontext on ppc64/sysv/elf Conversion: Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port) Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix) CI tests now run with address, leak, and undefined sanitizers Core: Implemented constexpr addressof on compilers that support C++11 constexpr and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF macro indicates when constexpr addressof is not available. In lightweight_test.hpp, added new macros BOOST_TEST_ALL_EQ and BOOST_TEST_ALL_WITH for testing container contents (Bjorn Reese). Coroutine2: #4: coroutine2<> does not accept std::bind DLL: Fixed WinCE compilation Added boost:dll::symbol_location_ptr function for getting location of a symbol by pointer that could not be dereferenced (void pointer for example) Fixed UB in detail::aggressive_ptr_cast for member pointers Fixed leaks in experimental smart imports Fixed warnings CI tests now run with address and leak sanitizers Fiber: (un)bounded_channel<> removed #100: ASIO: unbuffered_channel / scheduler notify issue #105: skynet variants crash on windows #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile #110: Compile error on ARMv6 #111: endless-loop in buffered_channel::try_value_pop() #114: buffered_channel::try_push does not wake fibers in pop` Geometry: Improvements: matrix transformation is now based on Boost.QVM instead of Boost.Ublas Breaking changes: ublas_transformer is renamed to matrix_transformer explicit modifier is added to constructors of rtree index::dynamic_* parameters strategy::area::huiller replaced by strategy::area::spherical Solved issues: 363 Missing includes in geometry/index/parameters.hpp 364 within(Linear, Areal) compilation error when arguments use different point types 370 Buffer Seg Faults with Ring as Input Solved tickets: 11930 Inaccuracy of area::huiller strategy 11931 Wrong spherical area with pole encircling polygons 12566 Ambiguous template instantiation in equal_to<> when pair value contains raw pointer 12861 Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree 12885 Use BOOST_THROW_EXCEPTION instead of throw Bugfixes: Fix distance_measure in get_turn_info Hash: Stop using std::unary_function and std::binary_function when they're not available. Interprocess: Fixed bugs: Trac #12617 ("clock_gettime not available on OS X 10.11"). Trac #12744 ("winapi::set_timer_resolution inadvertently changes timer resolution (Windows)"). GitHub Pull #32 ("Conform to std::pointer_traits requirements"). GitHub Pull #33 ("explicit cast to derived class" and "64/32 bit processes sharing"). GitHub Pull #34 ("Update example to use multi_index::member instead of BOOST_MULTI_INDEX_MEMBER"). GitHub Pull #35 ("Fixed options for cross-compilation"). New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED from Windows systems. This option derives the unique bootstamp used to name the folder where shared memory is placed from registry values associated with the session manager. This option only works on Vista and later systems and might be more stable than the default version. Intrusive: Fixed bugs: Boost Trac #12745: key_nodeptr_comp broken if the key type is void* Boost Trac #12761: intrusive::set::swap doesn't swap the comparison function* LexicalCast: Fixed multiple warnings #11842 CI tests now run with address, leak, and undefined sanitizers Math: Big push to ensure all functions in also in C99 are compatible with Annex F. Improved accuracy of the Bessel functions I0, I1, K0 and K1, see 12066. Multi-index Containers: Fixed a bug related to ambiguous references in the presence of more than one ranked index (ticket #12955). Maintenance fixes. Multiprecision: In cpp_bin_float prevent double rounding when converting to a denormalized float. See #12527. Fix bug in integer sqrt for very small integers. See #12559. Fix conversion to signed-zero in cpp_bin_float. Change cpp_bin_float rounding code to round at arbitrary location so we can use it for conversions, see #12527. Improve performance of 128-bit bit-scan operations. Fix subtraction of very small quantities in cpp_bin_float. See: #12580. Bring error handling into line with C99 Annex F. See #12581. Fix bitwise export of trivial cpp_int's, see #12627. Fix ilogb (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see #12625. Allow conversion from __float128 to cpp_bin_float. Fix bug in left shift of cpp_int which would result in bit-loss, see #12790. Fixed bugs in bounded but variable precision cpp_int's caused by over-aggressive constexpr optimization, see #12798. Predef: Fix Intel C/C++ compiler version specification. Add BOOST_VERSION_NUMBER_MAJOR, BOOST_VERSION_NUMBER_MINOR, BOOST_VERSION_NUMBER_PATCH macros to extract components from valid version numbers. Change VS version numbering. Versions after VS2015 will use the compiler version instead of the varied product versions. Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Regex: Compiling with Oracle C++ toolset is no longer restricted to static linking. Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: #12818. Smart Pointers: Rewrite of allocate_shared and make_shared for arrays for a more optimal and more maintainable implementation (Glen Fernandes) Pointer cast functions with move semantics (Chris Glover) Test: Boost.test v3.5 see the Change log section for more details. New feature: Now Boost.Test provides customization points for logging user defined types JUnit output format can now have a log-level JUnit output format has not better performances when the test modules have a lot of checks Bug fixes Trac tickets #11756, #12540, #12712, #12748, #12778 Pull request PR107, PR108 TypeIndex: Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST, which implements the functionality for runtime_cast but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS macro (thanks to Chris Glover for imlpementing it) Fixed undefined macro warning in stl_type_index.hpp #12739 CI tests now run with address, leak, and undefined sanitizers TypeTraits: Added new traits make_void and void_t. Unordered: Initial support for new C++17 member functions: insert_or_assign and try_emplace in unordered_map, merge and extract in all containers. Variant: Fixed construction of variant from recursive_variant_ (thanks to Mikhail Maksimov for the fix) #12508, #12645 Do not enable variadic templates for MSVC2015Update1 as it still has issues #12236 Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) #12680, #7120 Made boost::polymorphic_*get to work as boost::*get in undocumented border cases and fixed tests #11950 CI tests now run with address, leak, and undefined sanitizers Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1 Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 3.9.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1 Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1 Clang, C++1z: 3.9.1, 4.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1 GCC, C++1z: 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 FreeBSD: Clang, C++98: 3.8 Clang, C++11: 3.8 Clang, C++14: 3.8 Clang, C++1z: 3.8 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted over 7 years ago
Post-release Patches Atomic: Using 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers can ... [More] result in generation of incorrect code. This problem is fixed in this commit. Updated Libraries Atomic: Added the static constant atomic<T>::is_always_lock_free for conformance with C++17. The constant indicates that the given specialization always provides lock-free implementation of atomic operations. Improved support of Oracle Studio on x86 targets. Container: Fixed bugs: Trac #12534: "flat_map fails to compile if included after type_traits is instantiated under gcc". Trac #12577: "Null reference in pair.hpp triggers runtime warning with -fsanitize=undefined". GitHub #40: Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type -> allocator_traits::size_type. GitHub #41: Avoid -Wunreachable-code in do_allocate(). Context: #11687 Xcode (Apple clang) and thread_local #12114 context does not preserve fpu context on ios arm64 devices (fixed for other architecturs too) #12411 fpu registers not preserved with O2 optimizations in Visual Studio (fixed for other architecturs too) #12551 building boost on arm64 causes error: unknown directive reduced signatur for ontop-functions unit-test for private fcontext-API performance-test for ucontext and fcontext fixed Fiber: unbounded_channel and bounded_channel marked as deprecated new classes buffered_channel and unbuffered_channel performance improved Fusion: Fixed fusion::vector buggy constructors (Thanks to Lee Clagett). BOOST_FUSION_ADAPT* and BOOST_FUSION_DEFINE* now allow empty structures. (#6592) BOOST_FUSION_DEFINE* allows move constructor and assignment. (#10099) Adaptor for std::array (Thanks to Mateusz Łoskot). (#8241) Fixed returning temporary variable warnings on MSVC. Geometry: Improvements: Intersection: take care that output is valid (work in progres, not yet finished - but more is valid) Solved tickets: #12289 Avoid warning/compilation error for std::cout #12412 Invalid result of covered_by() with geographic Points and Boxes #12413 rtree::remove() not working properly with geographic Points Hash: Fixed some warnings. Interprocess: Fixed bugs: Trac #12499 ("Memory allocation fails"). GitHub Pull #30 ("Provide extension point so library user can provide default temp folder"). GitHub Pull #31 ("Add xsi_key(key_t) constructor"). Intrusive: Fixed bugs: Boost Trac #12556: member_value_traits.hpp has a missing #include Lexical Cast: Fixed issue found by -fsanitize=undefined #21 Log: General changes: Removed the previously deprecated type_info_wrapper. New features: Added a way to access the current file name from the text file sink backend. The file name can be obtained with the get_current_file_name method. Bug fixes: Fixed compilation errors for Android API prior to version 21. Streaming operators now take scalar types and enums by value. This allows to output static constants and bitfields directly into formatting stream and record stream. (#11998) Fixed auto-detection of native syslog API. (#12600) In UDP socket based syslog backend implementation, changed the syslog message format for better compliance with RFC3164. File close handler installed in text file sink backend is no longer called if the file is not open yet. See changelog for more details. Metaparse: Improved the implementation of BOOST_METAPARSE_STRING The maximal string length limit has been increased to 2048 The maximal string length limit can be extended beyond 2048 by regenerating some of the Boost headers using a script (part of the library) The string length limit can be changed within a compilation unit Move: Improved experimental adaptive sort algorithm performance Activate BOOST_MOVE_FORCEINLINE Optional: Added two new in-place constructors. They work similarly to emplace() functions: they initialize the contained value by perfect-forwarding the obtained arguments. One constructor always initializes the contained value, the other based on a boolean condition. Syntax o = {} now correctly un-initializes an optional, just like in std::optional. Fixed optional<optional<T>&> initialization. (#12203) Optional constructors are sfinae-friendly. This fixes interaction with std::tuple. (#12563) Phoenix: Most of modules now support C++11 variadic templates. Fixed type deduction failure with result type. Suppress unused warnings. Fixed too few arguments error on binary math functions. Added workarounds for older compiler. Python: Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr) Incorporated an extension API to wrap NumPy Removed obsolete bits and pieces Test: Boost.test v3.4 see the Change log section for more details. New feature: per_element and lexicographic modifiers of BOOST_TEST can also be applied to string comparison Breaking change: colons that appear in test case names are replaced with underscores Bug fixes Trac tickets #11756, #11907, #12339, #12506, #12507, #12530, Trac tickets #12531 Pull request PR103, PR104 TypeIndex: Added runtime_cast to the library as an emulation of dynamic_cast. Thanks to Chris Glover for the implementation. See runtime_cast reference for more info. Internals of the CTTI were made more platform independant, due to change of the std::size_t type to unsigned int. Units: Fix inspection warnings updated physico-chemical constants to CODATA 2014 values define biot correctly as 10 Ampere Unordered: Fix an exception safety issue in assignment. Use std::allocator_traits where available, and support modern style rebind (#12459). Add some allocator aware constructors. Use the hint iterator in emplace_hint. Fixed some warnings. See the changelog for more details. Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 Clang, C++14: 3.5, 3.6, 3.7, 3.8.1 Clang, C++1z: 3.8.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0 GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 Clang, C++14: 3.5, 3.6, 3.7, 3.8.1 Clang, C++1z: 3.8.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.1.1, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0 GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0, 7.0.0 (experimental) GCC, C++1z: 6.1.1 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 GCC,C++14: 6.1.0 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted over 7 years ago
Post-release Patches Atomic: Using 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers can ... [More] result in generation of incorrect code. This problem is fixed in this commit. Updated Libraries Atomic: Added the static constant atomic<T>::is_always_lock_free for conformance with C++17. The constant indicates that the given specialization always provides lock-free implementation of atomic operations. Improved support of Oracle Studio on x86 targets. Container: Fixed bugs: Trac #12534: "flat_map fails to compile if included after type_traits is instantiated under gcc". Trac #12577: "Null reference in pair.hpp triggers runtime warning with -fsanitize=undefined". GitHub #40: Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type -> allocator_traits::size_type. GitHub #41: Avoid -Wunreachable-code in do_allocate(). Context: #11687 Xcode (Apple clang) and thread_local #12114 context does not preserve fpu context on ios arm64 devices (fixed for other architecturs too) #12411 fpu registers not preserved with O2 optimizations in Visual Studio (fixed for other architecturs too) #12551 building boost on arm64 causes error: unknown directive reduced signatur for ontop-functions unit-test for private fcontext-API performance-test for ucontext and fcontext fixed Fiber: unbounded_channel and bounded_channel marked as deprecated new classes buffered_channel and unbuffered_channel performance improved Fusion: Fixed fusion::vector buggy constructors (Thanks to Lee Clagett). BOOST_FUSION_ADAPT* and BOOST_FUSION_DEFINE* now allow empty structures. (#6592) BOOST_FUSION_DEFINE* allows move constructor and assignment. (#10099) Adaptor for std::array (Thanks to Mateusz Łoskot). (#8241) Fixed returning temporary variable warnings on MSVC. Geometry: Improvements: Intersection: take care that output is valid (work in progres, not yet finished - but more is valid) Solved tickets: #12289 Avoid warning/compilation error for std::cout #12412 Invalid result of covered_by() with geographic Points and Boxes #12413 rtree::remove() not working properly with geographic Points Hash: Fixed some warnings. Interprocess: Fixed bugs: Trac #12499 ("Memory allocation fails"). GitHub Pull #30 ("Provide extension point so library user can provide default temp folder"). GitHub Pull #31 ("Add xsi_key(key_t) constructor"). Intrusive: Fixed bugs: Boost Trac #12556: member_value_traits.hpp has a missing #include Lexical Cast: Fixed issue found by -fsanitize=undefined #21 Log: General changes: Removed the previously deprecated type_info_wrapper. New features: Added a way to access the current file name from the text file sink backend. The file name can be obtained with the get_current_file_name method. Bug fixes: Fixed compilation errors for Android API prior to version 21. Streaming operators now take scalar types and enums by value. This allows to output static constants and bitfields directly into formatting stream and record stream. (#11998) Fixed auto-detection of native syslog API. (#12600) In UDP socket based syslog backend implementation, changed the syslog message format for better compliance with RFC3164. File close handler installed in text file sink backend is no longer called if the file is not open yet. See changelog for more details. Metaparse: Improved the implementation of BOOST_METAPARSE_STRING The maximal string length limit has been increased to 2048 The maximal string length limit can be extended beyond 2048 by regenerating some of the Boost headers using a script (part of the library) The string length limit can be changed within a compilation unit Move: Improved experimental adaptive sort algorithm performance Activate BOOST_MOVE_FORCEINLINE Optional: Added two new in-place constructors. They work similarly to emplace() functions: they initialize the contained value by perfect-forwarding the obtained arguments. One constructor always initializes the contained value, the other based on a boolean condition. Syntax o = {} now correctly un-initializes an optional, just like in std::optional. Fixed optional<optional<T>&> initialization. (#12203) Optional constructors are sfinae-friendly. This fixes interaction with std::tuple. (#12563) Phoenix: Most of modules now support C++11 variadic templates. Fixed type deduction failure with result type. Suppress unused warnings. Fixed too few arguments error on binary math functions. Added workarounds for older compiler. Python: Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr) Incorporated an extension API to wrap NumPy Removed obsolete bits and pieces Test: Boost.test v3.4 see the Change log section for more details. New feature: per_element and lexicographic modifiers of BOOST_TEST can also be applied to string comparison Breaking change: colons that appear in test case names are replaced with underscores Bug fixes Trac tickets #11756, #11907, #12339, #12506, #12507, #12530, Trac tickets #12531 Pull request PR103, PR104 TypeIndex: Added runtime_cast to the library as an emulation of dynamic_cast. Thanks to Chris Glover for the implementation. See runtime_cast reference for more info. Internals of the CTTI were made more platform independant, due to change of the std::size_t type to unsigned int. Units: Fix inspection warnings updated physico-chemical constants to CODATA 2014 values define biot correctly as 10 Ampere Unordered: Fix an exception safety issue in assignment. Use std::allocator_traits where available, and support modern style rebind (#12459). Add some allocator aware constructors. Use the hint iterator in emplace_hint. Fixed some warnings. See the changelog for more details. Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 Clang, C++14: 3.5, 3.6, 3.7, 3.8.1 Clang, C++1z: 3.8.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0 GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 Clang, C++14: 3.5, 3.6, 3.7, 3.8.1 Clang, C++1z: 3.8.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.1.1, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0 GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0, 7.0.0 (experimental) GCC, C++1z: 6.1.1 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 GCC,C++14: 6.1.0 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted over 7 years ago
Post-release Patches Atomic: Using 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers can ... [More] result in generation of incorrect code. This problem is fixed in this commit. Updated Libraries Atomic: Added the static constant atomic<T>::is_always_lock_free for conformance with C++17. The constant indicates that the given specialization always provides lock-free implementation of atomic operations. Improved support of Oracle Studio on x86 targets. Container: Fixed bugs: Trac #12534: "flat_map fails to compile if included after type_traits is instantiated under gcc". Trac #12577: "Null reference in pair.hpp triggers runtime warning with -fsanitize=undefined". GitHub #40: Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type -> allocator_traits::size_type. GitHub #41: Avoid -Wunreachable-code in do_allocate(). Context: #11687 Xcode (Apple clang) and thread_local #12114 context does not preserve fpu context on ios arm64 devices (fixed for other architecturs too) #12411 fpu registers not preserved with O2 optimizations in Visual Studio (fixed for other architecturs too) #12551 building boost on arm64 causes error: unknown directive reduced signatur for ontop-functions unit-test for private fcontext-API performance-test for ucontext and fcontext fixed Fiber: unbounded_channel and bounded_channel marked as deprecated new classes buffered_channel and unbuffered_channel performance improved Fusion: Fixed fusion::vector buggy constructors (Thanks to Lee Clagett). BOOST_FUSION_ADAPT* and BOOST_FUSION_DEFINE* now allow empty structures. (#6592) BOOST_FUSION_DEFINE* allows move constructor and assignment. (#10099) Adaptor for std::array (Thanks to Mateusz Łoskot). (#8241) Fixed returning temporary variable warnings on MSVC. Geometry: Improvements: Intersection: take care that output is valid (work in progres, not yet finished - but more is valid) Solved tickets: #12289 Avoid warning/compilation error for std::cout #12412 Invalid result of covered_by() with geographic Points and Boxes #12413 rtree::remove() not working properly with geographic Points Hash: Fixed some warnings. Interprocess: Fixed bugs: Trac #12499 ("Memory allocation fails"). GitHub Pull #30 ("Provide extension point so library user can provide default temp folder"). GitHub Pull #31 ("Add xsi_key(key_t) constructor"). Intrusive: Fixed bugs: Boost Trac #12556: member_value_traits.hpp has a missing #include Lexical Cast: Fixed issue found by -fsanitize=undefined #21 Log: General changes: Removed the previously deprecated type_info_wrapper. New features: Added a way to access the current file name from the text file sink backend. The file name can be obtained with the get_current_file_name method. Bug fixes: Fixed compilation errors for Android API prior to version 21. Streaming operators now take scalar types and enums by value. This allows to output static constants and bitfields directly into formatting stream and record stream. (#11998) Fixed auto-detection of native syslog API. (#12600) In UDP socket based syslog backend implementation, changed the syslog message format for better compliance with RFC3164. File close handler installed in text file sink backend is no longer called if the file is not open yet. See changelog for more details. Metaparse: Improved the implementation of BOOST_METAPARSE_STRING The maximal string length limit has been increased to 2048 The maximal string length limit can be extended beyond 2048 by regenerating some of the Boost headers using a script (part of the library) The string length limit can be changed within a compilation unit Move: Improved experimental adaptive sort algorithm performance Activate BOOST_MOVE_FORCEINLINE Optional: Added two new in-place constructors. They work similarly to emplace() functions: they initialize the contained value by perfect-forwarding the obtained arguments. One constructor always initializes the contained value, the other based on a boolean condition. Syntax o = {} now correctly un-initializes an optional, just like in std::optional. Fixed optional<optional<T>&> initialization. (#12203) Optional constructors are sfinae-friendly. This fixes interaction with std::tuple. (#12563) Phoenix: Most of modules now support C++11 variadic templates. Fixed type deduction failure with result type. Suppress unused warnings. Fixed too few arguments error on binary math functions. Added workarounds for older compiler. Python: Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr) Incorporated an extension API to wrap NumPy Removed obsolete bits and pieces Test: Boost.test v3.4 see the Change log section for more details. New feature: per_element and lexicographic modifiers of BOOST_TEST can also be applied to string comparison Breaking change: colons that appear in test case names are replaced with underscores Bug fixes Trac tickets #11756, #11907, #12339, #12506, #12507, #12530, Trac tickets #12531 Pull request PR103, PR104 TypeIndex: Added runtime_cast to the library as an emulation of dynamic_cast. Thanks to Chris Glover for the implementation. See runtime_cast reference for more info. Internals of the CTTI were made more platform independant, due to change of the std::size_t type to unsigned int. Units: Fix inspection warnings updated physico-chemical constants to CODATA 2014 values define biot correctly as 10 Ampere Unordered: Fix an exception safety issue in assignment. Use std::allocator_traits where available, and support modern style rebind (#12459). Add some allocator aware constructors. Use the hint iterator in emplace_hint. Fixed some warnings. See the changelog for more details. Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 3.8.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 Clang, C++14: 3.5, 3.6, 3.7, 3.8.1 Clang, C++1z: 3.8.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0 GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1 Clang, C++14: 3.5, 3.6, 3.7, 3.8.1 Clang, C++1z: 3.8.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.1.1, 6.2.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0 GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0, 7.0.0 (experimental) GCC, C++1z: 6.1.1 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0, 17.0 OS X: Apple Clang: 7.0.2 Apple Clang, C++11: 7.0.2 Windows: GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0 GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1 GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0 Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4, 6.2 GCC,C++14: 6.1.0 QNX: QCC: 4.4.2 SunOS: Oracle Solaris Studio: 12.5 Oracle Solaris Studio, C++11: 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]