Subject: CVS commit: pkgsrc
From: Adam Ciarcinski
Date: 2020-05-06 15:33:53
Message id: 20200506133353.DFB47FB27@cvs.NetBSD.org

Log Message:
boost: updated to 1.73.0

1.73.0:

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.

New Libraries
-------------
Nowide:
Standard library functions with UTF-8 API on Windows, from Artyom Beilis.

StaticString:
A dynamically resizable string of characters with compile-time fixed capacity \ 
and contiguous embedded storage, from Vinnie Falco and Krystian Stasiowski

Updated Libraries
-----------------
Align:
* Update aligned_alloc to support older mingw32.
Any:
* Speedup compilation by not including <algorithm>.
* Maintenance work, including CI hardening.
Asio:
* Fixed compatibility with C++20 concept syntax.
* Marked the POSIX descriptor classes' move constructors as noexcept.
* Added the ssl::host_name_verification class, which is a drop-in replacement \ 
for ssl::rfc2818_verification. The ssl::rfc2818_verification class has been \ 
marked as deprecated. As a consequence of this change, SSL support now depends \ 
on functions that were introduced in OpenSSL 1.0.2.
* Added an ssl::context constructor to take ownership of a native handle.
* Changed C++ language version detection with gcc to use __cplusplus macro.
* Fixed a work counting issue in the asynchronous resolve operation for endpoints.
* Fixed the strand<> converting constructors and assignment operators.
* Ensured that resolvers are restarted correctly after a fork.
* Fixed compatibility with the current NetBSD release.
* Removed spurious handler requirement checks in some async_read overloads.
* Changed the ssl::context class to propagate non-EOF errors from the \ 
add_certificate_authority function.
* Fixed a Windows-specific thread_pool destructor hang that occurred when the \ 
pool had an associated I/O object.
* Changed the select reactor to recreate the "self pipe trick" sockets \ 
on error. This addresses an issue on some versions of Windows, where these \ 
sockets are discconected after a system sleep.
* Fixed a compile error in the buffered streams due to the lack of reference \ 
collapsing in C++98.
* Changed the priority_scheduler example to demonstrate calls to shutdown() and \ 
destroy().
* Removed some unnecessary null pointer checks.
* Changed Windows platform detection to recognise TV titles as Windows apps.
* Added some emscripten compatibility patches.
* Fixed a compile error in the use_awaitable_t::as_default_on function.
* Changed all uses of the boost.bind placeholders to use the boost::placeholders \ 
namespace.
* Fixed a potential compile error in the async_compose implementation due to \ 
incorrect overload selection.
* Suppressed some non-virtual destructor warnings.
* Various documentation fixes and improvements.
Assert:
* Added source_location.
Atomic:
* Implemented C++20 atomic_ref. See docs and especially the caveats section.
* Implemented atomic_flag::test operation, which was introduced in C++20.
* atomic<T> should now take into account alignment requirements of T, \ 
which makes a difference if those requirements are higher than that of the \ 
internal storage of atomic.
* Added static asserts enforcing the requirements on the value type T used with \ 
atomic and atomic_ref. This should prohibit invalid types from being used as \ 
atomics.
* Improved internal lock pool implementation. The pool is larger, and lock \ 
selection accounts for atomic object alignment, which should reduce the \ 
potential of thread contention.
* Fixed incorrect x86 code generated for bit_test_and_* operations on 8 and \ 
16-bit arguments. Other architectures are not affected.
* Fixed a possible unaligned memory access in compare_exchange_* operations, if \ 
alignment requirements of value_type are less than that of the internal storage \ 
of atomic.
* boost/atomic/atomic.hpp no longer includes boost/atomic/atomic_flag.hpp and \ 
boost/atomic/fences.hpp and only defines the boost::atomic class template and \ 
related typedefs. Include the other headers explicitly or use boost/atomic.hpp \ 
to include all parts of Boost.Atomic.
* The atomic<T>::storage() accessor and associated \ 
atomic<T>::storage_type type are deprecated. Instead, users are advised to \ 
use atomic<T>::value() and atomic<T>::value_type, respectively. \ 
Users can define BOOST_ATOMIC_SILENCE_STORAGE_DEPRECATION to disable deprecation \ 
warnings for the time of transition. The deprecated pieces will be removed in a \ 
future release.
* Removed support for BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TEST. This macro was \ 
used as a helper for transition to the updated returned values of *_and_test \ 
operations in Boost.Atomic 1.67, which was released 2 years before 1.73.
Beast:
* This is a maintenance update.
* Nested mutable_data_type in Beast dynamic buffers is deprecated.
* We'd love to know how you or your company use Beast, consider adding an entry \ 
to the Companies and Individuals Using Beast list.
* See the full Release Notes for a complete list of changes.
Context:
* IBM Z: Fix fcontext routines
* mips64/n64: .align 3
* Use OSPLAT MIPS32/MIPS64 to set different ABI
* Fix non-PIC in RISC-V assembly
Conversion:
* Added boost::polymorphic_downcast for references (thanks to Julien Delacroix \ 
for the patch).
* Significant docs update.
date_time:
* Support constexpr in c++14 and above
* Make date_time all inline. Users no longer need to link the library for any \ 
functions. Library remains for build compatibility.
* Deprecate support for legacy io and USE_DATE_TIME_PRE_1_33_FACET_IO macro
* Misc documentation updates and bugfixes.
DLL:
* Fixes and tests for demangling in boost::dll::smart_library
* Make UB sanitizers happy with boost::dll::load_mode::type
* Ceased dependence on MPL improving compile times
* Clang and ICC on Windows fixes and CI support for those platforms
* Maintenance work, including CI hardening and tests improving.
Dynamic Bitset:
* Fixed a portability issue in the definition of the maximum block limit.
Flyweight:
* Maintenance work.
Geometry:
* Improvements
  - Missing input combinations in intersection() and introduction of tupled-output.
  - Added d3::point_xyz geometry model (thanks to Digvijay Janartha).
* Solved issues
  - Incorrect definition of EPSG:3785.
* Bugfixes
  - R-tree exception-safety improvement.
  - Andoyer inverse formula fixed for close points.
  - Fixed dangling reference in distance algorithm.
* Deprecation
  - Support for C++03 has been deprecated and Geometry will require C++14 from \ 
Boost 1.75 onwards.
GIL:
* Added move constructor and move assignment operator to image class
* New member function size() in any_image_view class
* Replace Boost.Test with Boost.LightweightTest as the only test framework used \ 
in GIL. This also restructured the test/extension/io/ sub-tree and targets in \ 
related Jamfile-s.
* Removed remaining uses of Boost.MPL
* Renamed all macros using BOOST_GIL_ prefix
* Renamed all CMake configuration options using BOOST_GIL_ prefix
* Removed extension/dynamic_image/reduce.hpp as unused and possibly unfinished. \ 
An implementation attempt of techniques described in the paper Efficient \ 
Run-Time Dispatching in Generic Programming with Minimal Code Bloat by Lubomir \ 
Bourdev, Jaakko Jarvi.
* Removed direct dependency on Boost.MPL, Boost.System and Boost.Test.
* Started removing public macros for compile-time configuration of I/O extension \ 
tests, i.e. BOOST_GIL_IO_TEST_ALLOW_READING_IMAGES and \ 
BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES. Instead, if a test target is built, it \ 
builds all its test cases unconditionally.
* Avoid longjmp interaction during destruction of I/O extension objects.
* Fixed missing alignment default value in constructor of image class.
* Fixed segmentation fault when reading corrupted PNG file.
* Fixed illegal initialization of return values in the old IOv1 interface of I/O \ 
extension.
Histogram:
* Added crop command to reduce algorithm
* slice command in reduce now works on category axis
* Added count accumulator, can be used to add arbitrary metadata to each cell
* sum algorithm gained a new argument to optionally sum only over inner bins
* Several fixes for bugs in corner cases
* Enhanced documentation
icl:
* Remove references to date_time compiled library.
* Fix forward decl lower and upper less equal.
* Misc bugfixes.
IO:
* Made all the IOS state saver classes non-copyable. (Glen Fernandes)
* Correctly handle error upon first read from the input stream when reading a \ 
quoted string. (Glen Fernandes)
* Implemented ostream_joiner for delimiter based joining. (Glen Fernandes)
* Relocated ostream_string from the Utility library to the IO library as ostream_put.
* Correctly handle stream width and fill in quoted output. (Glen Fernandes)
* Optimize quoted output to write directly to the stream buffer. (Glen Fernandes)
* Glen Fernandes became the maintainer of the IO library.
LexicalCast:
* Maintenance work, including CI hardening and better workarounds for broken \ 
standard libraries
Log:
* Default sink used in trivial logging, when no sinks are registered in the \ 
logging core, now automatically flushes output after each log record
* core::flush now performs a flush on the default sink used for trivial logging, \ 
when no sinks are registered.
* Added a workaround for some syslog API implementations (e.g. glibc), which do \ 
not save the application identification string in openlog call. Such \ 
implementations could access already freed memory on each syslog call, resulting \ 
in undefined behavior.
* Fixed that log file rotation on a specific day of month (e.g. \ 
rotation_at_time_point(boost::gregorian::greg_day(1))) could be silently ignored \ 
and not happen.
* Fixed that text_file_backend::rotate_file could throw if there were no log \ 
records written yet and target file name pattern was set.
* Ported various components of the library to std::allocator_traits to improve \ 
compatibility with C++20 allocators.
* Fixed compilation errors when building in MSYS2 Cygwin environment.
Math:
IMPORTANT: C++03 support is now deprecated and will be removed from March 2021.
* Added Cubic Hermite Interpolation.
* Added Modified Akima Interpolation.
* Added PCHIP Interpolation.
* Added Quintic Hermite Interpolation.
* Added entropy to numerous distributions.
* Allow trivial quadrature case where the two end points are equal, and in \ 
addition allow bounds to be interchanged.
* Fix exp_sinh quadrature to work with complex types over a non-native range.
* Fix miscellaneous compiler warnings in factorial.hpp.
* Use std::chrono rather than boost::chrono in timed pFq calculations.
* Remove much of the old boost::mpl dependencies to improve constexpr support.
Mp11:
* Added mp_unique_if (contributed by Kris Jusiak)
* Added mp_flatten
* Added mp_rotate_left, mp_rotate_right (contributed by Duncan Barber)
* Added mp_compose
* Added mp_power_set
* Added mp_partial_sum
* Added mp_iterate
Multi-index Containers:
* multi_index_container is now AllocatorAware.
* Swapping of internal KeyFromValue, Compare, Hash and Pred objects now selects \ 
the appropriate swap function between std::swap and ADL candidates, in \ 
accordance with standard specifications in [swappable.requirements]
* Provided some internal copy constructors and assignment operators whose \ 
default implicit definition is deprecated in C++11 onwards ([depr.impldec]), \ 
which was warned about on some compilers.
Multiprecision:
* IMPORTANT: Mark C++03 support as deprecated and due for removal in 2021.
* Big update to cpp_int adds faster Karatsuba and Coomba multiplication routines.
* Fix conversion of gmp_rational to long double and __float128
* Fix up libtommath support to function with the latest libtom releases.
* Fix up some incompatibilities with the latest Intel C++ compiler.
* Fix up constexpr arithmetic support for latest MSVC release.
Outcome:
* Performance of Outcome-based code compiled by clang has been greatly improved. \ 
The previous implementation of Outcome's status bitfield confused clang's \ 
optimiser, which caused low quality codegen. Unlike most codegen issues, this \ 
was noticeably in empirical benchmarks of real world code, as was shown by P1886 \ 
Error speed benchmarking.
* The safe part of the better_optimisation Outcome v2.2.0 future branch was \ 
merged to Outcome v2.1.3 which includes a new status bitfield implementation. \ 
This appears to not confuse clang's optimiser, and clang 9 produces code which \ 
routinely beats GCC 9's code for various canned use cases.
* Installability is now CI tested per commit. Due to installability of \ 
standalone Outcome (e.g. make install) breaking itself rather more frequently \ 
than is ideal, installability is now tested on CI per commit.
* Newer Concepts implementing compilers were unhappy with the early check for \ 
destructibility of T and E, so removed template constraints, falling back to \ 
static assert which runs later in the type instantiation sequence.
* A false positive undefined behaviour sanitiser failure in some use cases of \ 
Experimental Outcome was worked around to avoid the failure message.
PolyCollection:
* Suppressed a potential redundant move warning in boost::poly_collection::for_each.
* Fixed a bug by which elements were copied rather than moved in \ 
allocator-extended move construction and move assigment between collections with \ 
non-propagating, unequal allocators.
* Allocator-extended move construction no longer decays to allocator-extended \ 
copy construction for the legacy version of libstdc++-v3 shipped with GCC 4.8 \ 
(which can also be used by Clang).
Stacktrace:
* Added documentation on distribution of PDBs
* Fixed msvc-9 build
* Maintenance work, including test fixes fixing typos CI improvements and \ 
hardening, inspect tool fixes.
Test:
* Boost.test v3.13 see the Changes log for more details.
* New feature: It is now possible to combine tolerance indication, user message \ 
and collection comparison modifier in a single BOOST_TEST expression. See change \ 
logs for more details.
ThrowException:
* Added an overload of throw_exception that takes a boost::source_location object.
* NOTE: Projects using BOOST_THROW_EXCEPTION with exceptions disabled will need \ 
to add a definition of this new overload.
TTI:
* Added introspection of function templates for more recent C++ compilers \ 
versions from gcc and vc++. as well as all versions of clang. Older versions of \ 
vc++ before 14.0 and gcc prior to 4.8 may fail.
* Added specific introspection for elements of struct/class, enum, and union \ 
types, which can be used for more fine-grained introspection than the general \ 
'type' introspection.
TypeIndex:
* Maintenance work, including CI integration with inspect tool.
Utility:
* The ostream_string facility has moved from the Utility library to the IO \ 
library as ostream_put.
Variant:
* Removed unused includes
* Fixed zero-as-null-pointer-constat warnings
* Maintenance work, including typo fixes.
Variant2:
* Added support for std::hash, boost::hash.
* variant<T...> is now trivial when all types in T... are trivial. This \ 
improves performance by enabling it to be passed to, and returned from, \ 
functions in registers.
WinAPI:
* Headers in boost/detail/winapi are deprecated and will be removed in a future \ 
release.
* Boost.WinAPI headers no longer include winerror.h. Include \ 
boost/winapi/error_codes.hpp to get Windows error codes.

Files:
RevisionActionfile
1.30modifypkgsrc/devel/boost-build/PLIST
1.44modifypkgsrc/devel/boost-build/buildlink3.mk
1.47modifypkgsrc/devel/boost-headers/PLIST
1.46modifypkgsrc/devel/boost-headers/buildlink3.mk
1.40modifypkgsrc/devel/boost-jam/buildlink3.mk
1.81modifypkgsrc/devel/boost-libs/Makefile
1.41modifypkgsrc/devel/boost-libs/PLIST
1.52modifypkgsrc/devel/boost-libs/buildlink3.mk
1.5modifypkgsrc/devel/boost-mpi/PLIST
1.8modifypkgsrc/devel/boost-mpi/buildlink3.mk
1.9modifypkgsrc/devel/py-boost/PLIST
1.17modifypkgsrc/devel/py-boost/buildlink3.mk
1.87modifypkgsrc/meta-pkgs/boost/Makefile.common
1.130modifypkgsrc/meta-pkgs/boost/distinfo
1.3modifypkgsrc/meta-pkgs/boost/patches/patch-boost_archive_basic__archive.hpp
1.2modifypkgsrc/meta-pkgs/boost/patches/patch-boost_thread_pthread_thread__data.hpp
1.1removepkgsrc/meta-pkgs/boost/patches/patch-boost_asio_detail_impl_kqueue__reactor.ipp