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:
RevisionActionfile
1.16modifypkgsrc/devel/boost-build/Makefile
1.26modifypkgsrc/devel/boost-build/PLIST
1.38modifypkgsrc/devel/boost-build/buildlink3.mk
1.46modifypkgsrc/devel/boost-headers/Makefile
1.40modifypkgsrc/devel/boost-headers/PLIST
1.40modifypkgsrc/devel/boost-headers/buildlink3.mk
1.20modifypkgsrc/devel/boost-jam/bjam.mk
1.34modifypkgsrc/devel/boost-jam/buildlink3.mk
1.64modifypkgsrc/devel/boost-libs/Makefile
1.36modifypkgsrc/devel/boost-libs/PLIST
1.46modifypkgsrc/devel/boost-libs/buildlink3.mk
1.2modifypkgsrc/devel/boost-mpi/buildlink3.mk
1.9modifypkgsrc/devel/py-boost/Makefile
1.5modifypkgsrc/devel/py-boost/PLIST
1.11modifypkgsrc/devel/py-boost/buildlink3.mk
1.72modifypkgsrc/meta-pkgs/boost/Makefile.common
1.114modifypkgsrc/meta-pkgs/boost/distinfo
1.3modifypkgsrc/meta-pkgs/boost/patches/patch-boost_atomic_detail_ops_gcc_sparc.hpp
1.5modifypkgsrc/meta-pkgs/boost/patches/patch-boost_math_tools_config.hpp
1.2modifypkgsrc/meta-pkgs/boost/patches/patch-boost_test_impl_execution__monitor.ipp
1.2modifypkgsrc/meta-pkgs/boost/patches/patch-boostcpp.jam
1.5removepkgsrc/devel/boost-libs/PLIST.Linux
1.4removepkgsrc/meta-pkgs/boost/patches/patch-boost_asio_detail_config.hpp
1.3removepkgsrc/meta-pkgs/boost/patches/patch-tools_build_src_tools_gcc.jam