501
I Use This!
Activity Not Available

News

Analyzed 4 months ago. based on code collected 4 months ago.
Posted about 6 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. Fix ... [More] compiling with FreeBSD: /patches/1_67_0/0001-Fiber-Use-pthread_setaffinity_np-on-FreeBSD-as-well.patch /patches/1_67_0/0002-Wave-Avoid-using-wrong-T_DIVIDE-on-BSDs.patch Fix Python auto-linking: /patches/1_67_0/0003-Python-Fix-auto-linking-logic-Windows-only.patch New Libraries Contract: Contract programming for C++. All contract programming features are supported: Subcontracting, class invariants, postconditions (with old and return values), preconditions, customizable actions on assertion failure (e.g., terminate or throw), optional compilation and checking of assertions, etc, from Lorenzo Caminiti. HOF: Higher-order functions for C++, from Paul Fultz II. Updated Libraries Asio: Added missing const qualifier to basic_socket_acceptor::get_option. Worked around a parsing error that occurs with some versions of gcc. Fixed broken code samples in tutorial. Added new experimental features. (Note that "experimental" features may be changed without notice in subsequent releases.) Added experimental::detached completion token. Added experimental::redirect_error completion token. Added experimental::co_spawn facility for integration with the coroutines technical specification. Updated timeout examples to use latest features. Used asio::steady_timer rather than asio::deadline_timer. Used asio::dynamic_buffer rather than asio::streambuf. Used timed asio::io_context::run_for() function for blocking clients. Added example showing a custom completion token for blocking with timeouts. Fixed unit tests to compile when BOOST_ASIO_NO_DEPRECATED is defined. Changed socket iostreams to use chrono by default, to fix compatibility with the Networking TS. Define BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM to enable the old Boost.Date_Time interface in basic_socket_streambuf and basic_socket_iostream. Updated examples to use chrono rather than Boost.Date_Time. Fixed an incorrect member function detector in the is_dynamic_buffer trait. Fixed an async_result incompatibility with deprecated handler_type. Added a missing move optimisation in the SSL stream implementation. Fixed incorrect basic_resolver_results::value_type typedef. Fixed a compile error with some OpenSSL versions when SSL_OP_NO_COMPRESSION is defined. Changed add_certificate_authority to process multiple certificates in a bundle. Eliminated deprecation warning with MSVC by using std::invoke_result rather than std::result_of. Changed to use std::string_view for C++17 or later, and std::experimental::string_view for C++14. Define the preprocessor macro BOOST_ASIO_DISABLE_STD_STRING_VIEW to force the use of std::experimental::string_view (assuming it is available) when compiling in C++17 mode. Ensured DynamicBuffer template arguments are decayed before using in enable_if tests. Changed documentation to distinguish legacy completion handlers (which are still required to be CopyConstructible) from new MoveConstructible handlers. Suppressed a discarded return value warning in the buffer debugging support. Fixed basic_yield_context to work with completion signatures containing reference parameters. Ensured that stackful coroutines launched using spawn() correctly store decayed copies of their function and handler arguments. Fixed some compatibility issues with Android. Added cross-compilation support to Jamfiles. Fixed some minor portability issues in examples. Atomic: Breaking change: Changed the result of the (op)_and_test operations added in Boost 1.66 to the opposite - the functions now return true if the operation result is non-zero. This is consistent with other test methods in Boost.Atomic and the C++ standard library. Users can define BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TEST when compiling their code to emit warnings on every use of the changed functions. This way users can locate the code that needs to be updated. (#11) Update for C++2a. On C++11 compilers that support scoped enums, the memory_order enumeration is now scoped and contains constants with shorter names like acquire, release or seq_cst (i.e. users can use memory_order::acquire instead of memory_order_acquire). The old constants are also provided for backward compatibility. (P0439R0) Update for C++2a. Added experimental support for atomic operations on floating point types. In addition to general operations, add, sub, negate operations and their fetch_(op) and opaque_(op) versions are supported. Lock-free property can be tested with the new macros BOOST_ATOMIC_FLOAT/DOUBLE/LONG_DOUBLE_LOCK_FREE. The support for floating point types is optional and can be disabled by defining BOOST_ATOMIC_NO_FLOATING_POINT. (P0020R6) Added new experimental operations: negate_and_test and complement_and_test which perform negation or bitwise complement and return true if the result is not zero. add, sub, negate, bitwise_and, bitwise_or, bitwise_xor, bitwise_complement operations which perform the operation and return its result. For generic atomic<T> specialization, the default constructor is now trivial if T's default constructor is. The internal implementation of atomic<T> has been updated to avoid undefined behavior that stems from signed integer overflows. As required by the C++ standard, the library uses two's complement representation of signed integers internally and accroding rules of overflow. Currently, the library requires the native signed integer types to also use two's complement representation (but no defined overflow semantics). Improved Clang support. In particular, fixed DCAS not being lock-free and fixed possible incorrect code generated on 32-bit x86. Improved MinGW support. For gcc versions up to 4.6, fixed compilation of DCAS on x86. In x86 PIE code, asm blocks now preserve ebx value. Beast: This version fixes significant defects in websocket::stream which can lead to asserts or undefined behavior. Users are encouraged to update to the latest Boost release. For a complete list of changes, please view the official Release Notes. ContainerHash: Extracted from the functional module to break a dependency cycle. Moved headers to new location to reflect name change, the old include paths will still work. Added support for std::string_view, std::error_code, std::error_condition, std::optional, std::variant, std::monostate where available. Added explicit support for vector<bool>, so that it will work with libc++ (#13501). More detail in the library change log. Context: #62/PR#64: fix i386/macho routines to correctly return transfer_t in EAX/EDX #65: __sanitizer_finish_switch_fiber should be called directly after context switch #66: Clang on Windows : error: No best alternative for libs/context/build/asm_sources #73: fixing C2492 for execution_context (v1) known bug: including all.hpp + ucontext/winfib causes error 'forced_unwind: is not a member of boost::context::detail' Core: Updated to_address and pointer_traits to reflect the design adopted for C++2a in P0653R2 (Glen Fernandes). Coroutine2: #13: Pull coroutine does not rethrow an exception if it is thrown on the first entry DateTime: Fixed various year 2038 (32-bit) issues (#2818) (#2819) (#3487) (#4543) (#8450) (#9158) (#9489) (#10570) (#12609) Fixed a binary serialization regression introduced in 1.66.0 (#56) (PR#58) (PR#70) Updated the timezone database file (#4430) (#10087) (PR#68) Enhanced from_iso_string so it can read output of to_iso_string for special values (#1078) (PR#69) Changed maximum supported year from 10000 to 9999 to resolve various issues (#13159) (#12630) (PR#71) boost::date_time::period_parser::delimiter_strings did nothing (#11142) (PR#63) Ensure special values are not automatically translated to integral types (#11168) (PR#64) int_adapter::is_signed should be const (#12363) (PR#60) boost::date_time::time_input_facet throws when using %j alone (#12910) (PR#59) Time input facet is not able to parse %e day (#13194) (PR#54) Improved Github CI build environment for better project metrics and quality (PR#52) (PR#72) Fixed various compiler warnings (#3606) (#9882) (PR#62) DLL: Fixes for calling functions on dirty GetLastError() #16. Fiber: #128: Assertion "! ctx->ready_is_linked()" when using condition_variable::wait_for #132: fatal error: 'stdexception' file not found #141: boost::fibers::async problem #146: remove unecessary lock of remote-ready-queue spinlock #153: docu: replace set_ready() by schedule() #154: Document iterators on channels #155: this_fiber is wrongly documented as being a member of boost::fibers #156: Many examples are using their own barrier.hpp #158: add BOOST_FIBERS_DECL to work_stealing class #162: remove use-coutner increment for timed wait ops #166: remove assertion for wait_is_linked() in schedule() #167: call shared_state::owner_destroyed() only if future was created from #168: fiber/doc/installing.qbk not not up to date Filesystem: Fix static initialization issue that caused a crash if path operations were used before main() (PR#62, PR#43, PR#50, PR#59) Fusion: Switch to SFINAE in template parameters on fusion::map to fix compile error on newer MSVC 2017. (PR#164) Fix for compilers not compatible with CWG defect 945 on fusion::vector. (PR#166) Added limits precheck on sequence converter to make error message clearer. (PR#168) Allow incomplete types in fusion::tag_of and fusion::is_native_fusion_sequence. Note that this changes no behaviour from previous release, but compliant to TypeTraits's change. (PR#171) Locale: Added support of unique_ptr interface in addition to C++2003 auto_ptr - in order to support C++2017, now you can use BOOST_LOCALE_HIDE_AUTO_PTR definiton to remove auto_ptr from the interfaces and prevent deprecated watnings. Fixed test problem with ICU >60.1 Fix of solaris build Fixed wired FreeBSD/clang issue on optimized build. Probably compiler workaround Added workaround for failing MSVC tests due to 932 codepage codecvt issue Fixed bugs 6851, 12572, 12453 Fixed missing throw in case of failure in icu/date_time Fixed build agains Boost.Thread v4 Fixed Year of week instead of year ICU backend formatting Fixed formatting test for ICU 56.1 and above Log: Improved compatibility with C++17: use allocator_traits to work with allocators instead of directly accessing its members. Improved compatibility with gcc 7 and later by updating library ABI namespace definition. Added documentation for the "Append" config file parameter for "TextFile" sinks. The parameter was supported previously, only the documentation was missing. Math: Add naive Monte Carlo integration support. Add Chebyshev interpolation routines. Multi-index Containers: Elements with overloaded operator& are now fully accepted (ticket #13307). Thanks to Daniel Frey for his updating Boost.Operators to help fix this issue. Avoided usage of std::allocator members deprecated in C++17. Contributed by Daniela Engert. Maintenance fixes. Multiprecision: Breaking Change: When converting a multiprecision integer to a narrower type, if the value is too large (or negative) to fit in the smaller type, then the result is either the maximum (or minimum) value of the target type. This was always the intended behaviour, but was somewhat haphazardly enforced before. If you really do want just the low order N bits of a value, then you will need to mask these out prior to the case, for example: static_cast<unsigned>(~static_cast<unsigned>(0) & my_value). Note that technically (to avoid undefined behaviour) you should do the same thing with built in integer types too. See #13109. Fix bug in conversion of decimal to rational types (zero needs special handling), see #13148. Fix conversion from cpp_bin_float to a wider built in integer type, see #13301. Improve performance heurists used in cpp_bin_float exp function. Fix bug in floor/ceil and cpp_bin_float when the exponent type is wider than an int, see #13264. Disable explicit conversion operator when the target type is already constructible from this type, see #30. Fix support for changes new to MPIR-3.0, see #13124. Optional: Fixed issue #46 Fixed -Wzero-as-null-pointer-constant warnings. Phoenix: Correct documentation and example code. (#8187, PR#56, PR#57) Fixed bug with initializing phoenix lazy from array types in C++11. (#12733, PR#58, PR#61) Use proto subscript and assignment overload operators buildins to fix compile error with some lambda experssions on recent MSVC. (#62, PR#64, PR#66, PR#67) Remove use of deprecated std::iteratror. Thanks to Daniela Engert. (PR#59) PolyCollection: Maintenance fixes. Python: The library name now includes the version suffix of the Python version used to compile it. For example, a variant compiled with Python 2.7 will produce library names boost_python27 and boost_numpy27, etc.. Combined with a related fix in Boost.Build, this means that it is now possible to build variants for multiple Python versions in a single build process. Spirit: Spirit.X3: Breaking change: Removed with_context (#239) Added noexcept to x3::variant and forward_ast (#241) CR+LF lines wrongly counted in error_handler::position() (#248) Fixed unused_type attribute case in parse_into_container (#266) Fixed parsing into associative containers (#289) Fixed overflow problem in uint_parser<signed T> (#297) Added VS2015 Update 3 support by using workarounds (#308) Fixed include guard names collision with Qi (#313) Added parsing into range (#316) (#12928) Changed iterator concept static assert from ForwardIterator to ReadableIteratorConcept && ForwardTraversalConcept (#320) Reenabled fusion::map support (#330) Fixed string("...") and attr("...") to single item sequence (#337) Dereference a single item view instead of unwrapping sequence (#340) Prevent parse_nan from dereferencing out of range iterator (#351) Use traits to test if container is empty (#355) Spirit V2 Fixed keyword directives compilation on C++11 (#256) (#11493) Fixed subrules compilation (#279) (#259) Fixed subrules use after scope bug (#284) (#5270) Fixed undefined behavior in sequential or operator. Underlying parsers order of execution was dependent on compiler (#310) Spirit was accidentally relaying on types typedef of boost::optional. The typedef was removed in the new optional implementation (#271) (#12349) Fixed problems with BOOST_SPIRIT_NO_PREDEFINED_TERMINALS (attr_cast, confix, distinct, keywords, and flush_multi_pass) (#314) (#13311) Added missing copy assignment operator to hold_any (#361) (#8268) Spirit.Qi: Fixed alternate operator (#201) (#271) (#12349) Fixed signed integer overflow in real parser (#245) Fixed overflow problem in uint_parser<signed T> (#297) Fixed get_current_line, get_line_start, and added get_line_end (#304) Permutations parser were always initializing optionals (#319) (#12473) Changed iterator concept static assert from ForwardIterator to ReadableIteratorConcept && ForwardTraversalConcept (#320) Added assertations to real parsers to ensure that the parse_frac_n from user defined real policy does not return negative values and also to prevent static analyzers false-positives (#358) Spirit.Karma: Fixed alternate operator (#271) Fixed no_buffering_policy missing copy constructor (#261) The ostream_iterator was inheriting std::iterator which is deprecated in C++17 (#345) Spirit.Lex: Store id as promoted type to allow out-of-enum values (#247) Fixed C2001 'newline in constant' warning in generated lexers (#324) (#11540) Spirit.Classic: Fixed remove_reference usage without a namespace in Phoenix (#274) Fixed std::complex usage without the include (#273) Fixed compilation of match<T &> (#275) Fixed compilation with BOOST_DISABLE_THREADS defined (#323) (#12639) Increment scanner through iterator policy (#336) (#7371) Removed deprecated in C++17 std::iterator usage (#345) Stacktrace: Async safe dumping into files on Windows OS was causing hangs on some platforms and now is disabled #33. Users are encouraged to update to the latest Boost release. ContainerHash library is now used to reduce dependencies. Minor fixes (including #31, #38, #39, #40, #42). Test: Boost.test v3.7 see the Changes log for more details. Breaking changes Adding test cases with the same name to the same test suite is now reported as an error. See the changes log for more details. New feature: Colour output on by default and available on Windows, Improved and clearer command line help BOOST_AUTO_TEST_CASE_TEMPLATE now accepts a sequence of types in an std::tuple Bug fixes and pull requests: Trac tickets: #12092, #12596, #12597, #12969, #13058, #13149, #13170 Trac tickets: #13181, #13371, #13387, #13398, #13407, #13435, #13443 Pull requests: #112, #118, #118, #121, #122, #125, #127 TypeIndex: ContainerHash library is now used to reduce dependencies. Minor fixes (including #17) TypeTraits: Added new traits detected, detected_or, is_detected, is_detected_convertible, is_detected_exact, is_complete. Added greatly improved code for detecting binary operators. Add assertions for completeness to traits which require complete types as arguments: this prevents various traits from giving eroneous results from incomplete types. Fix minor issue with mpl compatibility, see #12212. Add macro to indicate when is_constructible is fully implemented, see #12003. Update is_function and is_member_function_pointer to work correctly with C++17 noexcept specifications. Add workaround for is_default_constructible and std::pair. Added fallback for is_nothrow_swappable on pre-C++11 compilers. Utility: Breaking change: <boost/utility.hpp> header no longer includes boost::next and boost::prior as they have been moved to the iterator module. Instead include <boost/next_prior.hpp>. Other uses of <boost/utility.hpp> are discouraged, it's better to use the header for the specific functionality instead. Unordered: Template deduction guides. Standard conforming noexcept specifications for swap, operator= and node handles. Add element_type to iterators, so that std::pointer_traits will work. Support std::piecewise_construct on recent Visual C++ and Dinkumware libraries. Use std::iterator_traits rather than the boost iterator traits in order to remove dependency on Boost.Iterator. Iterators no longer inherit from std::iterator, as it's deprecated (PR#7). More detail in the library change log. Units: Fix sqrt for scaled units #10270 #27 Add constexpr support #22 minor documentation fixes Uuid: Breaking change: random_generator is no longer copyable (#61) Optimized random_generator to use OS-provided entropy directly (PR#53) Provide random_generator_mt19937 for bulk UUID generation Handle entropy acquisition errors instead of ignoring them Support for Windows UWP (#24) Support for CloudABI Variant: Substitute function arguments on compilers with variadic templates support and do not generate substitution metafunctions using preprocessor #42, #46. Many thanks to Nikita Kniazev for providing an initial fix. Perfect forwarding for passing visitor in apply_visitor #40, #13288. Many thanks to Paweł Dac! Minor fixes (including #41, #44) Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.3.0 GCC, C++17: 7.2.0 Intel, C++14: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3, 4.8.1, 4.9.3 GCC, C++14: 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 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 4.9.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.0, 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.3.0 GCC, C++17: 7.2.0 Intel, C++14: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3, 4.8.1, 4.9.3 GCC, C++14: 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 FreeBSD: Clang: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 Acknowledgements Beman Dawes, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted over 6 years ago
Note about the new Visual Studio release Visual Studio 15.5 was released too late for us to test this release with it. New Libraries Beast: Portable HTTP, WebSocket, ... [More] and network operations using only C++11 and Boost.Asio, from Vinnie Falco. CallableTraits: A spiritual successor to Boost.FunctionTypes, Boost.CallableTraits is a header-only C++11 library for the compile-time inspection and manipulation of all 'callable' types. Additional support for C++17 features, from Barrett Adair. Mp11: A C++11 metaprogramming library, from Peter Dimov. Updated Libraries Asio: Implemented interface changes to reflect the Networking TS (N4656). See the list of new interfaces and, where applicable, the corresponding old interfaces that have been superseded. The service template parameters, and the corresponding classes, are disabled by default. For example, instead of basic_socket<Protocol, SocketService> we now have simply basic_socket<Protocol>. The old interface can be enabled by defining the BOOST_ASIO_ENABLE_OLD_SERVICES macro. Removed previously deprecated functions. Added support for customised handler tracking. Added reactor-related (i.e. descriptor readiness) events to handler tracking. Added special "concurrency hint" values that may be used to disable locking on a per io_context basis. Enabled perfect forwarding for the first ssl::stream<> constructor argument. Added ability to release ownership of the underlying native socket. (Requires Windows 8.1 or later when using the I/O completion port backend.) Atomic: Implemented a set of experimental extended atomic operations for integral types: fetch_negate, fetch_complement - atomically replaces the value with a negated or binary complemented value and returns the original value opaque_<op> - equivalent to fetch_<op> except that it doesn't return the original value <op>_and_test - atomically applies <op> and returns true if the result is zero. Note: The result of these operations will change to the opposite in Boost 1.67. The code that uses these functions will need to be updated. bit_test_and_set, bit_test_and_reset, bit_test_and_complement - atomically sets, resets or complements the specified bit and returns the original value of the bit Following C++17 (P0558R1), arithmetic operations for pointers to non-object types are no longer provided. Also following C++17 exposed atomic<T>::value_type and atomic<T>::difference_type member typedefs, where applicable, to the user's code. Improved compatibility with gcc 7. In particular, using 128-bit operations on x86-64 should no longer require linking with libatomic (the compiler-supplied library). DateTime: The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK. Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here). Fiber: synchronization with CUDA streams synchronization with ROCm/HIP streams Format: Improvements: Accept new conversion specifiers: a: sets flags fixed | scientific (i.e. hexfloat) b: sets flag boolalpha A: same as a plus flag uppercase F: same as f plus flag uppercase 42 Accept new argument types j and z from ISO C99 (parsed and ignored like all others). 44 Accept new argument types I, I32, I64, and w from Microsoft (parsed and ignored like all others). 33 Added a development tool called format_matrix that exercises as many different combinations of format strings as possible and logs them to a file: helps prevent regressions in between boost releases allows for comparison against snprintf Bugfixes: 36 Safely allow volatile arguments to be used with operator% 4636 Explicit clamping provided to allow MSVC /RTCc to succeed 7477 Fix compatibility with MSVC /Za 10324 Const-correct cast issue resolved 11632 Fix -fsanitize=undefined issue in alt_sstream.hpp Fusion: PR#149 isspace(c) is not a macro in Dinkum clib for VxWorks, thanks to Brian Kuhl(@kuhlenough). PR#150 Remove circular preprocessor include, thanks to Gregor Jasny(@gjasny). PR#151 Change base of fusion::tuple. PR#153 Fixed compile error with std::array. PR#154 Fixed bugs nesting and copying on c++03. Geometry: Improvements: Add distance for geographic PointLike/AnyGeometry. Bugfixes: Fixes in results of union/intersection/difference which could be incorrect in very complex cases Fixes in validity of union/intersection/difference/buffer Fixes in set and relational operations for non-cartesian coordinate systems. Iterator: next()/prior() functions now support user's iterators that don't specify nested types such as iterator_category, difference_type, etc. and instead specialize std::iterator_traits to define those types. The compiler must support C++17-compatible std::iterator_traits for this to work. Log: Bug fixes: Fixed a bug in file_collector::scan_for_files that could cause incorrectly named log files in the target directory after the user's application restart. See changelog for more details. Math: New Features: Add Gauss and Gauss-Kronrod quadrature routines. Add double-exponential (tanh-sinh, exp-sinh and sinh-sinh) quadrature routines. Add Chebyshev polynomial evaluation, roots, integration, differentiation, and interpolation routines. Multi-index Containers: Made modify and modify_key more robust so that the modified element is erased if the modifier throws or the rollback functor does not properly restore the element (full discussion at ticket #12542). This is technically backwards incompatible; for instance, the following code: c.modify(c.begin(),[](auto&){throw 0;}); keeps the container c untouched in former versions of Boost whereas now c.begin() is erased. Thanks to Jon Kalb for raising the issue. Maintenance fixes. Optional: On newer compilers optional is now trivially-copyable for scalar Ts. This uses a different storage (just T rather than aligned_storage). We require the compiler to support defaulted functions. Changed the implementation of operator== to get rid of the -Wmaybe-uninitialized false-positive warning from GCC. PolyCollection: Boost.PolyCollection has been backported to GCC 4.8 to 4.9 and Clang 3.3 to 3.6. The version of libstdc++-v3 shipped with GCC 4.8 (which can also be used by Clang) has deficiencies that result in the following limitations when using Boost.PolyCollection: Stateful allocators are not properly supported. Allocator-extended move construction decays to allocator-extended copy construction. Copy construction crashes if an exception is thrown during element copying. Maintenance fixes. Predef: Improved Windows Universal Platform detection. (from James E. King, III) Add detection for CloudABI with cloudlibc. (from James E. King, III) Various other bug fixes. Regex: Bug fixes: Numerous small fixes for security issues discovered by de-fuzzing. Stacktrace: Now works out-of-the-box on MinGW-w64. Now works on MinGW (without -w64) if libbacktrace is properly installed. See "MinGW specific notes" section in documentation for more info. Thread: Bugs Fixes #12323 windows - boost/thread/win32/mfc_thread_init.hpp has wrong signature for _pRawDllMainOrig #12730 windows - static threads library is incompatible with MSVC 2017 RC #12976 Boost Thread Executors documentation mistakes #12949 using sleep_for in a thread context without including boost/thread/thread.hpp yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC is defined #13019 ABI compatibility for BOOST_THREAD_PROVIDES_INTERRUPTIONS incomplete #13069 Boost unit test "sync_pq_multi_thread_p_lib.exe" hung in thread library #13163 boost::detail::heap_new does not have a variadic variant #13226 getpagesize() is deprecated since 199506L #132 VS 2017.4 Preview deadlocks on Test 10964 #133 windows - Spurious timing test failures on windows #134 VS 2017.4 Preview deadlock in sync_pq_multi_thread_p_lib.exe #135 VS 2017.4 Preview test_scheduled_tp_p.exe deadlock #136 VS 2017.4 Preview test_scheduler_p.exe deadlock #137 VS 2017.4 Preview executor_ex.exe deadlock #143 Failures on msvc-12.0 #145 Clang build error with BOOST_THREAD_ATTRIBUTE_MAY_ALIAS New Experimental Feature #116 [Proposal] Add APIs for deferred set_value/exception Utility: boost/next_prior.hpp has been moved to Boost.Iterator. No changes needed to the user's code. Uuid: Improvements: 26 Refactored name_generator to support a configurable hash provider concept and provide an optional MD5 hash implementation per RFC-4122. This will make it easier to support whatever becomes the next standard hash algorithm. 34 Added RFC-4122 namespaces in boost::uuids::ns. Bugfixes: 8630 11482 12253 Various deficiencies in string_generator were resolved. 10665 name_generator::operator() is now const, matching docs. Detail headers were moved into the detail subdirectory. No changes needed to user's code, however you may get build warnings if you use the old header location. Variant: boost::apply_visitor now does perfect forwarding of visitables #6971. Great thanks to Levon Tarakchyan for implementing this feature. Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1, 8.0.0 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3, 4.8.1, 4.9.3 GCC, C++14: 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Acknowledgements Beman Dawes, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted over 6 years ago
Note about the new Visual Studio release Visual Studio 15.5 was released too late for us to test this release with it. New Libraries Beast: Portable HTTP, WebSocket, ... [More] and network operations using only C++11 and Boost.Asio, from Vinnie Falco. CallableTraits: A spiritual successor to Boost.FunctionTypes, Boost.CallableTraits is a header-only C++11 library for the compile-time inspection and manipulation of all 'callable' types. Additional support for C++17 features, from Barrett Adair. Mp11: A C++11 metaprogramming library, from Peter Dimov. Updated Libraries Asio: Implemented interface changes to reflect the Networking TS (N4656). See the list of new interfaces and, where applicable, the corresponding old interfaces that have been superseded. The service template parameters, and the corresponding classes, are disabled by default. For example, instead of basic_socket<Protocol, SocketService> we now have simply basic_socket<Protocol>. The old interface can be enabled by defining the BOOST_ASIO_ENABLE_OLD_SERVICES macro. Removed previously deprecated functions. Added support for customised handler tracking. Added reactor-related (i.e. descriptor readiness) events to handler tracking. Added special "concurrency hint" values that may be used to disable locking on a per io_context basis. Enabled perfect forwarding for the first ssl::stream<> constructor argument. Added ability to release ownership of the underlying native socket. (Requires Windows 8.1 or later when using the I/O completion port backend.) Atomic: Implemented a set of experimental extended atomic operations for integral types: fetch_negate, fetch_complement - atomically replaces the value with a negated or binary complemented value and returns the original value opaque_<op> - equivalent to fetch_<op> except that it doesn't return the original value <op>_and_test - atomically applies <op> and returns true if the result is zero bit_test_and_set, bit_test_and_reset, bit_test_and_complement - atomically sets, resets or complements the specified bit and returns the original value of the bit Following C++17 (P0558R1), arithmetic operations for pointers to non-object types are no longer provided. Also following C++17 exposed atomic<T>::value_type and atomic<T>::difference_type member typedefs, where applicable, to the user's code. Improved compatibility with gcc 7. In particular, using 128-bit operations on x86-64 should no longer require linking with libatomic (the compiler-supplied library). DateTime: The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK. Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here). Fiber: synchronization with CUDA streams synchronization with ROCm/HIP streams Format: Improvements: Accept new conversion specifiers: a: sets flags fixed | scientific (i.e. hexfloat) b: sets flag boolalpha A: same as a plus flag uppercase F: same as f plus flag uppercase 42 Accept new argument types j and z from ISO C99 (parsed and ignored like all others). 44 Accept new argument types I, I32, I64, and w from Microsoft (parsed and ignored like all others). 33 Added a development tool called format_matrix that exercises as many different combinations of format strings as possible and logs them to a file: helps prevent regressions in between boost releases allows for comparison against snprintf Bugfixes: 36 Safely allow volatile arguments to be used with operator% 4636 Explicit clamping provided to allow MSVC /RTCc to succeed 7477 Fix compatibility with MSVC /Za 10324 Const-correct cast issue resolved 11632 Fix -fsanitize=undefined issue in alt_sstream.hpp Fusion: PR#149 isspace(c) is not a macro in Dinkum clib for VxWorks, thanks to Brian Kuhl(@kuhlenough). PR#150 Remove circular preprocessor include, thanks to Gregor Jasny(@gjasny). PR#151 Change base of fusion::tuple. PR#153 Fixed compile error with std::array. PR#154 Fixed bugs nesting and copying on c++03. Geometry: Improvements: Add distance for geographic PointLike/AnyGeometry. Bugfixes: Fixes in results of union/intersection/difference which could be incorrect in very complex cases Fixes in validity of union/intersection/difference/buffer Fixes in set and relational operations for non-cartesian coordinate systems. Iterator: next()/prior() functions now support user's iterators that don't specify nested types such as iterator_category, difference_type, etc. and instead specialize std::iterator_traits to define those types. The compiler must support C++17-compatible std::iterator_traits for this to work. Log: Bug fixes: Fixed a bug in file_collector::scan_for_files that could cause incorrectly named log files in the target directory after the user's application restart. See changelog for more details. Math: New Features: Add Gauss and Gauss-Kronrod quadrature routines. Add double-exponential (tanh-sinh, exp-sinh and sinh-sinh) quadrature routines. Add Chebyshev polynomial evaluation, roots, integration, differentiation, and interpolation routines. Multi-index Containers: Made modify and modify_key more robust so that the modified element is erased if the modifier throws or the rollback functor does not properly restore the element (full discussion at ticket #12542). This is technically backwards incompatible; for instance, the following code: c.modify(c.begin(),[](auto&){throw 0;}); keeps the container c untouched in former versions of Boost whereas now c.begin() is erased. Thanks to Jon Kalb for raising the issue. Maintenance fixes. Optional: On newer compilers optional is now trivially-copyable for scalar Ts. This uses a different storage (just T rather than aligned_storage). We require the compiler to support defaulted functions. Changed the implementation of operator== to get rid of the -Wmaybe-uninitialized false-positive warning from GCC. PolyCollection: Boost.PolyCollection has been backported to GCC 4.8 to 4.9 and Clang 3.3 to 3.6. The version of libstdc++-v3 shipped with GCC 4.8 (which can also be used by Clang) has deficiencies that result in the following limitations when using Boost.PolyCollection: Stateful allocators are not properly supported. Allocator-extended move construction decays to allocator-extended copy construction. Copy construction crashes if an exception is thrown during element copying. Maintenance fixes. Predef: Improved Windows Universal Platform detection. (from James E. King, III) Add detection for CloudABI with cloudlibc. (from James E. King, III) Various other bug fixes. Regex: Bug fixes: Numerous small fixes for security issues discovered by de-fuzzing. Stacktrace: Now works out-of-the-box on MinGW-w64. Now works on MinGW (without -w64) if libbacktrace is properly installed. See "MinGW specific notes" section in documentation for more info. Thread: Bugs Fixes #12323 windows - boost/thread/win32/mfc_thread_init.hpp has wrong signature for _pRawDllMainOrig #12730 windows - static threads library is incompatible with MSVC 2017 RC #12976 Boost Thread Executors documentation mistakes #12949 using sleep_for in a thread context without including boost/thread/thread.hpp yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC is defined #13019 ABI compatibility for BOOST_THREAD_PROVIDES_INTERRUPTIONS incomplete #13069 Boost unit test "sync_pq_multi_thread_p_lib.exe" hung in thread library #13163 boost::detail::heap_new does not have a variadic variant #13226 getpagesize() is deprecated since 199506L #132 VS 2017.4 Preview deadlocks on Test 10964 #133 windows - Spurious timing test failures on windows #134 VS 2017.4 Preview deadlock in sync_pq_multi_thread_p_lib.exe #135 VS 2017.4 Preview test_scheduled_tp_p.exe deadlock #136 VS 2017.4 Preview test_scheduler_p.exe deadlock #137 VS 2017.4 Preview executor_ex.exe deadlock #143 Failures on msvc-12.0 #145 Clang build error with BOOST_THREAD_ATTRIBUTE_MAY_ALIAS New Experimental Feature #116 [Proposal] Add APIs for deferred set_value/exception Utility: boost/next_prior.hpp has been moved to Boost.Iterator. No changes needed to the user's code. Uuid: Improvements: 26 Refactored name_generator to support a configurable hash provider concept and provide an optional MD5 hash implementation per RFC-4122. This will make it easier to support whatever becomes the next standard hash algorithm. 34 Added RFC-4122 namespaces in boost::uuids::ns. Bugfixes: 8630 11482 12253 Various deficiencies in string_generator were resolved. 10665 name_generator::operator() is now const, matching docs. Detail headers were moved into the detail subdirectory. No changes needed to user's code, however you may get build warnings if you use the old header location. Variant: boost::apply_visitor now does perfect forwarding of visitables #6971. Great thanks to Levon Tarakchyan for implementing this feature. Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1, 8.0.0 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3, 4.8.1, 4.9.3 GCC, C++14: 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Acknowledgements Beman Dawes, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted over 6 years ago
Note about the new Visual Studio release Visual Studio 15.5 was released too late for us to test this release with it. New Libraries Beast: Portable HTTP, WebSocket, ... [More] and network operations using only C++11 and Boost.Asio, from Vinnie Falco. CallableTraits: A spiritual successor to Boost.FunctionTypes, Boost.CallableTraits is a header-only C++11 library for the compile-time inspection and manipulation of all 'callable' types. Additional support for C++17 features, from Barrett Adair. Mp11: A C++11 metaprogramming library, from Peter Dimov. Updated Libraries Asio: Implemented interface changes to reflect the Networking TS (N4656). See the list of new interfaces and, where applicable, the corresponding old interfaces that have been superseded. The service template parameters, and the corresponding classes, are disabled by default. For example, instead of basic_socket<Protocol, SocketService> we now have simply basic_socket<Protocol>. The old interface can be enabled by defining the BOOST_ASIO_ENABLE_OLD_SERVICES macro. Removed previously deprecated functions. Added support for customised handler tracking. Added reactor-related (i.e. descriptor readiness) events to handler tracking. Added special "concurrency hint" values that may be used to disable locking on a per io_context basis. Enabled perfect forwarding for the first ssl::stream<> constructor argument. Added ability to release ownership of the underlying native socket. (Requires Windows 8.1 or later when using the I/O completion port backend.) Atomic: Implemented a set of experimental extended atomic operations for integral types: fetch_negate, fetch_complement - atomically replaces the value with a negated or binary complemented value and returns the original value opaque_<op> - equivalent to fetch_<op> except that it doesn't return the original value <op>_and_test - atomically applies <op> and returns true if the result is zero. Note: The result of these operations will change to the opposite in Boost 1.67. The code that uses these functions will need to be updated. bit_test_and_set, bit_test_and_reset, bit_test_and_complement - atomically sets, resets or complements the specified bit and returns the original value of the bit Following C++17 (P0558R1), arithmetic operations for pointers to non-object types are no longer provided. Also following C++17 exposed atomic<T>::value_type and atomic<T>::difference_type member typedefs, where applicable, to the user's code. Improved compatibility with gcc 7. In particular, using 128-bit operations on x86-64 should no longer require linking with libatomic (the compiler-supplied library). DateTime: The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK. Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here). Fiber: synchronization with CUDA streams synchronization with ROCm/HIP streams Format: Improvements: Accept new conversion specifiers: a: sets flags fixed | scientific (i.e. hexfloat) b: sets flag boolalpha A: same as a plus flag uppercase F: same as f plus flag uppercase 42 Accept new argument types j and z from ISO C99 (parsed and ignored like all others). 44 Accept new argument types I, I32, I64, and w from Microsoft (parsed and ignored like all others). 33 Added a development tool called format_matrix that exercises as many different combinations of format strings as possible and logs them to a file: helps prevent regressions in between boost releases allows for comparison against snprintf Bugfixes: 36 Safely allow volatile arguments to be used with operator% 4636 Explicit clamping provided to allow MSVC /RTCc to succeed 7477 Fix compatibility with MSVC /Za 10324 Const-correct cast issue resolved 11632 Fix -fsanitize=undefined issue in alt_sstream.hpp Fusion: PR#149 isspace(c) is not a macro in Dinkum clib for VxWorks, thanks to Brian Kuhl(@kuhlenough). PR#150 Remove circular preprocessor include, thanks to Gregor Jasny(@gjasny). PR#151 Change base of fusion::tuple. PR#153 Fixed compile error with std::array. PR#154 Fixed bugs nesting and copying on c++03. Geometry: Improvements: Add distance for geographic PointLike/AnyGeometry. Bugfixes: Fixes in results of union/intersection/difference which could be incorrect in very complex cases Fixes in validity of union/intersection/difference/buffer Fixes in set and relational operations for non-cartesian coordinate systems. Iterator: next()/prior() functions now support user's iterators that don't specify nested types such as iterator_category, difference_type, etc. and instead specialize std::iterator_traits to define those types. The compiler must support C++17-compatible std::iterator_traits for this to work. Log: Bug fixes: Fixed a bug in file_collector::scan_for_files that could cause incorrectly named log files in the target directory after the user's application restart. See changelog for more details. Math: New Features: Add Gauss and Gauss-Kronrod quadrature routines. Add double-exponential (tanh-sinh, exp-sinh and sinh-sinh) quadrature routines. Add Chebyshev polynomial evaluation, roots, integration, differentiation, and interpolation routines. Multi-index Containers: Made modify and modify_key more robust so that the modified element is erased if the modifier throws or the rollback functor does not properly restore the element (full discussion at ticket #12542). This is technically backwards incompatible; for instance, the following code: c.modify(c.begin(),[](auto&){throw 0;}); keeps the container c untouched in former versions of Boost whereas now c.begin() is erased. Thanks to Jon Kalb for raising the issue. Maintenance fixes. Optional: On newer compilers optional is now trivially-copyable for scalar Ts. This uses a different storage (just T rather than aligned_storage). We require the compiler to support defaulted functions. Changed the implementation of operator== to get rid of the -Wmaybe-uninitialized false-positive warning from GCC. PolyCollection: Boost.PolyCollection has been backported to GCC 4.8 to 4.9 and Clang 3.3 to 3.6. The version of libstdc++-v3 shipped with GCC 4.8 (which can also be used by Clang) has deficiencies that result in the following limitations when using Boost.PolyCollection: Stateful allocators are not properly supported. Allocator-extended move construction decays to allocator-extended copy construction. Copy construction crashes if an exception is thrown during element copying. Maintenance fixes. Predef: Improved Windows Universal Platform detection. (from James E. King, III) Add detection for CloudABI with cloudlibc. (from James E. King, III) Various other bug fixes. Regex: Bug fixes: Numerous small fixes for security issues discovered by de-fuzzing. Stacktrace: Now works out-of-the-box on MinGW-w64. Now works on MinGW (without -w64) if libbacktrace is properly installed. See "MinGW specific notes" section in documentation for more info. Thread: Bugs Fixes #12323 windows - boost/thread/win32/mfc_thread_init.hpp has wrong signature for _pRawDllMainOrig #12730 windows - static threads library is incompatible with MSVC 2017 RC #12976 Boost Thread Executors documentation mistakes #12949 using sleep_for in a thread context without including boost/thread/thread.hpp yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC is defined #13019 ABI compatibility for BOOST_THREAD_PROVIDES_INTERRUPTIONS incomplete #13069 Boost unit test "sync_pq_multi_thread_p_lib.exe" hung in thread library #13163 boost::detail::heap_new does not have a variadic variant #13226 getpagesize() is deprecated since 199506L #132 VS 2017.4 Preview deadlocks on Test 10964 #133 windows - Spurious timing test failures on windows #134 VS 2017.4 Preview deadlock in sync_pq_multi_thread_p_lib.exe #135 VS 2017.4 Preview test_scheduled_tp_p.exe deadlock #136 VS 2017.4 Preview test_scheduler_p.exe deadlock #137 VS 2017.4 Preview executor_ex.exe deadlock #143 Failures on msvc-12.0 #145 Clang build error with BOOST_THREAD_ATTRIBUTE_MAY_ALIAS New Experimental Feature #116 [Proposal] Add APIs for deferred set_value/exception Utility: boost/next_prior.hpp has been moved to Boost.Iterator. No changes needed to the user's code. Uuid: Improvements: 26 Refactored name_generator to support a configurable hash provider concept and provide an optional MD5 hash implementation per RFC-4122. This will make it easier to support whatever becomes the next standard hash algorithm. 34 Added RFC-4122 namespaces in boost::uuids::ns. Bugfixes: 8630 11482 12253 Various deficiencies in string_generator were resolved. 10665 name_generator::operator() is now const, matching docs. Detail headers were moved into the detail subdirectory. No changes needed to user's code, however you may get build warnings if you use the old header location. Variant: boost::apply_visitor now does perfect forwarding of visitables #6971. Great thanks to Levon Tarakchyan for implementing this feature. Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1, 8.0.0 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3, 4.8.1, 4.9.3 GCC, C++14: 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Acknowledgements Beman Dawes, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted over 6 years ago
Note about the new Visual Studio release Visual Studio 15.5 was released too late for us to test this release with it. New Libraries Beast: Portable HTTP, WebSocket, ... [More] and network operations using only C++11 and Boost.Asio, from Vinnie Falco. CallableTraits: A spiritual successor to Boost.FunctionTypes, Boost.CallableTraits is a header-only C++11 library for the compile-time inspection and manipulation of all 'callable' types. Additional support for C++17 features, from Barrett Adair. Mp11: A C++11 metaprogramming library, from Peter Dimov. Updated Libraries Asio: Implemented interface changes to reflect the Networking TS (N4656). See the list of new interfaces and, where applicable, the corresponding old interfaces that have been superseded. The service template parameters, and the corresponding classes, are disabled by default. For example, instead of basic_socket<Protocol, SocketService> we now have simply basic_socket<Protocol>. The old interface can be enabled by defining the BOOST_ASIO_ENABLE_OLD_SERVICES macro. Removed previously deprecated functions. Added support for customised handler tracking. Added reactor-related (i.e. descriptor readiness) events to handler tracking. Added special "concurrency hint" values that may be used to disable locking on a per io_context basis. Enabled perfect forwarding for the first ssl::stream<> constructor argument. Added ability to release ownership of the underlying native socket. (Requires Windows 8.1 or later when using the I/O completion port backend.) Atomic: Implemented a set of experimental extended atomic operations for integral types: fetch_negate, fetch_complement - atomically replaces the value with a negated or binary complemented value and returns the original value opaque_<op> - equivalent to fetch_<op> except that it doesn't return the original value <op>_and_test - atomically applies <op> and returns true if the result is zero. Note: The result of these operations will change to the opposite in Boost 1.67. The code that uses these functions will need to be updated. bit_test_and_set, bit_test_and_reset, bit_test_and_complement - atomically sets, resets or complements the specified bit and returns the original value of the bit Following C++17 (P0558R1), arithmetic operations for pointers to non-object types are no longer provided. Also following C++17 exposed atomic<T>::value_type and atomic<T>::difference_type member typedefs, where applicable, to the user's code. Improved compatibility with gcc 7. In particular, using 128-bit operations on x86-64 should no longer require linking with libatomic (the compiler-supplied library). DateTime: The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK. Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here). Fiber: synchronization with CUDA streams synchronization with ROCm/HIP streams Format: Improvements: Accept new conversion specifiers: a: sets flags fixed | scientific (i.e. hexfloat) b: sets flag boolalpha A: same as a plus flag uppercase F: same as f plus flag uppercase 42 Accept new argument types j and z from ISO C99 (parsed and ignored like all others). 44 Accept new argument types I, I32, I64, and w from Microsoft (parsed and ignored like all others). 33 Added a development tool called format_matrix that exercises as many different combinations of format strings as possible and logs them to a file: helps prevent regressions in between boost releases allows for comparison against snprintf Bugfixes: 36 Safely allow volatile arguments to be used with operator% 4636 Explicit clamping provided to allow MSVC /RTCc to succeed 7477 Fix compatibility with MSVC /Za 10324 Const-correct cast issue resolved 11632 Fix -fsanitize=undefined issue in alt_sstream.hpp Fusion: PR#149 isspace(c) is not a macro in Dinkum clib for VxWorks, thanks to Brian Kuhl(@kuhlenough). PR#150 Remove circular preprocessor include, thanks to Gregor Jasny(@gjasny). PR#151 Change base of fusion::tuple. PR#153 Fixed compile error with std::array. PR#154 Fixed bugs nesting and copying on c++03. Geometry: Improvements: Add distance for geographic PointLike/AnyGeometry. Bugfixes: Fixes in results of union/intersection/difference which could be incorrect in very complex cases Fixes in validity of union/intersection/difference/buffer Fixes in set and relational operations for non-cartesian coordinate systems. Iterator: next()/prior() functions now support user's iterators that don't specify nested types such as iterator_category, difference_type, etc. and instead specialize std::iterator_traits to define those types. The compiler must support C++17-compatible std::iterator_traits for this to work. Log: Bug fixes: Fixed a bug in file_collector::scan_for_files that could cause incorrectly named log files in the target directory after the user's application restart. See changelog for more details. Math: New Features: Add Gauss and Gauss-Kronrod quadrature routines. Add double-exponential (tanh-sinh, exp-sinh and sinh-sinh) quadrature routines. Add Chebyshev polynomial evaluation, roots, integration, differentiation, and interpolation routines. Multi-index Containers: Made modify and modify_key more robust so that the modified element is erased if the modifier throws or the rollback functor does not properly restore the element (full discussion at ticket #12542). This is technically backwards incompatible; for instance, the following code: c.modify(c.begin(),[](auto&){throw 0;}); keeps the container c untouched in former versions of Boost whereas now c.begin() is erased. Thanks to Jon Kalb for raising the issue. Maintenance fixes. Optional: On newer compilers optional is now trivially-copyable for scalar Ts. This uses a different storage (just T rather than aligned_storage). We require the compiler to support defaulted functions. Changed the implementation of operator== to get rid of the -Wmaybe-uninitialized false-positive warning from GCC. PolyCollection: Boost.PolyCollection has been backported to GCC 4.8 to 4.9 and Clang 3.3 to 3.6. The version of libstdc++-v3 shipped with GCC 4.8 (which can also be used by Clang) has deficiencies that result in the following limitations when using Boost.PolyCollection: Stateful allocators are not properly supported. Allocator-extended move construction decays to allocator-extended copy construction. Copy construction crashes if an exception is thrown during element copying. Maintenance fixes. Predef: Improved Windows Universal Platform detection. (from James E. King, III) Add detection for CloudABI with cloudlibc. (from James E. King, III) Various other bug fixes. Regex: Bug fixes: Numerous small fixes for security issues discovered by de-fuzzing. Stacktrace: Now works out-of-the-box on MinGW-w64. Now works on MinGW (without -w64) if libbacktrace is properly installed. See "MinGW specific notes" section in documentation for more info. Thread: Bugs Fixes #12323 windows - boost/thread/win32/mfc_thread_init.hpp has wrong signature for _pRawDllMainOrig #12730 windows - static threads library is incompatible with MSVC 2017 RC #12976 Boost Thread Executors documentation mistakes #12949 using sleep_for in a thread context without including boost/thread/thread.hpp yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC is defined #13019 ABI compatibility for BOOST_THREAD_PROVIDES_INTERRUPTIONS incomplete #13069 Boost unit test "sync_pq_multi_thread_p_lib.exe" hung in thread library #13163 boost::detail::heap_new does not have a variadic variant #13226 getpagesize() is deprecated since 199506L #132 VS 2017.4 Preview deadlocks on Test 10964 #133 windows - Spurious timing test failures on windows #134 VS 2017.4 Preview deadlock in sync_pq_multi_thread_p_lib.exe #135 VS 2017.4 Preview test_scheduled_tp_p.exe deadlock #136 VS 2017.4 Preview test_scheduler_p.exe deadlock #137 VS 2017.4 Preview executor_ex.exe deadlock #143 Failures on msvc-12.0 #145 Clang build error with BOOST_THREAD_ATTRIBUTE_MAY_ALIAS New Experimental Feature #116 [Proposal] Add APIs for deferred set_value/exception Utility: boost/next_prior.hpp has been moved to Boost.Iterator. No changes needed to the user's code. Uuid: Improvements: 26 Refactored name_generator to support a configurable hash provider concept and provide an optional MD5 hash implementation per RFC-4122. This will make it easier to support whatever becomes the next standard hash algorithm. 34 Added RFC-4122 namespaces in boost::uuids::ns. Bugfixes: 8630 11482 12253 Various deficiencies in string_generator were resolved. 10665 name_generator::operator() is now const, matching docs. Detail headers were moved into the detail subdirectory. No changes needed to user's code, however you may get build warnings if you use the old header location. Variant: boost::apply_visitor now does perfect forwarding of visitables #6971. Great thanks to Levon Tarakchyan for implementing this feature. Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1, 8.0.0 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3, 4.8.1, 4.9.3 GCC, C++14: 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Acknowledgements Beman Dawes, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted over 6 years ago
Note about the new Visual Studio release Visual Studio 15.5 was released too late for us to test this release with it. New Libraries Beast: Portable HTTP, WebSocket, ... [More] and network operations using only C++11 and Boost.Asio, from Vinnie Falco. CallableTraits: A spiritual successor to Boost.FunctionTypes, Boost.CallableTraits is a header-only C++11 library for the compile-time inspection and manipulation of all 'callable' types. Additional support for C++17 features, from Barrett Adair. Mp11: A C++11 metaprogramming library, from Peter Dimov. Updated Libraries Asio: Implemented interface changes to reflect the Networking TS (N4656). See the list of new interfaces and, where applicable, the corresponding old interfaces that have been superseded. The service template parameters, and the corresponding classes, are disabled by default. For example, instead of basic_socket<Protocol, SocketService> we now have simply basic_socket<Protocol>. The old interface can be enabled by defining the BOOST_ASIO_ENABLE_OLD_SERVICES macro. Removed previously deprecated functions. Added support for customised handler tracking. Added reactor-related (i.e. descriptor readiness) events to handler tracking. Added special "concurrency hint" values that may be used to disable locking on a per io_context basis. Enabled perfect forwarding for the first ssl::stream<> constructor argument. Added ability to release ownership of the underlying native socket. (Requires Windows 8.1 or later when using the I/O completion port backend.) Atomic: Implemented a set of experimental extended atomic operations for integral types: fetch_negate, fetch_complement - atomically replaces the value with a negated or binary complemented value and returns the original value opaque_<op> - equivalent to fetch_<op> except that it doesn't return the original value <op>_and_test - atomically applies <op> and returns true if the result is zero bit_test_and_set, bit_test_and_reset, bit_test_and_complement - atomically sets, resets or complements the specified bit and returns the original value of the bit Following C++17 (P0558R1), arithmetic operations for pointers to non-object types are no longer provided. Also following C++17 exposed atomic<T>::value_type and atomic<T>::difference_type member typedefs, where applicable, to the user's code. Improved compatibility with gcc 7. In particular, using 128-bit operations on x86-64 should no longer require linking with libatomic (the compiler-supplied library). DateTime: The library has been converted to use Boost.WinAPI as the abstraction layer for Windows SDK. Fixed an integral overflow that could cause incorrect results when adding or subtracting many years from a date (see here). Fiber: synchronization with CUDA streams synchronization with ROCm/HIP streams Format: Improvements: Accept new conversion specifiers: a: sets flags fixed | scientific (i.e. hexfloat) b: sets flag boolalpha A: same as a plus flag uppercase F: same as f plus flag uppercase 42 Accept new argument types j and z from ISO C99 (parsed and ignored like all others). 44 Accept new argument types I, I32, I64, and w from Microsoft (parsed and ignored like all others). 33 Added a development tool called format_matrix that exercises as many different combinations of format strings as possible and logs them to a file: helps prevent regressions in between boost releases allows for comparison against snprintf Bugfixes: 36 Safely allow volatile arguments to be used with operator% 4636 Explicit clamping provided to allow MSVC /RTCc to succeed 7477 Fix compatibility with MSVC /Za 10324 Const-correct cast issue resolved 11632 Fix -fsanitize=undefined issue in alt_sstream.hpp Fusion: PR#149 isspace(c) is not a macro in Dinkum clib for VxWorks, thanks to Brian Kuhl(@kuhlenough). PR#150 Remove circular preprocessor include, thanks to Gregor Jasny(@gjasny). PR#151 Change base of fusion::tuple. PR#153 Fixed compile error with std::array. PR#154 Fixed bugs nesting and copying on c++03. Geometry: Improvements: Add distance for geographic PointLike/AnyGeometry. Bugfixes: Fixes in results of union/intersection/difference which could be incorrect in very complex cases Fixes in validity of union/intersection/difference/buffer Fixes in set and relational operations for non-cartesian coordinate systems. Iterator: next()/prior() functions now support user's iterators that don't specify nested types such as iterator_category, difference_type, etc. and instead specialize std::iterator_traits to define those types. The compiler must support C++17-compatible std::iterator_traits for this to work. Log: Bug fixes: Fixed a bug in file_collector::scan_for_files that could cause incorrectly named log files in the target directory after the user's application restart. See changelog for more details. Math: New Features: Add Gauss and Gauss-Kronrod quadrature routines. Add double-exponential (tanh-sinh, exp-sinh and sinh-sinh) quadrature routines. Add Chebyshev polynomial evaluation, roots, integration, differentiation, and interpolation routines. Multi-index Containers: Made modify and modify_key more robust so that the modified element is erased if the modifier throws or the rollback functor does not properly restore the element (full discussion at ticket #12542). This is technically backwards incompatible; for instance, the following code: c.modify(c.begin(),[](auto&){throw 0;}); keeps the container c untouched in former versions of Boost whereas now c.begin() is erased. Thanks to Jon Kalb for raising the issue. Maintenance fixes. Optional: On newer compilers optional is now trivially-copyable for scalar Ts. This uses a different storage (just T rather than aligned_storage). We require the compiler to support defaulted functions. Changed the implementation of operator== to get rid of the -Wmaybe-uninitialized false-positive warning from GCC. PolyCollection: Boost.PolyCollection has been backported to GCC 4.8 to 4.9 and Clang 3.3 to 3.6. The version of libstdc++-v3 shipped with GCC 4.8 (which can also be used by Clang) has deficiencies that result in the following limitations when using Boost.PolyCollection: Stateful allocators are not properly supported. Allocator-extended move construction decays to allocator-extended copy construction. Copy construction crashes if an exception is thrown during element copying. Maintenance fixes. Predef: Improved Windows Universal Platform detection. (from James E. King, III) Add detection for CloudABI with cloudlibc. (from James E. King, III) Various other bug fixes. Regex: Bug fixes: Numerous small fixes for security issues discovered by de-fuzzing. Stacktrace: Now works out-of-the-box on MinGW-w64. Now works on MinGW (without -w64) if libbacktrace is properly installed. See "MinGW specific notes" section in documentation for more info. Thread: Bugs Fixes #12323 windows - boost/thread/win32/mfc_thread_init.hpp has wrong signature for _pRawDllMainOrig #12730 windows - static threads library is incompatible with MSVC 2017 RC #12976 Boost Thread Executors documentation mistakes #12949 using sleep_for in a thread context without including boost/thread/thread.hpp yields incorrect behaviour when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC is defined #13019 ABI compatibility for BOOST_THREAD_PROVIDES_INTERRUPTIONS incomplete #13069 Boost unit test "sync_pq_multi_thread_p_lib.exe" hung in thread library #13163 boost::detail::heap_new does not have a variadic variant #13226 getpagesize() is deprecated since 199506L #132 VS 2017.4 Preview deadlocks on Test 10964 #133 windows - Spurious timing test failures on windows #134 VS 2017.4 Preview deadlock in sync_pq_multi_thread_p_lib.exe #135 VS 2017.4 Preview test_scheduled_tp_p.exe deadlock #136 VS 2017.4 Preview test_scheduler_p.exe deadlock #137 VS 2017.4 Preview executor_ex.exe deadlock #143 Failures on msvc-12.0 #145 Clang build error with BOOST_THREAD_ATTRIBUTE_MAY_ALIAS New Experimental Feature #116 [Proposal] Add APIs for deferred set_value/exception Utility: boost/next_prior.hpp has been moved to Boost.Iterator. No changes needed to the user's code. Uuid: Improvements: 26 Refactored name_generator to support a configurable hash provider concept and provide an optional MD5 hash implementation per RFC-4122. This will make it easier to support whatever becomes the next standard hash algorithm. 34 Added RFC-4122 namespaces in boost::uuids::ns. Bugfixes: 8630 11482 12253 Various deficiencies in string_generator were resolved. 10665 name_generator::operator() is now const, matching docs. Detail headers were moved into the detail subdirectory. No changes needed to user's code, however you may get build warnings if you use the old header location. Variant: boost::apply_visitor now does perfect forwarding of visitables #6971. Great thanks to Levon Tarakchyan for implementing this feature. Compilers Tested Boost's primary test compilers are: Linux: Clang: 3.0, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Boost's additional test compilers include: Linux: Clang: 3.0, 3.8.1, 4.0.1, 5.0.1 Clang, C++0x: 3.0 Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 5.0.1 Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.1 Clang, C++17: 5.0.1 GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.4.0, 7.2.0 GCC, C++0x: 4.4.7 GCC, C++11: 4.7.2, 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 7.2.0 GCC, C++14: 5.4.1, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.2.1, 8.0.0 GCC, C++17: 7.2.0 Intel: 18.0 OS X: Clang: 9.0.0 Clang, C++11: 9.0.0 Clang, C++14: 9.0.0 Clang, C++1z: 9.0.0 Windows: GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4 GCC, C++0x: 4.6.4 GCC, C++11: 4.7.3, 4.8.1, 4.9.3 GCC, C++14: 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: 4.0.0 Clang, C++11: 4.0.0 Clang, C++14: 4.0.0 Clang, C++1z: 4.0.0 QNX: QCC, C++0x: 4.4.2 QCC, C++11: 4.7.3 Acknowledgements Beman Dawes, Daniel James, Vladimir Prus and Marshall Clow managed this release. [Less]
Posted over 6 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 over 6 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 over 6 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. 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 over 6 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. 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]