501
I Use This!
Activity Not Available

News

Analyzed 5 months ago. based on code collected over 1 year ago.
Posted almost 8 years ago
Fixes in 1.65.1 Config: Version macro changes for CUDA. Update last known MSVC ... [More] version. MSVC 14.11 supports structured bindings. Context: Return a continuation from functions executed by resume_with. Fiber: Return a continuation from functions executed by resume_with. Smart Pointers: Fix Visual C++ version checks. Fix compilation for NVCC with host compiler clang. Stacktrace: Update build testing file to detail with a MinGW issue. Change preprocessor file extensions to work with the installation system. Support FreeBSD and other OSs that do not define _GNU_SOURCE but have _Unwind_Backtrace function. Thread: Fix bug in boost::condition_variable on Windows (#130). Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 4.0.1, 5.0.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.0 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 5.0.0 Clang, C++17: 5.0.0 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 7.1.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 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.4.2 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: , 12.5_next, 12.5 Acknowledgements Beman Dawes, Daniel James, Vladimir Prus and Marshall Clow managed this release. New Libraries in 1.65.0 PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Removed Libraries in 1.65.0 TR1 Updated Libraries in 1.65.0 Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: Improvements: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks Bugfixes: #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 important: required bug fix 420554fe9ac01482990e8ae314f4f7ba81010c9a not included in 1.65 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: Improvements: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks Bugfixes: #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? important: required bug fix 63f1041f0e484e64dec437a0fa780ea2463abda2 not included in 1.65 Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 Thread: Important Regression on Windows: #130 windows: Bug in boost::condition_variable on Windows Please, merge these two patches https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657 https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d Bug fixes #6787 boost::thread::sleep() hangs if system time is rolled back #12519 boost::thread::try_join_for does not return after timeout #12874 future<> extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP #12888 Linking with boost thread does not work on mingw/gcc 4.4 #12958 sync_bounded_queue::wait_pull_front( lve ) might throw #13077 Linking to static 64bit libboost_thread fails DLL initialization #13155 log doesn't build on a system with pthreads #121 on_tls_prepare is broken under VS2017 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Typeof: Fix compilation error with clang-cl ticket 11821. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. [Less]
Posted almost 8 years ago
Known Issues These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. Combined patch for fixes ... [More] to issues: boost_1_65_0.patch. Use patch -p1 < boost_1_65_0.patch from the root of the boost repo to apply. Or you can apply the patches individually below. Context and Fiber don't return continuations when they should: Context patch Fiber patch Thread: Bug in boost::condition_variable on Windows: Thread patch 1 Thread patch 2 New Libraries PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Removed Libraries TR1 Updated Libraries Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: Improvements: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks Bugfixes: #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 important: required bug fix 420554fe9ac01482990e8ae314f4f7ba81010c9a not included in 1.65 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: Improvements: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks Bugfixes: #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? important: required bug fix 63f1041f0e484e64dec437a0fa780ea2463abda2 not included in 1.65 Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 Thread: Important Regression on Windows: #130 windows: Bug in boost::condition_variable on Windows Please, merge these two patches https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657 https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d Bug fixes #6787 boost::thread::sleep() hangs if system time is rolled back #12519 boost::thread::try_join_for does not return after timeout #12874 future<> extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP #12888 Linking with boost thread does not work on mingw/gcc 4.4 #12958 sync_bounded_queue::wait_pull_front( lve ) might throw #13077 Linking to static 64bit libboost_thread fails DLL initialization #13155 log doesn't build on a system with pthreads #121 on_tls_prepare is broken under VS2017 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Typeof: Fix compilation error with clang-cl ticket 11821. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.7.3 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted almost 8 years ago
Known Issues These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. Combined patch for fixes ... [More] to issues: boost_1_65_0.patch. Use patch -p1 < boost_1_65_0.patch from the root of the boost repo to apply. Or you can apply the patches individually below. Context and Fiber don't return continuations when they should: Context patch Fiber patch Thread: Bug in boost::condition_variable on Windows: Thread patch 1 Thread patch 2 New Libraries PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Removed Libraries TR1 Updated Libraries Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: Improvements: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks Bugfixes: #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 important: required bug fix 420554fe9ac01482990e8ae314f4f7ba81010c9a not included in 1.65 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: Improvements: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks Bugfixes: #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? important: required bug fix 63f1041f0e484e64dec437a0fa780ea2463abda2 not included in 1.65 Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 Thread: Important Regression on Windows: #130 windows: Bug in boost::condition_variable on Windows Please, merge these two patches https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657 https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d Bug fixes #6787 boost::thread::sleep() hangs if system time is rolled back #12519 boost::thread::try_join_for does not return after timeout #12874 future<> extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP #12888 Linking with boost thread does not work on mingw/gcc 4.4 #12958 sync_bounded_queue::wait_pull_front( lve ) might throw #13077 Linking to static 64bit libboost_thread fails DLL initialization #13155 log doesn't build on a system with pthreads #121 on_tls_prepare is broken under VS2017 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Typeof: Fix compilation error with clang-cl ticket 11821. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.7.3 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted almost 8 years ago
Known Issues These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. Combined patch for fixes ... [More] to issues: boost_1_65_0.patch. Use patch -p1 < boost_1_65_0.patch from the root of the boost repo to apply. Or you can apply the patches individually below. Context and Fiber don't return continuations when they should: Context patch Fiber patch Thread: Bug in boost::condition_variable on Windows: Thread patch 1 Thread patch 2 New Libraries PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Removed Libraries TR1 Updated Libraries Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: Improvements: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks Bugfixes: #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 important: required bug fix 420554fe9ac01482990e8ae314f4f7ba81010c9a not included in 1.65 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: Improvements: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks Bugfixes: #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? important: required bug fix 63f1041f0e484e64dec437a0fa780ea2463abda2 not included in 1.65 Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 Thread: Important Regression on Windows: #130 windows: Bug in boost::condition_variable on Windows Please, merge these two patches https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657 https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d Bug fixes #6787 boost::thread::sleep() hangs if system time is rolled back #12519 boost::thread::try_join_for does not return after timeout #12874 future<> extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP #12888 Linking with boost thread does not work on mingw/gcc 4.4 #12958 sync_bounded_queue::wait_pull_front( lve ) might throw #13077 Linking to static 64bit libboost_thread fails DLL initialization #13155 log doesn't build on a system with pthreads #121 on_tls_prepare is broken under VS2017 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Typeof: Fix compilation error with clang-cl ticket 11821. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.7.3 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted almost 8 years ago
Known Issues These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. Combined patch for fixes ... [More] to issues: boost_1_65_0.patch. Use patch -p1 < boost_1_65_0.patch from the root of the boost repo to apply. Or you can apply the patches individually below. Context and Fiber don't return continuations when they should: Context patch Fiber patch Thread: Bug in boost::condition_variable on Windows: Thread patch 1 Thread patch 2 New Libraries PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Updated Libraries Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: Improvements: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks Bugfixes: #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 important: required bug fix 420554fe9ac01482990e8ae314f4f7ba81010c9a not included in 1.65 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: Improvements: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks Bugfixes: #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? important: required bug fix 63f1041f0e484e64dec437a0fa780ea2463abda2 not included in 1.65 Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 Thread: Important Regression on Windows: #130 windows: Bug in boost::condition_variable on Windows Please, merge these two patches https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657 https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d Bug fixes #6787 boost::thread::sleep() hangs if system time is rolled back #12519 boost::thread::try_join_for does not return after timeout #12874 future<> extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP #12888 Linking with boost thread does not work on mingw/gcc 4.4 #12958 sync_bounded_queue::wait_pull_front( lve ) might throw #13077 Linking to static 64bit libboost_thread fails DLL initialization #13155 log doesn't build on a system with pthreads #121 on_tls_prepare is broken under VS2017 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Typeof: Fix compilation error with clang-cl ticket 11821. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.7.3 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted almost 8 years ago
Known Issues These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. Combined patch for fixes ... [More] to issues: boost_1_65_0.patch. Use patch -p1 < boost_1_65_0.patch from the root of the boost repo to apply. Or you can apply the patches individually below. Context and Fiber don't return continuations when they should: Context patch Fiber patch Thread: Bug in boost::condition_variable on Windows: Thread patch 1 Thread patch 2 New Libraries PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Updated Libraries Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: Improvements: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks Bugfixes: #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 important: required bug fix 420554fe9ac01482990e8ae314f4f7ba81010c9a not included in 1.65 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: Improvements: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks Bugfixes: #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? important: required bug fix 63f1041f0e484e64dec437a0fa780ea2463abda2 not included in 1.65 Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 Thread: Important Regression on Windows: #130 windows: Bug in boost::condition_variable on Windows Please, merge these two patches https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657 https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d Bug fixes #6787 boost::thread::sleep() hangs if system time is rolled back #12519 boost::thread::try_join_for does not return after timeout #12874 future<> extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP #12888 Linking with boost thread does not work on mingw/gcc 4.4 #12958 sync_bounded_queue::wait_pull_front( lve ) might throw #13077 Linking to static 64bit libboost_thread fails DLL initialization #13155 log doesn't build on a system with pthreads #121 on_tls_prepare is broken under VS2017 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.7.3 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted almost 8 years ago
Known Issues These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. Combined patch for fixes ... [More] to issues: boost_1_65_0.patch. Use patch -p1 < boost_1_65_0.patch from the root of the boost repo to apply. Or you can apply the patches individually below. Context and Fiber don't return continuations when they should: Context patch Fiber patch Thread: Bug in boost::condition_variable on Windows: Thread patch 1 Thread patch 2 New Libraries PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Updated Libraries Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: Improvements: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks Bugfixes: #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 important: required bug fix 420554fe9ac01482990e8ae314f4f7ba81010c9a not included in 1.65 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: Improvements: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks Bugfixes: #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? important: required bug fix 63f1041f0e484e64dec437a0fa780ea2463abda2 not included in 1.65 Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 Thread: Important Regression on Windows: #130 windows: Bug in boost::condition_variable on Windows Please, merge these two patches https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657 https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d Bug fixes #6787 boost::thread::sleep() hangs if system time is rolled back #12519 boost::thread::try_join_for does not return after timeout #12874 future<> extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP #12888 Linking with boost thread does not work on mingw/gcc 4.4 #12958 sync_bounded_queue::wait_pull_front( lve ) might throw #13077 Linking to static 64bit libboost_thread fails DLL initialization #13155 log doesn't build on a system with pthreads #121 on_tls_prepare is broken under VS2017 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.7.3 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted almost 8 years ago
New Libraries PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print ... [More] backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Updated Libraries Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.7.3 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted almost 8 years ago
Known Issues These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. Combined patch for fixes ... [More] to issues: boost_1_65_0.patch. Use patch -p1 < boost_1_65_0.patch from the root of the boost repo to apply. Or you can apply the patches individually below. Context and Fiber don't return continuations when they should: Context patch Fiber patch Thread: Bug in boost::condition_variable on Windows: Thread patch 1 Thread patch 2 New Libraries PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Updated Libraries Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: Improvements: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks Bugfixes: #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 important: required bug fix 420554fe9ac01482990e8ae314f4f7ba81010c9a not included in 1.65 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: Improvements: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks Bugfixes: #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? important: required bug fix 63f1041f0e484e64dec437a0fa780ea2463abda2 not included in 1.65 Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 Thread: Important Regression on Windows: #130 windows: Bug in boost::condition_variable on Windows Please, merge these two patches https://github.com/boostorg/thread/commit/fdc0cbcd8ce8f34a19c7cdaf6f1fa679f0a49657 https://github.com/boostorg/thread/commit/395e3d786bc1dce9c60eb84da85f5845a2c1fb3d Bug fixes #6787 boost::thread::sleep() hangs if system time is rolled back #12519 boost::thread::try_join_for does not return after timeout #12874 future<> extension constructor must be under BOOST_THREAD_PROVIDES_FUTURE_UNWRAP #12888 Linking with boost thread does not work on mingw/gcc 4.4 #12958 sync_bounded_queue::wait_pull_front( lve ) might throw #13077 Linking to static 64bit libboost_thread fails DLL initialization #13155 log doesn't build on a system with pthreads #121 on_tls_prepare is broken under VS2017 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Typeof: Fix compilation error with clang-cl ticket 11821. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.7.3 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted almost 8 years ago
New Libraries PolyCollection: Fast containers of polymorphic objects, from Joaquín M López Muñoz. Stacktrace: Gather, store, copy and print ... [More] backtraces, from Antony Polukhin. Note: Library has issue with MinGW and may produce empty backtraces with that compiler. Updated Libraries Asio: Changed to require g++ versions >= 4.7 to use standard atomics, to fix a linker error when using g++ 4.6 (#13121). Enabled use of constexpr and variadic templates with recent MSVC versions. Fixed a race condition in the Linux epoll backend, which may occur when a socket or descriptor is closed while another thread is blocked on epoll. Eliminated use of deprecated auto_ptr. Fixed misplaced use of asio_handler_is_continuation result in reactive async_accept implementation. Changed to use poll.h rather than sys/poll.h on some modern POSIX platforms (#12419). Fixed MSVC intellisense detection. Disabled use of the __thread keyword extension for android/clang/x86 targets. Context: call/cc supports ucontext-API (swapcontext) call/cc supports Windows-Fiber-API call/cc supports on demand growing (segmented/split) stacks #12719: context test cases and examples segmentation fault when built with mingw-w64 toolchain #52: Failing to build callcc test with g++-4.9 Config: Added BOOST_NO_CXX11_POINTER_TRAITS, BOOST_NO_CXX17_FOLD_EXPRESSIONS, BOOST_NO_CXX17_INLINE_VARIABLES, BOOST_NO_CXX17_STRUCTURED_BINDINGS defect detection. BOOST_FALLTHROUGH support for GCC 7 and above. (Glen Fernandes) Core: Implemented pointer_traits for C++03 and higher, that implements P0653r0 (Glen Fernandes). This implementation is now used by Align, Circular Buffer, Fiber, Geometry, among other libraries. Added BOOST_TEST_GT and BOOST_TEST_GE to Lightweight Test. Coroutine2: supports ucontext-API (swapcontext) supports Windows-Fiber-API #13064: different behavior coroutine and coroutine2 DLL: Fix PE parsing on non Windows platforms. Fiber: hardware transactional memory (Intel TSX) supported NUMA supported ucontext-API (swapcontext) supported Windows-Fiber-API supported on demand growing stacks #121: failing to build static lib with GCC 4.8 and C++11 #123: assertion failure in schedule_from_remote #125: erratic crashes in testsuite #126: incorrect std::memory_order value in compare_exchange_strong? Fusion: MSVC 14.1 supports variadic containers, such as fusion::vector, fusion::deque, fusion::map, fusion::set, and fusion::tuple. (#12986) Geometry: Improvements: Add correct() overload taking area strategy Add is_convex() overload taking side strategy Add missing relational operations (covered_by, crosses, equals, etc.) for MultiPoint/AnyGeometry Solved issues: 12410 Lack of support of geographic coordinate system in correct() 13035 Wrong result of non-cartesian intersection strategies for segments near poles. 13057 Wrong result of intersects() for linestrings caused by numerical issue in disjoint() for boxes. Bugfixes: Fix is_valid which could return false for multipolygons where an interior ring touches another interior ring Fix is_valid which could return false for multipolygons where a polygon was located in an interior ring, all touching each other Fix union which could produce invalid results (for some cases, this needs to define BOOST_GEOMETRY_INCLUDE_SELF_TURNS) Fix intersection (idem), but some cases are still not yet valid Fix difference (idem), but some cases are still not yet valid Fix propagation of area strategy into the internals of various algorithms from intersection strategy Fix uninitialized variable in relate and reference to temporary in overlay Fix error in disjoint for geographic Segment/Box Fix handling of non-cartesian geometries in various algorithms Hash: Support for char16_t, char32_t, u16string, u32string. Log: General changes: Improved compatibility with Solaris. See changelog for more details. Phoenix: Corrected some documentation. (PR#50) phoenix::erase with associative container returns iterator in C++11 mode. (#7423) std::set and std::multiset should be worked with predefined lazy functions. (PR#52) Disable phoenix::random_shuffle in C++17. (PR#53) Don't forward declare, include instead. (#11875) Predef: Fix Intel C/C++ version 9999 detection to be 12.1.0. Addition of BOOST_PREDEF_WORKAROUND and BOOST_PREDEF_TESTED_AT macros for defect workarounds and detection. Add ARM64 MSVC SIMD detection. (from Minmin Gong) Add detection of iOS simulator vs device as a platform choice. (from Ruslan Baratov) Fix MinGW incorrect header guard. (from Ruslan Baratov) Program Options: Support for storing values into boost::optional, thanks to Ed Catmur (#7495, PR#18) Parsing of implicit options can now use the value from the next token. Since 1.59, unless the value of implicit option was specified in the same token as the option itself, the implicit value was used. That proved inconvenient, and now we again check the next token and use it as value if it's not an option itself. (#25) Python: eval(), exec(), and exec_statement() now allow char const * arguments, in addition to boost::python::str. The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy. Fix some build issues when using Python3 with MSVC. Smart Pointers: New class templateatomic_shared_ptr, that provides thread-safe atomic pointer operations over shared_ptr. (Peter Dimov) New class template local_shared_ptr, where the reference count is updated with non-atomic operations. (Peter Dimov) More optimizations in allocate_shared and make_shared for arrays. (Glen Fernandes) Documentation has been completely rewritten in Asciidoc format. Test: Boost.test v3.6 see the Change log section for more details. New feature: C++17 compatibility (tested on VS2017), thanks to Daniela Engert Direct comparison of C-arrays in BOOST_TEST Better global fixtures mechanism, and spitting of responsibilities with BOOST_TEST_GLOBAL_FIXTURE for global fixtures and BOOST_TEST_GLOBAL_CONFIGURATION for global initialization (compile time configuration). Improved support for fixtures (setup / teardown member function) which enables better teardown time checks Breaking changes Some API changes for the loggers Deprecating BOOST_GLOBAL_FIXTURE in favor of BOOST_TEST_GLOBAL_FIXTURE and BOOST_TEST_GLOBAL_CONFIGURATION (see above) Bug fixes Trac tickets #5282, #5563, #11471, #11962, #12228 Trac tickets #12631, #13011 Pull request PR106 TypeIndex: Include if required, thanks to Ed Catmur #13009. Use native hash_code() when possible on GCC-like compilers #13027. Fix ctti_type_index for GCC 7 and later, thanks to Benjamin Buch PR16. Unordered: Use the same data structure for unordered_set and unordered_multiset, and forunordered_map and unordered_multimap. This is required for C++17, so that nodes can be merged and extracted between compatible containers. Add deprecated attributes to long deprecated functions. Improved use of allocator_traits construct and destroy on C++11 compilers, using piecewise pair construction when appropriate. Fewer workarounds on newer Oracle compilers. Avoid dereferencing pointers to uninitialized memory (PR #5). Utility: Improved compatibility of boost::next/boost::prior with SFINAE-unfriendly iterators. #10847, #13002. Variant: r-value overload for boost::get was added by Albert Sverdlov #13018. Missing include fro <boost/variant/polymorphic_get.hpp> header was added by Adam Badura #13037. boost::make_variant_over was fixed and now works with views and other Forward Sequences (thanks to Mikhail Maksimov for the fix) #8554, #10041, PR#35. 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 7.1.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 16.0, 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 QNX: QCC, C++11: 4.7.3 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 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.0, 3.6.0, 3.7.1, 3.8.0, 3.8.1, 3.9.1, 4.0.1 Clang, C++1z: 4.0.0 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.1.0 GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 7.1.0 GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.1.0, 8.0.0 GCC, C++17: 7.1.0 GCC, C++1z: 6.3.0 Intel: 17.0 Intel, C++11: 16.0, 17.0 Intel, C++14: 16.0 OS X: Clang: 8.1.0 Clang, C++11: 8.1.0 Clang, C++14: 8.1.0 Clang, C++1z: 8.1.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++11: 4.6.4, 4.7.3, 4.8.1 GCC, C++14: 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, 14.1 Android: Clang: 3.6, 3.7, 3.8 GCC: 4.9, 5.4 GCC, C++14: 6.2 FreeBSD: Clang: 3.8.0 Clang, C++11: 3.8.0 Clang, C++14: 3.8.0 Clang, C++1z: 3.8.0 SunOS: Oracle Solaris Studio: 12.5_next, 12.5 Oracle Solaris Studio, C++11: 12.5_next, 12.5 Acknowledgements Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]