Path to this page:
Subject: CVS commit: pkgsrc
From: Ryo ONODERA
Date: 2019-08-22 14:17:53
Message id: 20190822121753.645EFFBF4@cvs.NetBSD.org
Log Message:
Update to 1.71.0
Changelog:
New Libraries
Variant2: A never-valueless, strong guarantee implementation of \
std::variant, from Peter Dimov.
Updated Libraries
Align:
Support for any integral type in the integral versions of align_up and \
align_down.
Revised the implementation of aligned_allocator to no longer require a \
specialization for void.
Define propagate_on_container_move_assignment and is_always_equal in \
aligned_allocator.
Asio:
Improved performance slightly by eliminating a redundant move \
construction when completed handlers are dispatched.
Eliminated a compiler warning by annotating a case fall-through in the \
free function connect() implementation.
Fixed the is_*_buffer_sequence detection traits for user-defined \
sequence types.
Fixed some Windows-specific warnings about an incompatible pointer cast \
when obtaining the CancelIoEx entry point.
Changed to automatically set the defaults when opening a serial port on \
Windows.
Changed the serial port get_option() member function to be const.
Fixed a name hiding issue with the WinRT stream-oriented socket \
backend's shutdown function.
Applied a minor fix to the documentation for is_dynamic_buffer.
Added some support for Haiku OS.
Added wolfSSL compatability.
Changed to require C++17 or later for coroutines TS support with clang.
Fixed a doxygen generation problem in the tutorial.
Ensured example programs are correctly incorporated into the documentation.
Any:
Static initialization of the default constructed boost::any is now possible.
Fixed performance regression in assignment on a compilers without \
move-semantics.
Maintenance work.
Beast:
This version consists mostly of bug fixes and performance improvements.
Substantial work included for the split compilation mode, to reduce \
compile time when defining BOOST_BEAST_SEPARATE_COMPILATION.
We'd love to know how you or your company use Beast, consider adding an \
item to the Companies and Individuals Using Beast list.
See the full Release Notes for a complete list of changes.
Circular Buffer:
Correct doxygen generated reference to no longer show internal members. \
(Glen Fernandes)
Eliminate ubsan warning on add and sub. (Glen Fernandes)
Fix incorrect check in is_uninitialized. (Niklas Fejes)
Container:
Fixed bugs:
GitHub #47: "added alignment specification for small_vector".
GitHub #88: "Implement C++17 MoveAssignable requirements for \
self-move assignments".
GitHub #107: "Alignment ignored in resource_adaptor".
GitHub #109: "Get rid of integer overflow in copy_move_algo.hpp \
(-fsanitize=integer)".
GitHub #110: "Avoid gcc 9 deprecated copy warnings in \
new_allocator.hpp".
GitHub #112: "vector::resize() compilation error with \
msvc-10..12: data is not a member of boost::detail::aligned_storage".
GitHub #114: "Fix small_vector noexcept specification".
GitHub #116: "MSVC + boost 1.70 compilation error when \
windows.h is already included (detail/thread_mutex.hpp)".
GitHub #117: "flat_map/map::insert_or_assign with hint has \
wrong return types".
GitHub #118: "Non-unique inplace_set_difference used in in \
flat_tree_merge_unique and iterator invalidation in insert_unique".
GitHub #122: "Fix has_trivial_destructor_after_move".
GitHub #123: "With heterogeneous lookup, equal_range can result \
in a range with length greater than 1".
deque can now have options, using deque_options. The block size/bytes \
can be be specified.
static_vector can now have options, using static_vector_options. \
Alignment and throwing behaviour can be be specified.
small_vector can now have options, using small_vector_options. Alignment \
and growth factor can be be specified.
Context:
Add support for RISC-V LP64D
#72: Fix ABI violation on ppc64 ELFv2
#99: cleanup of stack if creating ucontext fails
Conversion:
Maintenance work.
Core:
Added functions alloc_construct, alloc_construct_n, alloc_destroy, and \
alloc_destroy_n in <boost/core/alloc_construct.hpp> for allocator aware \
and exception safe construction and destruction of objects and arrays. (Glen \
Fernandes)
Added constexpr functions first_scalar in \
<boost/core/first_scalar.hpp> for obtaining a pointer to the first scalar \
element of an array. Given a pointer of type T* they return a pointer of type \
remove_all_extents_t<T>*. (Glen Fernandes)
Added class template noinit_adaptor in \
<boost/core/noinit_adaptor.hpp> which is an allocator adaptor that \
converts any allocator into one whose construct(ptr) performs default \
initialization via placement new, and whose destroy(ptr) invokes the value_type \
destructor directly. (Glen Fernandes)
Added class template default_allocator in \
<boost/core/default_allocator.hpp>, which can serve as a minimal default \
allocator that has interface similar to C++20 std::allocator, supports \
configurations with disabled exceptions and does not have std as an associated \
namespace. The allocator uses operator new and operator delete for allocation. \
(Glen Fernandes)
In <boost/core/uncaught_exceptions.hpp> header, added workarounds \
for better compatibility with QNX SDP 7.0 when libc++/libc++abi libraries are \
used. (Andrey Semashev, #59)
The <boost/detail/sp_typeinfo.hpp> header is now marked as \
deprecated and will be removed in a future release. \
<boost/core/typeinfo.hpp> should be used instead. (Peter Dimov)
Dynamic Bitset:
Enabled hardware-assisted popcount on MSVC (#38).
Added support for boost::hash and std::hash (#45).
Support copy-initialization with default constructor (#48).
Endian:
Clarified requirements on the value type template parameter
Added support for float and double
Added endian_load, endian_store
Updated endian_reverse to correctly support all non-bool integral types
Moved deprecated names to the deprecated header endian.hpp
Fiber:
documentation for shared_work updated
Filesystem:
Fixed incorrect error_code returned from directory iterator increment \
when readdir_r is used.
For path, fixed rvalue-aware operator/ return type to return an rvalue \
instead of rvalue reference. This fixes leaving a dangling reference in the \
user's code if the result of operator/ is bound to a const reference. (#110)
Fixes for better compatibility with Windows CE. (#24)
Added minimal support for CMake. (#106)
Flyweight:
Maintenance work.
Histogram:
New features:
Support for thread-safe storages and new thread-safe accumulators
Support for compiling without exceptions/RTTI (increases performance \
by 10-20 %) (with Glen Fernandes)
Performance improvements for 1D and 2D histograms
boost::histogram::indexed now returns forward iterator range instead \
of input iterator range
boost::histogram::indexed_range::accessor is now non-copyable and \
acts like reference to cell value, making more algorithms from the C++ stdlib \
work
boost::histogram::algorithm::reduce with new slice option and option \
fusion
boost::histogram::algorithm::project accepts runtime indices for \
static histograms
Bug Fixes:
boost::histogram::algorithm::reduce also works on histograms that \
have some axis types without reduction support
boost::histogram::axis::traits::update now works correctly for \
boost::histogram::axis::variant
Other:
100 % test coverage
Reduced internal Boost dependencies
Improved documentation and examples
Guaranteed no-throw moves for all builtin axis types
Compile cleanly at higher warning levels
See changelog for more details.
IoStreams:
Fixed processing of multi-stream files (#87).
Added support for multi-threaded LZMA (#95).
Interprocess:
GitHub #85 ("warning: Implicit conversion loses integer \
precision").
GitHub #86 ("warning: Possible misuse of comma operator").
Intrusive:
GitHub #42: Documentation does not describe treap priority_of_value changes
GitHub #43: Fix tests with BOOST_INTRUSIVE_VARIADIC_TEMPLATES enabled
GitHub #45: Disable variadic templates for MSVC-12 to avoid ICEs
LexicalCast:
Added tests for boost::filesystem::path conversions #25.
Maintenance work, including #28.
Log:
New features:
Improved support for C++17 std::string_view in \
basic_formatting_ostream. The string view can now participate in character code \
conversion on output.
Added auto_newline formatter and stream manipulator. It can be used \
to ensure that formatted output always ends with a newline while avoiding \
duplicate newlines.
In the output stream, text file and text multi-file sink backends \
added support for configuring behavior with regard to appending a trailing \
newline to every formatted log record. Use auto_newline_mode named parameter of \
the backend constructor or call the set_auto_newline_mode method on the sink \
backend.
Note: The default behavior with regard to trailing newlines added by \
sink backends has changed slightly compared to the previous Boost.Log releases. \
The backends will now only add a trailing newline if there isn't one in the \
formatted log message string already. In previous releases a newline was added \
unconditionally.
Added support for passing arbitrary function objects in the filter \
and format named parameters to sink constructors and convenience functions for \
initializing sinks. For example, it is now possible to specify C++11 lambda \
functions directly in these parameters. (#63)
In the default filter and formatter factories used in filter and \
formatter parsers, added support for severity level attribute values of type \
boost::log::trivial::severity_level. For filters, the support is limited to \
attributes with "Severity" name.
Bug fixes:
Fixed incorrect parsing of components of the rotated file names \
while scanning for files in the text file sink backend. If the file name pattern \
ended with a placeholder (for example, a file counter), the scan_for_files \
method would not find files matching that pattern in the target storage, leaving \
them unmanaged. In particular, such files would not be deleted to free target \
storage. (#78)
Updated basic_formatting_ostream and basic_record_ostream to make it \
possible to overload stream output operators for pointers to user-defined types. \
User-defined operator<< overloads taking std::basic_ostream and a pointer \
argument should now be picked up by the compiler when the pointer is being \
written to one of Boost.Log streams. (#84)
See changelog for more details.
Math:
New features:
Catmull-Rom interpolator now works in C++11
Cardinal quadratic B-spline interpolation
Domain of elliptic integrals extended
sin_pi and cos_pi performance improvements
Forward-mode automatic differentiation
Vector valued barycentric rational interpolation
Ooura's method for evaluation of Fourier integrals
Bug fixes:
Multiple compatibility issues with Multiprecision fixed
Lambert-W fixed on a rare architecture
Metaparse:
New features:
In C++11 variadic template support for the following: sequence, \
one_of_c, one_of, repeated_one_of, repeated_one_of1, one_char_except_c, \
one_char_except.
Bug fixes:
BOOST_METAPARSE_STRING does not use out of range character values as \
template arguments.
any_of_c<> does not create empty array in C++14.
Move:
Git Issue #26: "Invalid iterator increment/decrement in the last \
iteration of adaptive_sort_combine_blocks".
Multi Array:
Simplify allocator support by using new alloc_construct_n and \
alloc_destroy_n facilities from Core. (Glen Fernandes)
Multi-index Containers:
Added variants of const_mem_fun and mem_fun for differently qualified \
member functions (issue #24).
Terse key specification syntax now correctly handles noexcept-specified \
member functions (issue #24).
Outcome:
Enhancements:
#184 As per request from Boost release managers, relocated \
version.hpp and revision.hpp into detail, and added the Boost licence \
boilerplate to the top of every source file which was missing one (I think). \
Also took the opportunity to run the licence restamping script over all Outcome, \
so copyright dates are now up to date.
#185 Add FAQ item explaining issue #185, and why we will do nothing \
to fix it right now.
#189 Refactored the OUTCOME_TRY implementation to use more clarified \
customisation points capable of accepting very foreign inputs. Removed the \
std::experimental::expected<T, E> specialisations, as those are no longer \
necessary. Fixed the documentation for the customisation points which previously \
claimed that they are ADL discovered, which they are not. Added a recipe \
describing how to add in support for foreign input types.
#183 Added a separate motivation/plug_error_code specifically for Boost.
Bug fixes:
OUTCOME_VERSION_MINOR hadn't been updated to 1.
#181 Fix issue #181 where Outcome didn't actually implement the \
strong swap guarantee, despite being documented as doing so.
#190 Fix issue #190 in Boost edition where unit test suite was not \
runnable from the Boost release distro.
#182 Fix issue #182 where trait::is_exception_ptr_available<T> \
was always true, thus causing much weirdness, like not printing diagnostics and \
trying to feed everything to make_exception_ptr().
#192 Fix issue #192 where the \
std::basic_outcome_failure_exception_from_error() was being defined twice for \
translation units which combine standalone and Boost Outcome's.
Parameter:
Upgraded keyword generation macro BOOST_PARAMETER_TEMPLATE_KEYWORD (#15).
Moved keyword generation macro BOOST_PARAMETER_NESTED_KEYWORD from \
Accumulators to this library (#28).
Added support for std::reference_wrapper and std::ref() (#16).
Moved boost::parameter::required, boost::parameter::optional, and \
boost::parameter::deduced metafunction definitions to their own header files in \
directory boost/parameter (#18).
Added support for Boost.Parameter-enabled function call operators (#20).
Added support for parameter category qualifiers "forward", \
"consume", and "move_from" (current qualifiers are \
"in", "out", and "in_out") (#21) (#23) based on \
http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters. \
Added new usage syntax BOOST_PARAMETER_NAME((object-name), namespace-name) \
qualifier(tag-name)) and BOOST_PARAMETER_NAME(qualifier(name)). (Existing code \
that uses qualifiers directly and correctly with BOOST_PARAMETER_FUNCTION and \
other code generation macros should remain unaffected for now, so no breaking \
changes.) The reason for the change in usage is to enable applying of parameter \
category constraints to Boost.Parameter-enabled functions and constructors \
invoked through argument composition. (Otherwise, it is currently possible to \
use argument composition to bypass parameter category constraints applied in \
BOOST_PARAMETER_FUNCTION et. al.)
Added support for perfect forwarding (#23) (#26), so that \
parameter::parameters::operator() can accept non-const rvalues. As a positive \
side effect, Boost.Parameter-enabled functions and constructors are no longer \
bound by BOOST_PARAMETER_MAX_ARITY on compilers that support perfect forwarding. \
User code can now check for this support by detecting the configuration macro \
BOOST_PARAMETER_HAS_PERFECT_FORWARDING, or manually turn off this support by \
defining the configuration macro BOOST_PARAMETER_DISABLE_PERFECT_FORWARDING.
Added metafunctions boost::parameter::is_argument_pack (#27), \
boost::parameter::are_tagged_arguments (#52), and \
boost::parameter::result_of::compose (#75).
Added variadic function template boost::parameter::compose() which takes \
in named arguments and returns them in an argument pack (#52). For compilers \
that do not support perfect forwarding, the configuration macro \
BOOST_PARAMETER_COMPOSE_MAX_ARITY determines the maximum number of arguments \
that boost::parameter::compose() can take in (#61).
Added code generation macros \
BOOST_PARAMETER_BASIC_FUNCTION_CALL_OPERATOR, \
BOOST_PARAMETER_BASIC_CONST_FUNCTION_CALL_OPERATOR, \
BOOST_PARAMETER_NO_SPEC_FUNCTION, BOOST_PARAMETER_NO_SPEC_MEMBER_FUNCTION, \
BOOST_PARAMETER_NO_SPEC_CONST_MEMBER_FUNCTION, \
BOOST_PARAMETER_NO_SPEC_FUNCTION_CALL_OPERATOR, \
BOOST_PARAMETER_NO_SPEC_CONST_FUNCTION_CALL_OPERATOR, \
BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR, and \
BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR (#52).
Added support for Boost.MP11 (#47) (#66) (#70). User code can now check \
for this support by detecting the configuration macro \
BOOST_PARAMETER_CAN_USE_MP11, or manually turn off this support by defining the \
configuration macro BOOST_PARAMETER_DISABLE_MP11_USAGE.
Improved support for parameter-dependent return types via SFINAE (#73).
PtrContainer:
Fix a ptr_vector regression introduced in 1.66.0 (#24).
PolyCollection:
Maintenance work.
SmartPtr:
Added aliasing constructors to weak_ptr
Added weak_ptr<T>::empty()
Added enable_shared_from, shared_from, and weak_from
Stacktrace:
Fixed output of name(), source_location() and source_line() for the \
default constructed frame with thread sanitizer builds in C++98 mode.
Fixed output of long strings from name() and source_location() on MSVC #78.
Maintenance work.
Test:
Boost.test v3.11 see the Changes log for more details.
Breaking changes:
Boost.Test shows deprecation warnings if some very old headers as \
deprecated. If you encounter such warnings, please follow the indications: those \
headers will be removed in a future release.
New feature:
Now BOOST_TEST can be used to compare abstract types
Bug fixes and pull requests:
GitHub Issues: #209, #218
GitHub Pull Requests: #219, #224
Utility:
Implemented function template ostream_string in \
<boost/utility/ostream_string.hpp> to optimally write any kind of string \
content to an output stream. It satisfies the requirements of \
[ostream.formatted.reqmts]. (Glen Fernandes)
Optimized the stream output operators of basic_string_view and \
basic_string_ref to write directly to the rdbuf stream buffer. (Glen Fernandes)
Uuid:
Breaking change: MD5 name-based uuid generation was corrected to be \
identical on all endian systems. Define BOOST_UUID_COMPAT_PRE_1_71_MD5 to keep \
the result in a format compatible with 1.66 through 1.70. This does not affect \
the default name-based uuid generation which is based on SHA1. (#109)
Variant:
Fixed compilation of boost::apply_visitor with variants passed by non \
const reference in #68. Many thanks to Ed Catmur for providing the fix.
Added support for std::hash (#49). Macro \
BOOST_VARIANT_DO_NOT_SPECIALIZE_STD_HASH could be defined to avoid those \
specializations.
Added micro optimizations for binary size and performance by Nikita \
Kniazev in #63 and #66.
Maintenance work, including #64 by Nikita Kniazev and #67 by Hans Dembinski.
YAP:
Added an example showing how to make self-evaluating YAP expressions \
(that is, expressions that don't need an explicit call to evaluate() or \
transform()).
Files: