Posted
over 5 years
ago
Notes for Windows
users
Boost.WinAPI has been updated to target Windows 7 by default, where possible.
In previous releases Windows Vista was the default.
Boost.WinAPI is used internally as the Windows
... [More]
SDK abstraction layer in a number
of Boost libraries, including Boost.Beast, Boost.Chrono, Boost.DateTime, Boost.Dll,
Boost.Log, Boost.Process, Boost.Stacktrace, Boost.System, Boost.Thread and
Boost.UUID. To select the target Windows version define BOOST_USE_WINAPI_VERSION
to the numeric version similar to _WIN32_WINNT
while compiling Boost and user's code. For example:
b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 stage
The list of Windows API version numbers can be seen on this
page.
New Libraries
YAP: An expression template library
for C++14 and later, from Zach Laine.
Updated Libraries
Beast:
This version fixes a missing executor work guard in all composed
operations used in the implementation. Users who are experiencing
crashes related to asynchronous completion handlers are encouraged
to upgrade.
For a complete list of changes, please view the official Release
Notes.
Context:
#78: Linker error with context-impl=ucontext:
multiple definition of boost::context::detail::current_rec
Coroutine2:
#14: crash while stack unwinding
#18: some guidance on why to use coroutine2
#20: failes to compile test in due to the error C2039
#22: undefined behaviour documentation
Fiber:
#170: buffered_channel::try_push has incorrect documentation
#172: WIN64: 'invalid conversion from 'HANDLE' to
'std::thread::native_handle_type' errors for builds using mingw-w64
#175: throw exception "Operation not permitted"
NUMA support moved to extra library (fiber-numa); enabled via property
numa (numa=on)
Fusion:
Added a workaround for ambiguous call of fusion::deque
constructor on GCC 4.4/c++0x (PR#178, commit).
Fixed a bug with C-style array (PR#177).
Fixed a fusion::for_each signature to take functor
by value (#4427).
This may break existing code with non-copyable (non-movable)
functor, but the implementation wasn't correct for a long time;
the documantation was correct from the first. So, please make
sure your usage.
Fixed unintentional MPL placeholder substituion bug on fusion::transform (#5490).
Moved description, how to conform Fusion sequence as MPL sequence,
to mpl section (#4029).
Added notes regarding IO facility for adapted type (#6091).
Geometry:
Improvements
469
Horizontal grid shift (nadgrids) in SRS transformations (undocumented
for now due to potential interface changes).
478
Box-Segment distance for spherical and geographic coordinate
systems.
487
Missing combinations of geometries in distance for spherical
and geographic cs
489
Additional direct geodesic problem formulas for internal use
Solved issues
470
Assertion failure with short spherical and geographic segments.
471
Invalid envelope of spherical polygon
498
Unexpected results with expand() and make_inverse() for spherical
and geographic CS
504
Unused parameter warnings.
Bugfixes
488
Handle non-true-references in closing_iterator and ever_circling_range_iterator
495
VxWorks 7 cross-compilation issue.
GIL:
The I/O extensions have been entirely rewritten.
The library now requires a C++11-compliant compiler.
Documentation has been reformatted and updated.
Graph:
Conditionally replace deprecated/removed C++98 std::bind1st
by std::bind, std::auto_ptr
by std::unique_ptr, and std::random_shuffle
by std::shuffle. (PR#89)
Fix compiler error with release builds on VS2015 (PR#84)
Fix the Stanford GraphBase examples (PR#87)
Fix friend declarations for iterator_core_access (PR#103)
Add missing <boost/iterator.hpp> include (PR#104)
Avoid an unused variable warning (PR#90)
Fix some typos in documentation (PR#88, PR#98, PR#102)
Fix some issues in tests and examples (PR#85, PR#105)
Lexical Cast:
Fixes for clang-tidy warnings #12092
Log:
Improved support for VxWorks. (PR#39)
Save and restore ebx
register on x86 PIE targets in the dump
stream manipulator implementation.
Math:
Support for arbitrary precision complex valued quadrature and hence
contour integration
Improve performance of polynomial addition
Continue to improve numerical integration routines, and in particular
add support for contour integrals.
Improve accuracy of erfc function's rational approximations.
Multi-index Containers:
Containers of moveable but non-copyable elements can now be serialized
(ticket #13478). Thanks to Sébastien Paris for the report.
multi_index_container's
default constructor is no longer explicit
(ticket #13518).
Multiprecision:
Support for multiprecision complex numbers
Multiprecision:
Support added for complex multiprecision numbers.
Changed conversion to unsigned integer types to be truncating to
match standard defined behaviour.
Correct bug in MPFR string formatting.
Fix undefined behaviour in cpp_dec_float conversion from long long.
Add support for Eigen interoperability.
float128.hpp: Fix Intel on Windows build.
Fix type used in temporaries when expanding expression templates
containing mixed expressions.
Fix infinite loop in gmp_float to fixed-point string conversion.
Update the expression templates to issue static_asserts with better
error messages when you try and do something unsupported.
Fix bug in cpp_int where incrementing to zero doesn't set the sign
correctly.
Remove erroneous use of std::move, and rely on NVRO instead.
Fix up support for changes to MPIR-3.0.
Fix various conversion errors in cpp_bin_float when the exponent
type is a long long,
or else we're converting to an integer that is wider than we are.
Fix compatibility issue with GCC-8 caused by the introduction of
std::byte.
Optional:
Added member function has_value() for compatibility with std::optional (issue
#52).
Added member function map() for transforming optional<T>
into optional<U>
using a function of type T
-> U.
Added member function flat_map() for transforming optional<T>
into optional<U>
using a function of type T
-> optonal<U>.
Predef:
Add support for __ARM_ARCH macro. (from Tim Blechmann)
Add detection for PTX architecture. (from Benjamin Worpitz)
Add nvcc compiler detection. (from Benjamin Worpitz)
Add support for detecting CUDA. (from Benjamin Worpitz)
Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)
Program Options:
Support for multiple long names for an option, thanks to Eyal Rozenberg
(PR#53)
Python:
Bug fixes to correct autolink support (Windows) (#193)
Rational:
Fixed undefined behavior in normalize() (PR#19).
System:
Add constexpr to error_code and error_condition members under C++14
and above (PR#23).
Signals:
Removal Notice: Boost.Signals will
be removed in the next release. Boost.Signals was deprecated in version
1.54.0. Transition to Boost.Signals2 now to avoid disruption.
Stacktrace:
Fixed compilation on Solaris and other platforms that do qualify
address as const in dladdr
function (github 54).
Dropped dependency on Boost.LexicalCast.
Test:
Boost.test v3.8 see the Changes
log for more details.
Breaking changes
The master_test_suite_t
object is no more copyable
New feature:
Dataset test case can now use command line parameters
Bug fixes and pull requests:
Trac tickets: #12095, #12953, #13504, #13525,
#13528
Pull requests: PR#143, PR#145
TypeIndex:
Dropped dependency on Boost.MPL.
Uuid:
Breaking change: sha1 detail namespace
header redirection for backwards compatibility was removed (PR#69).
Added support for std::hash (PR#67).
Added support for move semantics on random generators (PR#74).
Properly handle EINTR when acquiring entropy (PR#74).
Use getrandom(2) instead of getentropy(3) on linux (PR#75).
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 4.0.1, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1, 7.0.0
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
TODO
[Less]
|
Posted
over 5 years
ago
Notes for Windows
users
Boost.WinAPI has been updated to target Windows 7 by default, where possible.
In previous releases Windows Vista was the default.
Boost.WinAPI is used internally as the Windows
... [More]
SDK abstraction layer in a number
of Boost libraries, including Boost.Beast, Boost.Chrono, Boost.DateTime, Boost.Dll,
Boost.Log, Boost.Process, Boost.Stacktrace, Boost.System, Boost.Thread and
Boost.UUID. To select the target Windows version define BOOST_USE_WINAPI_VERSION
to the numeric version similar to _WIN32_WINNT
while compiling Boost and user's code. For example:
b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 stage
The list of Windows API version numbers can be seen on this
page.
New Libraries
YAP: An expression template library
for C++14 and later, from Zach Laine.
Updated Libraries
Beast:
This version fixes a missing executor work guard in all composed
operations used in the implementation. Users who are experiencing
crashes related to asynchronous completion handlers are encouraged
to upgrade.
For a complete list of changes, please view the official Release
Notes.
Context:
#78: Linker error with context-impl=ucontext:
multiple definition of boost::context::detail::current_rec
Coroutine2:
#14: crash while stack unwinding
#18: some guidance on why to use coroutine2
#20: failes to compile test in due to the error C2039
#22: undefined behaviour documentation
Fiber:
#170: buffered_channel::try_push has incorrect documentation
#172: WIN64: 'invalid conversion from 'HANDLE' to
'std::thread::native_handle_type' errors for builds using mingw-w64
#175: throw exception "Operation not permitted"
NUMA support moved to extra library (fiber-numa); enabled via property
numa (numa=on)
Fusion:
Added a workaround for ambiguous call of fusion::deque
constructor on GCC 4.4/c++0x (PR#178, commit).
Fixed a bug with C-style array (PR#177).
Fixed a fusion::for_each signature to take functor
by value (#4427).
This may break existing code with non-copyable (non-movable)
functor, but the implementation wasn't correct for a long time;
the documantation was correct from the first. So, please make
sure your usage.
Fixed unintentional MPL placeholder substituion bug on fusion::transform (#5490).
Moved description, how to conform Fusion sequence as MPL sequence,
to mpl section (#4029).
Added notes regarding IO facility for adapted type (#6091).
Geometry:
Improvements
469
Horizontal grid shift (nadgrids) in SRS transformations (undocumented
for now due to potential interface changes).
478
Box-Segment distance for spherical and geographic coordinate
systems.
487
Missing combinations of geometries in distance for spherical
and geographic cs
489
Additional direct geodesic problem formulas for internal use
Solved issues
470
Assertion failure with short spherical and geographic segments.
471
Invalid envelope of spherical polygon
498
Unexpected results with expand() and make_inverse() for spherical
and geographic CS
Bugfixes
488
Handle non-true-references in closing_iterator and ever_circling_range_iterator
495
VxWorks 7 cross-compilation issue.
GIL:
The I/O extensions have been entirely rewritten.
The library now requires a C++11-compliant compiler.
Documentation has been reformatted and updated.
Graph:
Conditionally replace deprecated/removed C++98 std::bind1st
by std::bind, std::auto_ptr
by std::unique_ptr, and std::random_shuffle
by std::shuffle. (PR#89)
Fix compiler error with release builds on VS2015 (PR#84)
Fix the Stanford GraphBase examples (PR#87)
Fix friend declarations for iterator_core_access (PR#103)
Add missing <boost/iterator.hpp> include (PR#104)
Avoid an unused variable warning (PR#90)
Fix some typos in documentation (PR#88, PR#98, PR#102)
Fix some issues in tests and examples (PR#85, PR#105)
Lexical Cast:
Fixes for clang-tidy warnings #12092
Log:
Improved support for VxWorks. (PR#39)
Save and restore ebx
register on x86 PIE targets in the dump
stream manipulator implementation.
Math:
Support for arbitrary precision complex valued quadrature and hence
contour integration
Improve performance of polynomial addition
Continue to improve numerical integration routines, and in particular
add support for contour integrals.
Improve accuracy of erfc function's rational approximations.
Multi-index Containers:
Containers of moveable but non-copyable elements can now be serialized
(ticket #13478). Thanks to Sébastien Paris for the report.
multi_index_container's
default constructor is no longer explicit
(ticket #13518).
Multiprecision:
Support for multiprecision complex numbers
Multiprecision:
Support added for complex multiprecision numbers.
Changed conversion to unsigned integer types to be truncating to
match standard defined behaviour.
Correct bug in MPFR string formatting.
Fix undefined behaviour in cpp_dec_float conversion from long long.
Add support for Eigen interoperability.
float128.hpp: Fix Intel on Windows build.
Fix type used in temporaries when expanding expression templates
containing mixed expressions.
Fix infinite loop in gmp_float to fixed-point string conversion.
Update the expression templates to issue static_asserts with better
error messages when you try and do something unsupported.
Fix bug in cpp_int where incrementing to zero doesn't set the sign
correctly.
Remove erroneous use of std::move, and rely on NVRO instead.
Fix up support for changes to MPIR-3.0.
Fix various conversion errors in cpp_bin_float when the exponent
type is a long long,
or else we're converting to an integer that is wider than we are.
Fix compatibility issue with GCC-8 caused by the introduction of
std::byte.
Optional:
Added member function has_value() for compatibility with std::optional (issue
#52).
Added member function map() for transforming optional<T>
into optional<U>
using a function of type T
-> U.
Added member function flat_map() for transforming optional<T>
into optional<U>
using a function of type T
-> optonal<U>.
Predef:
Add support for __ARM_ARCH macro. (from Tim Blechmann)
Add detection for PTX architecture. (from Benjamin Worpitz)
Add nvcc compiler detection. (from Benjamin Worpitz)
Add support for detecting CUDA. (from Benjamin Worpitz)
Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)
Program Options:
Support for multiple long names for an option, thanks to Eyal Rozenberg
(PR#53)
Python:
Bug fixes to correct autolink support (Windows) (#193)
Rational:
Fixed undefined behavior in normalize() (PR#19).
System:
Add constexpr to error_code and error_condition members under C++14
and above (PR#23).
Signals:
Removal Notice: Boost.Signals will
be removed in the next release. Boost.Signals was deprecated in version
1.54.0. Transition to Boost.Signals2 now to avoid disruption.
Stacktrace:
Fixed compilation on Solaris and other platforms that do qualify
address as const in dladdr
function (github 54).
Dropped dependency on Boost.LexicalCast.
Test:
Boost.test v3.8 see the Changes
log for more details.
Breaking changes
The master_test_suite_t
object is no more copyable
New feature:
Dataset test case can now use command line parameters
Bug fixes and pull requests:
Trac tickets: #12095, #12953, #13504, #13525,
#13528
Pull requests: PR#143, PR#145
TypeIndex:
Dropped dependency on Boost.MPL.
Uuid:
Breaking change: sha1 detail namespace
header redirection for backwards compatibility was removed (PR#69).
Added support for std::hash (PR#67).
Added support for move semantics on random generators (PR#74).
Properly handle EINTR when acquiring entropy (PR#74).
Use getrandom(2) instead of getentropy(3) on linux (PR#75).
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 4.0.1, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1, 7.0.0
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
TODO
[Less]
|
Posted
over 5 years
ago
Notes for Windows
users
Boost.WinAPI has been updated to target Windows 7 by default, where possible.
In previous releases Windows Vista was the default.
Boost.WinAPI is used internally as the Windows
... [More]
SDK abstraction layer in a number
of Boost libraries, including Boost.Beast, Boost.Chrono, Boost.DateTime, Boost.Dll,
Boost.Log, Boost.Process, Boost.Stacktrace, Boost.System, Boost.Thread and
Boost.UUID. To select the target Windows version define BOOST_USE_WINAPI_VERSION
to the numeric version similar to _WIN32_WINNT
while compiling Boost and user's code. For example:
b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 stage
The list of Windows API version numbers can be seen on this
page.
New Libraries
YAP: An expression template library
for C++14 and later, from Zach Laine.
Updated Libraries
Beast:
This version fixes a missing executor work guard in all composed
operations used in the implementation. Users who are experiencing
crashes related to asynchronous completion handlers are encouraged
to upgrade.
For a complete list of changes, please view the official Release
Notes.
Context:
#78: Linker error with context-impl=ucontext:
multiple definition of boost::context::detail::current_rec
Coroutine2:
#14: crash while stack unwinding
#18: some guidance on why to use coroutine2
#20: failes to compile test in due to the error C2039
#22: undefined behaviour documentation
Fiber:
#170: buffered_channel::try_push has incorrect documentation
#172: WIN64: 'invalid conversion from 'HANDLE' to
'std::thread::native_handle_type' errors for builds using mingw-w64
#175: throw exception "Operation not permitted"
NUMA support moved to extra library (fiber-numa); enabled via property
numa (numa=on)
Fusion:
Added a workaround for ambiguous call of fusion::deque
constructor on GCC 4.4/c++0x (PR#178, commit).
Fixed a bug with C-style array (PR#177).
Fixed a fusion::for_each signature to take functor
by value (#4427).
This may break existing code with non-copyable (non-movable)
functor, but the implementation wasn't correct for a long time;
the documantation was correct from the first. So, please make
sure your usage.
Fixed unintentional MPL placeholder substituion bug on fusion::transform (#5490).
Moved description, how to conform Fusion sequence as MPL sequence,
to mpl section (#4029).
Added notes regarding IO facility for adapted type (#6091).
Geometry:
Improvements
469
Horizontal grid shift (nadgrids) in SRS transformations (undocumented
for now due to potential interface changes).
478
Box-Segment distance for spherical and geographic coordinate
systems.
487
Missing combinations of geometries in distance for spherical
and geographic cs
489
Additional direct geodesic problem formulas for internal use
Solved issues
470
Assertion failure with short spherical and geographic segments.
471
Invalid envelope of spherical polygon
498
Unexpected results with expand() and make_inverse() for spherical
and geographic CS
Bugfixes
488
Handle non-true-references in closing_iterator and ever_circling_range_iterator
495
VxWorks 7 cross-compilation issue.
GIL:
The I/O extensions have been entirely rewritten.
The library now requires a C++11-compliant compiler.
Documentation has been reformatted and updated.
Graph:
Conditionally replace deprecated/removed C++98 std::bind1st
by std::bind, std::auto_ptr
by std::unique_ptr, and std::random_shuffle
by std::shuffle. (PR#89)
Fix compiler error with release builds on VS2015 (PR#84)
Fix the Stanford GraphBase examples (PR#87)
Fix friend declarations for iterator_core_access (PR#103)
Add missing <boost/iterator.hpp> include (PR#104)
Avoid an unused variable warning (PR#90)
Fix some typos in documentation (PR#88, PR#98, PR#102)
Fix some issues in tests and examples (PR#85, PR#105)
Lexical Cast:
Fixes for clang-tidy warnings #12092
Log:
Improved support for VxWorks. (PR#39)
Save and restore ebx
register on x86 PIE targets in the dump
stream manipulator implementation.
Math:
Support for arbitrary precision complex valued quadrature and hence
contour integration
Improve performance of polynomial addition
Math:
Continue to improve numerical integration routines, and in particular
add support for contour integrals.
Improve accuracy of erfc function's rational approximations.
Multi-index Containers:
Containers of moveable but non-copyable elements can now be serialized
(ticket #13478). Thanks to Sébastien Paris for the report.
multi_index_container's
default constructor is no longer explicit
(ticket #13518).
Multiprecision:
Support for multiprecision complex numbers
Multiprecision:
Support added for complex multiprecision numbers.
Changed conversion to unsigned integer types to be truncating to
match standard defined behaviour.
Correct bug in MPFR string formatting.
Fix undefined behaviour in cpp_dec_float conversion from long long.
Add support for Eigen interoperability.
float128.hpp: Fix Intel on Windows build.
Fix type used in temporaries when expanding expression templates
containing mixed expressions.
Fix infinite loop in gmp_float to fixed-point string conversion.
Update the expression templates to issue static_asserts with better
error messages when you try and do something unsupported.
Fix bug in cpp_int where incrementing to zero doesn't set the sign
correctly.
Remove erroneous use of std::move, and rely on NVRO instead.
Fix up support for changes to MPIR-3.0.
Fix various conversion errors in cpp_bin_float when the exponent
type is a long long,
or else we're converting to an integer that is wider than we are.
Fix compatibility issue with GCC-8 caused by the introduction of
std::byte.
Optional:
Added member function has_value() for compatibility with std::optional (issue
#52).
Added member function map() for transforming optional<T>
into optional<U>
using a function of type T
-> U.
Added member function flat_map() for transforming optional<T>
into optional<U>
using a function of type T
-> optonal<U>.
Predef:
Add support for __ARM_ARCH macro. (from Tim Blechmann)
Add detection for PTX architecture. (from Benjamin Worpitz)
Add nvcc compiler detection. (from Benjamin Worpitz)
Add support for detecting CUDA. (from Benjamin Worpitz)
Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)
Program Options:
Support for multiple long names for an option, thanks to Eyal Rozenberg
(PR#53)
Python:
Bug fixes to correct autolink support (Windows) (#193)
Rational:
Fixed undefined behavior in normalize() (PR#19).
System:
Add constexpr to error_code and error_condition members under C++14
and above (PR#23).
Signals:
Removal Notice: Boost.Signals will
be removed in the next release. Boost.Signals was deprecated in version
1.54.0. Transition to Boost.Signals2 now to avoid disruption.
Stacktrace:
Fixed compilation on Solaris and other platforms that do qualify
address as const in dladdr
function (github 54).
Dropped dependency on Boost.LexicalCast.
Test:
Boost.test v3.8 see the Changes
log for more details.
Breaking changes
The master_test_suite_t
object is no more copyable
New feature:
Dataset test case can now use command line parameters
Bug fixes and pull requests:
Trac tickets: #12095, #12953, #13504, #13525,
#13528
Pull requests: #143, #145
TypeIndex:
Dropped dependency on Boost.MPL.
Uuid:
Breaking change: sha1 detail namespace
header redirection for backwards compatibility was removed (PR#69).
Added support for std::hash (PR#67).
Added support for move semantics on random generators (PR#74).
Properly handle EINTR when acquiring entropy (PR#74).
Use getrandom(2) instead of getentropy(3) on linux (PR#75).
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 4.0.1, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1, 7.0.0
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
TODO
[Less]
|
Posted
over 5 years
ago
Notes for Windows
users
Boost.WinAPI has been updated to target Windows 7 by default, where possible.
In previous releases Windows Vista was the default.
Boost.WinAPI is used internally as the Windows
... [More]
SDK abstraction layer in a number
of Boost libraries, including Boost.Beast, Boost.Chrono, Boost.DateTime, Boost.Dll,
Boost.Log, Boost.Process, Boost.Stacktrace, Boost.System, Boost.Thread and
Boost.UUID. To select the target Windows version define BOOST_USE_WINAPI_VERSION
to the numeric version similar to _WIN32_WINNT
while compiling Boost and user's code. For example:
b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 stage
The list of Windows API version numbers can be seen on this
page.
New Libraries
YAP: An expression template library
for C++14 and later, from Zach Laine.
Updated Libraries
Beast:
This version fixes a missing executor work guard in all composed
operations used in the implementation. Users who are experiencing
crashes related to asynchronous completion handlers are encouraged
to upgrade.
For a complete list of changes, please view the official Release
Notes.
Context:
#78: Linker error with context-impl=ucontext:
multiple definition of boost::context::detail::current_rec
Coroutine2:
#14: crash while stack unwinding
#18: some guidance on why to use coroutine2
#20: failes to compile test in due to the error C2039
#22: undefined behaviour documentation
Fiber:
#170: buffered_channel::try_push has incorrect documentation
#172: WIN64: 'invalid conversion from 'HANDLE' to
'std::thread::native_handle_type' errors for builds using mingw-w64
#175: throw exception "Operation not permitted"
NUMA support moved to extra library (fiber-numa); enabled via property
numa (numa=on)
Fusion:
Added a workaround for ambiguous call of fusion::deque
constructor on GCC 4.4/c++0x (PR#178, commit).
Fixed a bug with C-style array (PR#177).
Fixed a fusion::for_each signature to take functor
by value (#4427).
This may break existing code with non-copyable (non-movable)
functor, but the implementation wasn't correct for a long time;
the documantation was correct from the first. So, please make
sure your usage.
Fixed unintentional MPL placeholder substitution bug on fusion::transform (#5490).
Moved description, how to conform Fusion sequence as MPL sequence,
to mpl section (#4029).
Added notes regarding IO facility for adapted type (#6091).
Geometry:
Improvements
469
Horizontal grid shift (nadgrids) in SRS transformations (undocumented
for now due to potential interface changes).
478
Box-Segment distance for spherical and geographic coordinate
systems.
487
Missing combinations of geometries in distance for spherical
and geographic cs
489
Additional direct geodesic problem formulas for internal use
Solved issues
470
Assertion failure with short spherical and geographic segments.
471
Invalid envelope of spherical polygon
498
Unexpected results with expand() and make_inverse() for spherical
and geographic CS
504
Unused parameter warnings.
Bugfixes
488
Handle non-true-references in closing_iterator and ever_circling_range_iterator
495
VxWorks 7 cross-compilation issue.
GIL:
The I/O extensions have been entirely rewritten.
The library now requires a C++11-compliant compiler.
Documentation has been reformatted and updated.
Graph:
Conditionally replace deprecated/removed C++98 std::bind1st
by std::bind, std::auto_ptr
by std::unique_ptr, and std::random_shuffle
by std::shuffle. (PR#89)
Fix compiler error with release builds on VS2015 (PR#84)
Fix the Stanford GraphBase examples (PR#87)
Fix friend declarations for iterator_core_access (PR#103)
Add missing <boost/iterator.hpp> include (PR#104)
Avoid an unused variable warning (PR#90)
Fix some typos in documentation (PR#88, PR#98, PR#102)
Fix some issues in tests and examples (PR#85, PR#105)
Lexical Cast:
Fixes for clang-tidy warnings #12092
Log:
Improved support for VxWorks. (PR#39)
Save and restore ebx
register on x86 PIE targets in the dump
stream manipulator implementation.
Math:
Support for arbitrary precision complex valued quadrature and hence
contour integration
Improve performance of polynomial addition
Continue to improve numerical integration routines, and in particular
add support for contour integrals.
Improve accuracy of erfc function's rational approximations.
Multi-index Containers:
Containers of moveable but non-copyable elements can now be serialized
(ticket #13478). Thanks to Sébastien Paris for the report.
multi_index_container's
default constructor is no longer explicit
(ticket #13518).
Multiprecision:
Support added for complex multiprecision numbers.
Changed conversion to unsigned integer types to be truncating to
match standard defined behaviour.
Correct bug in MPFR string formatting.
Fix undefined behaviour in cpp_dec_float conversion from long long.
Add support for Eigen interoperability.
float128.hpp: Fix Intel on Windows build.
Fix type used in temporaries when expanding expression templates
containing mixed expressions.
Fix infinite loop in gmp_float to fixed-point string conversion.
Update the expression templates to issue static_asserts with better
error messages when you try and do something unsupported.
Fix bug in cpp_int where incrementing to zero doesn't set the sign
correctly.
Remove erroneous use of std::move, and rely on NVRO instead.
Fix up support for changes to MPIR-3.0.
Fix various conversion errors in cpp_bin_float when the exponent
type is a long long,
or else we're converting to an integer that is wider than we are.
Fix compatibility issue with GCC-8 caused by the introduction of
std::byte.
Optional:
Added member function has_value() for compatibility with std::optional (issue
#52).
Added member function map() for transforming optional<T>
into optional<U>
using a function of type T
-> U.
Added member function flat_map() for transforming optional<T>
into optional<U>
using a function of type T
-> optonal<U>.
Predef:
Add support for __ARM_ARCH macro. (from Tim Blechmann)
Add detection for PTX architecture. (from Benjamin Worpitz)
Add nvcc compiler detection. (from Benjamin Worpitz)
Add support for detecting CUDA. (from Benjamin Worpitz)
Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)
Program Options:
Support for multiple long names for an option, thanks to Eyal Rozenberg
(PR#53)
Python:
Bug fixes to correct autolink support (Windows) (#193)
Rational:
Fixed undefined behavior in normalize() (PR#19).
System:
Add constexpr to error_code and error_condition members under C++14
and above (PR#23).
Signals:
Removal Notice: Boost.Signals will
be removed in the next release. Boost.Signals was deprecated in version
1.54.0. Transition to Boost.Signals2 now to avoid disruption.
Spirit:
Spirit.X3:
Small list parser optimization (PR#368).
Pass container attributes through sequence parser or unary
ending down to a sequence parser (PR#370 #12085).
More fine grained sequence attribute check message (PR#371).
Removed redundant check in skip_over
(PR#373).
Workaround constexpr in noexcept VS2015 bug in entire x3::variant (PR#379).
Fixed calc4b example compilation (PR#384).
Minor code improvements (PR#374).
Spirit.Qi:
Fixed ADT support by permutation and sequence_or operator (PR#376).
Specialize iterator_source for random access (PR#383).
Removed redundant check in skip_over
(PR#373).
Spirit.Karma:
Fixed UB in get_absolute_value
function (PR#246).
Fixed use after scope bug if ADT getter returns by value (PR#375 #6126).
Spirit.Classic:
Fixed a regression introduced in PR#336 (PR#386).
Minor code improvements (PR#367).
Stacktrace:
Fixed compilation on Solaris and other platforms that do qualify
address as const in dladdr
function (github 54).
Dropped dependency on Boost.LexicalCast.
Test:
Boost.test v3.8 see the Changes
log for more details.
Breaking changes
The master_test_suite_t
object is no more copyable
New feature:
Dataset test case can now use command line parameters
Bug fixes and pull requests:
Trac tickets: #12095, #12953, #13504, #13525,
#13528
Pull requests: PR#143, PR#145
TypeIndex:
Dropped dependency on Boost.MPL.
Uuid:
Breaking change: sha1 detail namespace
header redirection for backwards compatibility was removed (PR#69).
Added support for std::hash (PR#67).
Added support for move semantics on random generators (PR#74).
Properly handle EINTR when acquiring entropy (PR#74).
Use getrandom(2) instead of getentropy(3) on linux (PR#75).
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 4.0.1, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Apple Clang: 9.0.0, 9.1.0
Apple Clang, C++11: 9.0.0, 9.1.0
Apple Clang, C++14: 9.0.0, 9.1.0
Apple Clang, C++17: 9.1.0
Apple 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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1, 7.0.0
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Apple Clang: 9.0.0, 9.1.0
Apple Clang, C++11: 9.0.0, 9.1.0
Apple Clang, C++14: 9.0.0, 9.1.0
Apple Clang, C++17: 9.1.0
Apple 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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
Daniel James, Vladimir Prus, and Marshall Clow managed this release.
[Less]
|
Posted
over 5 years
ago
Notes for Windows
users
Boost.WinAPI has been updated to target Windows 7 by default, where possible.
In previous releases Windows Vista was the default.
Boost.WinAPI is used internally as the Windows
... [More]
SDK abstraction layer in a number
of Boost libraries, including Boost.Beast, Boost.Chrono, Boost.DateTime, Boost.Dll,
Boost.Log, Boost.Process, Boost.Stacktrace, Boost.System, Boost.Thread and
Boost.UUID. To select the target Windows version define BOOST_USE_WINAPI_VERSION
to the numeric version similar to _WIN32_WINNT
while compiling Boost and user's code. For example:
b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 stage
The list of Windows API version numbers can be seen on this
page.
New Libraries
YAP: An expression template library
for C++14 and later, from Zach Laine.
Updated Libraries
Beast:
This version fixes a missing executor work guard in all composed
operations used in the implementation. Users who are experiencing
crashes related to asynchronous completion handlers are encouraged
to upgrade.
For a complete list of changes, please view the official Release
Notes.
Context:
#78: Linker error with context-impl=ucontext:
multiple definition of boost::context::detail::current_rec
Coroutine2:
#14: crash while stack unwinding
#18: some guidance on why to use coroutine2
#20: failes to compile test in due to the error C2039
#22: undefined behaviour documentation
Fiber:
#170: buffered_channel::try_push has incorrect documentation
#172: WIN64: 'invalid conversion from 'HANDLE' to
'std::thread::native_handle_type' errors for builds using mingw-w64
#175: throw exception "Operation not permitted"
NUMA support moved to extra library (fiber-numa); enabled via property
numa (numa=on)
Fusion:
Added a workaround for ambiguous call of fusion::deque
constructor on GCC 4.4/c++0x (PR#178, commit).
Fixed a bug with C-style array (PR#177).
Fixed a fusion::for_each signature to take functor
by value (#4427).
This may break existing code with non-copyable (non-movable)
functor, but the implementation wasn't correct for a long time;
the documantation was correct from the first. So, please make
sure your usage.
Fixed unintentional MPL placeholder substituion bug on fusion::transform (#5490).
Moved description, how to conform Fusion sequence as MPL sequence,
to mpl section (#4029).
Added notes regarding IO facility for adapted type (#6091).
Geometry:
Improvements
469
Horizontal grid shift (nadgrids) in SRS transformations (undocumented
for now due to potential interface changes).
478
Box-Segment distance for spherical and geographic coordinate
systems.
487
Missing combinations of geometries in distance for spherical
and geographic cs
489
Additional direct geodesic problem formulas for internal use
Solved issues
470
Assertion failure with short spherical and geographic segments.
471
Invalid envelope of spherical polygon
498
Unexpected results with expand() and make_inverse() for spherical
and geographic CS
Bugfixes
488
Handle non-true-references in closing_iterator and ever_circling_range_iterator
495
VxWorks 7 cross-compilation issue.
GIL:
The I/O extensions have been entirely rewritten.
The library now requires a C++11-compliant compiler.
Documentation has been reformatted and updated.
Graph:
Conditionally replace deprecated/removed C++98 std::bind1st
by std::bind, std::auto_ptr
by std::unique_ptr, and std::random_shuffle
by std::shuffle. (PR#89)
Fix compiler error with release builds on VS2015 (PR#84)
Fix the Stanford GraphBase examples (PR#87)
Fix friend declarations for iterator_core_access (PR#103)
Add missing <boost/iterator.hpp> include (PR#104)
Avoid an unused variable warning (PR#90)
Fix some typos in documentation (PR#88, PR#98, PR#102)
Fix some issues in tests and examples (PR#85, PR#105)
Lexical Cast:
Fixes for clang-tidy warnings #12092
Log:
Improved support for VxWorks. (PR#39)
Save and restore ebx
register on x86 PIE targets in the dump
stream manipulator implementation.
Math:
Support for arbitrary precision complex valued quadrature and hence
contour integration
Improve performance of polynomial addition
Math:
Continue to improve numerical integration routines, and in particular
add support for contour integrals.
Improve accuracy of erfc function's rational approximations.
Multi-index Containers:
Containers of moveable but non-copyable elements can now be serialized
(ticket #13478). Thanks to Sébastien Paris for the report.
multi_index_container's
default constructor is no longer explicit
(ticket #13518).
Multiprecision:
Support for multiprecision complex numbers
Multiprecision:
Support added for complex multiprecision numbers.
Changed conversion to unsigned integer types to be truncating to
match standard defined behaviour.
Correct bug in MPFR string formatting.
Fix undefined behaviour in cpp_dec_float conversion from long long.
Add support for Eigen interoperability.
float128.hpp: Fix Intel on Windows build.
Fix type used in temporaries when expanding expression templates
containing mixed expressions.
Fix infinite loop in gmp_float to fixed-point string conversion.
Update the expression templates to issue static_asserts with better
error messages when you try and do something unsupported.
Fix bug in cpp_int where incrementing to zero doesn't set the sign
correctly.
Remove erroneous use of std::move, and rely on NVRO instead.
Fix up support for changes to MPIR-3.0.
Fix various conversion errors in cpp_bin_float when the exponent
type is a long long,
or else we're converting to an integer that is wider than we are.
Fix compatibility issue with GCC-8 caused by the introduction of
std::byte.
Optional:
Added member function has_value() for compatibility with std::optional (issue
#52).
Added member function map() for transforming optional<T>
into optional<U>
using a function of type T
-> U.
Added member function flat_map() for transforming optional<T>
into optional<U>
using a function of type T
-> optonal<U>.
Predef:
Add support for __ARM_ARCH macro. (from Tim Blechmann)
Add detection for PTX architecture. (from Benjamin Worpitz)
Add nvcc compiler detection. (from Benjamin Worpitz)
Add support for detecting CUDA. (from Benjamin Worpitz)
Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)
Program Options:
Support for multiple long names for an option, thanks to Eyal Rozenberg
(PR#53)
Python:
Bug fixes to correct autolink support (Windows) (#193)
Rational:
Fixed undefined behavior in normalize() (PR#19).
System:
Add constexpr to error_code and error_condition members under C++14
and above (PR#23).
Signals:
Removal Notice: Boost.Signals will
be removed in the next release. Boost.Signals was deprecated in version
1.54.0. Transition to Boost.Signals2 now to avoid disruption.
Stacktrace:
Fixed compilation on Solaris and other platforms that do qualify
address as const in dladdr
function (github 54).
Dropped dependency on Boost.LexicalCast.
Test:
Boost.test v3.8 see the Changes
log for more details.
Breaking changes
The master_test_suite_t
object is no more copyable
New feature:
Dataset test case can now use command line parameters
Bug fixes and pull requests:
Trac tickets: #12095, #12953, #13504, #13525,
#13528
Pull requests: #143, #145
TypeIndex:
Dropped dependency on Boost.MPL.
Uuid:
Breaking change: sha1 detail namespace
header redirection for backwards compatibility was removed (PR#69).
Added support for std::hash (PR#67).
Added support for move semantics on random generators (PR#74).
Properly handle EINTR when acquiring entropy (PR#74).
Use getrandom(2) instead of getentropy(3) on linux (PR#75).
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 4.0.1, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1, 7.0.0
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
TODO
[Less]
|
Posted
over 5 years
ago
Notes for Windows
users
Boost.WinAPI has been updated to target Windows 7 by default, where possible.
In previous releases Windows Vista was the default.
Boost.WinAPI is used internally as the Windows
... [More]
SDK abstraction layer in a number
of Boost libraries, including Boost.Beast, Boost.Chrono, Boost.DateTime, Boost.Dll,
Boost.Log, Boost.Process, Boost.Stacktrace, Boost.System, Boost.Thread and
Boost.UUID. To select the target Windows version define BOOST_USE_WINAPI_VERSION
to the numeric version similar to _WIN32_WINNT
while compiling Boost and user's code. For example:
b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 stage
The list of Windows API version numbers can be seen on this
page.
New Libraries
YAP: An expression template library
for C++14 and later, from Zach Laine.
Updated Libraries
Beast:
This version fixes a missing executor work guard in all composed
operations used in the implementation. Users who are experiencing
crashes related to asynchronous completion handlers are encouraged
to upgrade.
For a complete list of changes, please view the official Release
Notes.
Context:
#78: Linker error with context-impl=ucontext:
multiple definition of boost::context::detail::current_rec
Coroutine2:
#14: crash while stack unwinding
#18: some guidance on why to use coroutine2
#20: failes to compile test in due to the error C2039
#22: undefined behaviour documentation
Fiber:
#170: buffered_channel::try_push has incorrect documentation
#172: WIN64: 'invalid conversion from 'HANDLE' to
'std::thread::native_handle_type' errors for builds using mingw-w64
#175: throw exception "Operation not permitted"
NUMA support moved to extra library (fiber-numa); enabled via property
numa (numa=on)
Fusion:
Added a workaround for ambiguous call of fusion::deque
constructor on GCC 4.4/c++0x (PR#178, commit).
Fixed a bug with C-style array (PR#177).
Fixed a fusion::for_each signature to take functor
by value (#4427).
This may break existing code with non-copyable (non-movable)
functor, but the implementation wasn't correct for a long time;
the documantation was correct from the first. So, please make
sure your usage.
Fixed unintentional MPL placeholder substitution bug on fusion::transform (#5490).
Moved description, how to conform Fusion sequence as MPL sequence,
to mpl section (#4029).
Added notes regarding IO facility for adapted type (#6091).
Geometry:
Improvements
469
Horizontal grid shift (nadgrids) in SRS transformations (undocumented
for now due to potential interface changes).
478
Box-Segment distance for spherical and geographic coordinate
systems.
487
Missing combinations of geometries in distance for spherical
and geographic cs
489
Additional direct geodesic problem formulas for internal use
Solved issues
470
Assertion failure with short spherical and geographic segments.
471
Invalid envelope of spherical polygon
498
Unexpected results with expand() and make_inverse() for spherical
and geographic CS
504
Unused parameter warnings.
Bugfixes
488
Handle non-true-references in closing_iterator and ever_circling_range_iterator
495
VxWorks 7 cross-compilation issue.
GIL:
Added
The library now requires a C++11-compliant compiler.
New top-level all-in-one include/boost/gil.hpp
header (PR#70).
New Toolbox extension, reviewed
and accepted into Boost.
Changed
IO extensions have been entirely rewritten as IO v2, reviewed
and accepted into Boost.
Documentation has been reformatted and updated.
Removed
IO v1 extension has been replaced with IO v2.
Graph:
Conditionally replace deprecated/removed C++98 std::bind1st
by std::bind, std::auto_ptr
by std::unique_ptr, and std::random_shuffle
by std::shuffle. (PR#89)
Fix compiler error with release builds on VS2015 (PR#84)
Fix the Stanford GraphBase examples (PR#87)
Fix friend declarations for iterator_core_access (PR#103)
Add missing <boost/iterator.hpp> include (PR#104)
Avoid an unused variable warning (PR#90)
Fix some typos in documentation (PR#88, PR#98, PR#102)
Fix some issues in tests and examples (PR#85, PR#105)
Lexical Cast:
Fixes for clang-tidy warnings #12092
Log:
Improved support for VxWorks. (PR#39)
Save and restore ebx
register on x86 PIE targets in the dump
stream manipulator implementation.
Math:
Support for arbitrary precision complex valued quadrature and hence
contour integration
Improve performance of polynomial addition
Continue to improve numerical integration routines, and in particular
add support for contour integrals.
Improve accuracy of erfc function's rational approximations.
Multi-index Containers:
Containers of moveable but non-copyable elements can now be serialized
(ticket #13478). Thanks to Sébastien Paris for the report.
multi_index_container's
default constructor is no longer explicit
(ticket #13518).
Multiprecision:
Support added for complex multiprecision numbers.
Changed conversion to unsigned integer types to be truncating to
match standard defined behaviour.
Correct bug in MPFR string formatting.
Fix undefined behaviour in cpp_dec_float conversion from long long.
Add support for Eigen interoperability.
float128.hpp: Fix Intel on Windows build.
Fix type used in temporaries when expanding expression templates
containing mixed expressions.
Fix infinite loop in gmp_float to fixed-point string conversion.
Update the expression templates to issue static_asserts with better
error messages when you try and do something unsupported.
Fix bug in cpp_int where incrementing to zero doesn't set the sign
correctly.
Remove erroneous use of std::move, and rely on NVRO instead.
Fix up support for changes to MPIR-3.0.
Fix various conversion errors in cpp_bin_float when the exponent
type is a long long,
or else we're converting to an integer that is wider than we are.
Fix compatibility issue with GCC-8 caused by the introduction of
std::byte.
Optional:
Added member function has_value() for compatibility with std::optional (issue
#52).
Added member function map() for transforming optional<T>
into optional<U>
using a function of type T
-> U.
Added member function flat_map() for transforming optional<T>
into optional<U>
using a function of type T
-> optonal<U>.
Predef:
Add support for __ARM_ARCH macro. (from Tim Blechmann)
Add detection for PTX architecture. (from Benjamin Worpitz)
Add nvcc compiler detection. (from Benjamin Worpitz)
Add support for detecting CUDA. (from Benjamin Worpitz)
Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)
Program Options:
Support for multiple long names for an option, thanks to Eyal Rozenberg
(PR#53)
Python:
Bug fixes to correct autolink support (Windows) (#193)
Rational:
Fixed undefined behavior in normalize() (PR#19).
System:
Add constexpr to error_code and error_condition members under C++14
and above (PR#23).
Signals:
Removal Notice: Boost.Signals will
be removed in the next release. Boost.Signals was deprecated in version
1.54.0. Transition to Boost.Signals2 now to avoid disruption.
Spirit:
Spirit.X3:
Small list parser optimization (PR#368).
Pass container attributes through sequence parser or unary
ending down to a sequence parser (PR#370 #12085).
More fine grained sequence attribute check message (PR#371).
Removed redundant check in skip_over
(PR#373).
Workaround constexpr in noexcept VS2015 bug in entire x3::variant (PR#379).
Fixed calc4b example compilation (PR#384).
Minor code improvements (PR#374).
Spirit.Qi:
Fixed ADT support by permutation and sequence_or operator (PR#376).
Specialize iterator_source for random access (PR#383).
Removed redundant check in skip_over
(PR#373).
Spirit.Karma:
Fixed UB in get_absolute_value
function (PR#246).
Fixed use after scope bug if ADT getter returns by value (PR#375 #6126).
Spirit.Classic:
Fixed a regression introduced in PR#336 (PR#386).
Minor code improvements (PR#367).
Stacktrace:
Fixed compilation on Solaris and other platforms that do qualify
address as const in dladdr
function (github 54).
Dropped dependency on Boost.LexicalCast.
Test:
Boost.test v3.8 see the Changes
log for more details.
Breaking changes
The master_test_suite_t
object is no more copyable
New feature:
Dataset test case can now use command line parameters
Bug fixes and pull requests:
Trac tickets: #12095, #12953, #13504, #13525,
#13528
Pull requests: PR#143, PR#145
TypeIndex:
Dropped dependency on Boost.MPL.
Uuid:
Breaking change: sha1 detail namespace
header redirection for backwards compatibility was removed (PR#69).
Added support for std::hash (PR#67).
Added support for move semantics on random generators (PR#74).
Properly handle EINTR when acquiring entropy (PR#74).
Use getrandom(2) instead of getentropy(3) on linux (PR#75).
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 4.0.1, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Apple Clang: 9.0.0, 9.1.0
Apple Clang, C++11: 9.0.0, 9.1.0
Apple Clang, C++14: 9.0.0, 9.1.0
Apple Clang, C++17: 9.1.0
Apple 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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1, 7.0.0
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Apple Clang: 9.0.0, 9.1.0
Apple Clang, C++11: 9.0.0, 9.1.0
Apple Clang, C++14: 9.0.0, 9.1.0
Apple Clang, C++17: 9.1.0
Apple 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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
Daniel James, Vladimir Prus, and Marshall Clow managed this release.
[Less]
|
Posted
over 5 years
ago
Notes for Windows
users
Boost.WinAPI has been updated to target Windows 7 by default, where possible.
In previous releases Windows Vista was the default.
Boost.WinAPI is used internally as the Windows
... [More]
SDK abstraction layer in a number
of Boost libraries, including Boost.Beast, Boost.Chrono, Boost.DateTime, Boost.Dll,
Boost.Log, Boost.Process, Boost.Stacktrace, Boost.System, Boost.Thread and
Boost.UUID. To select the target Windows version define BOOST_USE_WINAPI_VERSION
to the numeric version similar to _WIN32_WINNT
while compiling Boost and user's code. For example:
b2 release define=BOOST_USE_WINAPI_VERSION=0x0501 stage
The list of Windows API version numbers can be seen on this
page.
New Libraries
YAP: An expression template library
for C++14 and later, from Zach Laine.
Updated Libraries
Beast:
This version fixes a missing executor work guard in all composed
operations used in the implementation. Users who are experiencing
crashes related to asynchronous completion handlers are encouraged
to upgrade.
For a complete list of changes, please view the official Release
Notes.
Context:
#78: Linker error with context-impl=ucontext:
multiple definition of boost::context::detail::current_rec
Coroutine2:
#14: crash while stack unwinding
#18: some guidance on why to use coroutine2
#20: failes to compile test in due to the error C2039
#22: undefined behaviour documentation
Fiber:
#170: buffered_channel::try_push has incorrect documentation
#172: WIN64: 'invalid conversion from 'HANDLE' to
'std::thread::native_handle_type' errors for builds using mingw-w64
#175: throw exception "Operation not permitted"
NUMA support moved to extra library (fiber-numa); enabled via property
numa (numa=on)
Fusion:
Added a workaround for ambiguous call of fusion::deque
constructor on GCC 4.4/c++0x (PR#178, commit).
Fixed a bug with C-style array (PR#177).
Fixed a fusion::for_each signature to take functor
by value (#4427).
This may break existing code with non-copyable (non-movable)
functor, but the implementation wasn't correct for a long time;
the documantation was correct from the first. So, please make
sure your usage.
Fixed unintentional MPL placeholder substituion bug on fusion::transform (#5490).
Moved description, how to conform Fusion sequence as MPL sequence,
to mpl section (#4029).
Added notes regarding IO facility for adapted type (#6091).
Geometry:
Improvements
469
Horizontal grid shift (nadgrids) in SRS transformations (undocumented
for now due to potential interface changes).
478
Box-Segment distance for spherical and geographic coordinate
systems.
487
Missing combinations of geometries in distance for spherical
and geographic cs
489
Additional direct geodesic problem formulas for internal use
Solved issues
470
Assertion failure with short spherical and geographic segments.
471
Invalid envelope of spherical polygon
498
Unexpected results with expand() and make_inverse() for spherical
and geographic CS
504
Unused parameter warnings.
Bugfixes
488
Handle non-true-references in closing_iterator and ever_circling_range_iterator
495
VxWorks 7 cross-compilation issue.
GIL:
The I/O extensions have been entirely rewritten.
The library now requires a C++11-compliant compiler.
Documentation has been reformatted and updated.
Graph:
Conditionally replace deprecated/removed C++98 std::bind1st
by std::bind, std::auto_ptr
by std::unique_ptr, and std::random_shuffle
by std::shuffle. (PR#89)
Fix compiler error with release builds on VS2015 (PR#84)
Fix the Stanford GraphBase examples (PR#87)
Fix friend declarations for iterator_core_access (PR#103)
Add missing <boost/iterator.hpp> include (PR#104)
Avoid an unused variable warning (PR#90)
Fix some typos in documentation (PR#88, PR#98, PR#102)
Fix some issues in tests and examples (PR#85, PR#105)
Lexical Cast:
Fixes for clang-tidy warnings #12092
Log:
Improved support for VxWorks. (PR#39)
Save and restore ebx
register on x86 PIE targets in the dump
stream manipulator implementation.
Math:
Support for arbitrary precision complex valued quadrature and hence
contour integration
Improve performance of polynomial addition
Continue to improve numerical integration routines, and in particular
add support for contour integrals.
Improve accuracy of erfc function's rational approximations.
Multi-index Containers:
Containers of moveable but non-copyable elements can now be serialized
(ticket #13478). Thanks to Sébastien Paris for the report.
multi_index_container's
default constructor is no longer explicit
(ticket #13518).
Multiprecision:
Support for multiprecision complex numbers
Multiprecision:
Support added for complex multiprecision numbers.
Changed conversion to unsigned integer types to be truncating to
match standard defined behaviour.
Correct bug in MPFR string formatting.
Fix undefined behaviour in cpp_dec_float conversion from long long.
Add support for Eigen interoperability.
float128.hpp: Fix Intel on Windows build.
Fix type used in temporaries when expanding expression templates
containing mixed expressions.
Fix infinite loop in gmp_float to fixed-point string conversion.
Update the expression templates to issue static_asserts with better
error messages when you try and do something unsupported.
Fix bug in cpp_int where incrementing to zero doesn't set the sign
correctly.
Remove erroneous use of std::move, and rely on NVRO instead.
Fix up support for changes to MPIR-3.0.
Fix various conversion errors in cpp_bin_float when the exponent
type is a long long,
or else we're converting to an integer that is wider than we are.
Fix compatibility issue with GCC-8 caused by the introduction of
std::byte.
Optional:
Added member function has_value() for compatibility with std::optional (issue
#52).
Added member function map() for transforming optional<T>
into optional<U>
using a function of type T
-> U.
Added member function flat_map() for transforming optional<T>
into optional<U>
using a function of type T
-> optonal<U>.
Predef:
Add support for __ARM_ARCH macro. (from Tim Blechmann)
Add detection for PTX architecture. (from Benjamin Worpitz)
Add nvcc compiler detection. (from Benjamin Worpitz)
Add support for detecting CUDA. (from Benjamin Worpitz)
Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)
Program Options:
Support for multiple long names for an option, thanks to Eyal Rozenberg
(PR#53)
Python:
Bug fixes to correct autolink support (Windows) (#193)
Rational:
Fixed undefined behavior in normalize() (PR#19).
System:
Add constexpr to error_code and error_condition members under C++14
and above (PR#23).
Signals:
Removal Notice: Boost.Signals will
be removed in the next release. Boost.Signals was deprecated in version
1.54.0. Transition to Boost.Signals2 now to avoid disruption.
Stacktrace:
Fixed compilation on Solaris and other platforms that do qualify
address as const in dladdr
function (github 54).
Dropped dependency on Boost.LexicalCast.
Test:
Boost.test v3.8 see the Changes
log for more details.
Breaking changes
The master_test_suite_t
object is no more copyable
New feature:
Dataset test case can now use command line parameters
Bug fixes and pull requests:
Trac tickets: #12095, #12953, #13504, #13525,
#13528
Pull requests: PR#143, PR#145
TypeIndex:
Dropped dependency on Boost.MPL.
Uuid:
Breaking change: sha1 detail namespace
header redirection for backwards compatibility was removed (PR#69).
Added support for std::hash (PR#67).
Added support for move semantics on random generators (PR#74).
Properly handle EINTR when acquiring entropy (PR#74).
Use getrandom(2) instead of getentropy(3) on linux (PR#75).
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 4.0.1, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
Clang, C++0x: 3.0
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.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.2,
6.0.1, 7.0.0
Clang, C++17: 5.0.2, 6.0.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
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, 8.0.1
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
GCC, C++17: 7.3.0, 8.0.1
Intel, C++14: 18.0
OS X:
Clang: 9.0.0, 9.1.0
Clang, C++11: 9.0.0, 9.1.0
Clang, C++14: 9.0.0, 9.1.0
Clang, C++17: 9.1.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
GCC, C++17: 7.1.0, 7.2.0, 7.3.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
TODO
[Less]
|
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)
Geometry:
Improvements:
New map projection and SRS transformation representations (undocumented
for now due to potential interface changes).
New densify() algorithm.
No longer using std::iterator (thanks to Daniela Engert).
No longer using allocator directly in the rtree. Replaced with
boost::container::allocator_traits (thanks to Daniela Engert).
Default rtree allocator changed to boost::container::new_allocator
to still support move semantics emulation in C++03 with boost::container::allocator_traits.
Area strategies interface changed. This is potentially a breaking
change.
Radius or Sphere can be passed into spherical strategies.
Added Point-Box and Box-Box spherical and geographic distance()
strategies.
Simplify (multi)polygons will discard output rings of 2 points
or (for closed polygons) 3 points, but it tries to avoid creating
those
Simplify (multi)polygons will omit empty interior rings or
polygons from output
Solved issues:
13386
Workaround for some gcc compilers
13381
Compile error with matrix_transformer in Visual C++ 2015
13436
Incorrectness in boost::geometry::model::polygon documentation
Bugfixes:
Add missing strategy resolving in length() algorithm, affecting
Variant support.
Simplify (multi)polygons now simplifies closing point
Changes in behavior
Simplify (multi)polygons now usually rotates input rings before
simplifying to select a non collinear point on its convex hull.
This improves output.
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
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)
Geometry:
Improvements:
New map projection and SRS transformation representations (undocumented
for now due to potential interface changes).
New densify() algorithm.
No longer using std::iterator (thanks to Daniela Engert).
No longer using allocator directly in the rtree. Replaced with
boost::container::allocator_traits (thanks to Daniela Engert).
Default rtree allocator changed to boost::container::new_allocator
to still support move semantics emulation in C++03 with boost::container::allocator_traits.
Area strategies interface changed. This is potentially a breaking
change.
Radius or Sphere can be passed into spherical strategies.
Added Point-Box and Box-Box spherical and geographic distance()
strategies.
Simplify (multi)polygons will discard output rings of 2 points
or (for closed polygons) 3 points, but it tries to avoid creating
those
Simplify (multi)polygons will omit empty interior rings or
polygons from output
Solved issues:
13386
Workaround for some gcc compilers
13381
Compile error with matrix_transformer in Visual C++ 2015
13436
Incorrectness in boost::geometry::model::polygon documentation
Bugfixes:
Add missing strategy resolving in length() algorithm, affecting
Variant support.
Simplify (multi)polygons now simplifies closing point
Changes in behavior
Simplify (multi)polygons now usually rotates input rings before
simplifying to select a non collinear point on its convex hull.
This improves output.
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
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]
|