Path to this page:
Subject: CVS commit: pkgsrc
From: Adam Ciarcinski
Date: 2018-04-29 22:41:12
Message id: 20180429204112.5597DFBEC@cvs.NetBSD.org
Log Message:
boost: updated to 1.67.0
Version 1.67.0:
New Libraries:
- Contract: Contract programming for C++.
- HOF: Higher-order functions for C++.
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.
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++.
More detail in the library change log.
- Context:
fix i386/macho routines to correctly return transfer_t in EAX/EDX
__sanitizer_finish_switch_fiber should be called directly after context switch
Clang on Windows : error: No best alternative for libs/context/build/asm_sources
fixing C2492 for execution_context (v1)
known bug: including all.hpp + <context-impl>ucontext/winfib causes error \
'forced_unwind: is not a member of boost::context::detail'
More info https://www.boost.org/users/history/version_1_67_0.html
Files: