Posted
about 7 years
ago
New Libraries
Process:
Process library by Klemens
D. Morgenstern, that provides cross platorm ways to allows you to:
create child processes
... [More]
setup streams for child processes
communicate with child processes through streams (synchronously or
asynchronously)
wait for processes to exit (synchronously or asynchronously)
terminate processes
Broken feature:
GitHub
#67: "group.wait() does not return".
Updated Libraries
Any:
Suppressed false warnings about returning reference to temporary
boost::addressof is now used instead of
directly taking the address #12615
Headers are not included using double quotes any more #12053
CI tests now run with address,
leak, and undefined sanitizers
Added more test
Atomic:
Fixed possible incorrect code generation in 64-bit atomic operations
on 32-bit x86 with gcc versions older than 4.7 and compatible compilers.
Config:
Added BOOST_NO_CXX11_SFINAE_EXPR
defect detection.
Container:
Fixed bugs:
Trac
#12749: "container::pmr::polymorphic_allocator
compilation error".
Trac
#11333: "boost::basic_string_ref should interop
with boost::container::basic_string".
GitHub
#45: "emplace_back must return reference to
back(), not to *end()".
Context:
new API: call/cc
deprecated API:execution-context
stack manipulation on MIPS fixed
#12719 segmentation fault when built with mingw-w64
#12948 Unexpected snprintf result is on Android ARM
#38: context_entry() crashes on macOS
#39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android
#41: std::bind() fails with invoke()
#46: "rename of continuation member functions" missed a
spot
#50: bad assembly for fcontext on ppc64/sysv/elf
Conversion:
Docs were ported to Quickbook (thanks to Mikhail Maksimov for the
port)
Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix)
CI tests now run with address,
leak, and undefined sanitizers
Core:
Implemented constexpr
addressof on compilers
that support C++11 constexpr
and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
macro indicates when constexpr
addressof is not
available.
In lightweight_test.hpp,
added new macros BOOST_TEST_ALL_EQ
and BOOST_TEST_ALL_WITH
for testing container contents (Bjorn Reese).
Coroutine2:
#4: coroutine2<> does not accept std::bind
DLL:
Fixed WinCE compilation
Added boost:dll::symbol_location_ptr function for
getting location of a symbol by pointer that could not be dereferenced
(void pointer for example)
Fixed UB in detail::aggressive_ptr_cast
for member pointers
Fixed leaks in experimental smart imports
Fixed warnings
CI tests now run with address
and leak sanitizers
Fiber:
(un)bounded_channel<> removed
#100: ASIO: unbuffered_channel / scheduler notify issue
#105: skynet variants crash on windows
#106: Passing a fixed_stack allocator to async/packaged_task doesn't
compile
#110: Compile error on ARMv6
#111: endless-loop in buffered_channel::try_value_pop()
#114: buffered_channel::try_push does
not wake
fibers in
pop`
Geometry:
Improvements:
matrix transformation is now based on Boost.QVM instead of
Boost.Ublas
Breaking changes:
ublas_transformer is renamed to matrix_transformer
explicit modifier is added to constructors of rtree index::dynamic_*
parameters
strategy::area::huiller replaced by strategy::area::spherical
Solved issues:
363
Missing includes in geometry/index/parameters.hpp
364
within(Linear, Areal) compilation error when arguments use
different point types
370
Buffer Seg Faults with Ring as Input
Solved tickets:
11899
boost::geometry::equals doesn't handle open polygons
11930
Inaccuracy of area::huiller strategy
11931
Wrong spherical area with pole encircling polygons
12410
Lack of support of geographic coordinate system in correct()
12566
Ambiguous template instantiation in equal_to<> when pair
value contains raw pointer
12861
Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree
12885
Use BOOST_THROW_EXCEPTION instead of throw
Bugfixes:
Fix distance_measure in get_turn_info
Hash:
Stop using std::unary_function and std::binary_function when they're not
available.
Interprocess:
Fixed bugs:
Trac
#12617 ("clock_gettime not available on OS X
10.11").
Trac
#12744 ("winapi::set_timer_resolution inadvertently
changes timer resolution (Windows)").
GitHub
Pull #32 ("Conform to std::pointer_traits requirements").
GitHub
Pull #33 ("explicit cast to derived class"
and "64/32 bit processes sharing").
GitHub
Pull #34 ("Update example to use multi_index::member
instead of BOOST_MULTI_INDEX_MEMBER").
GitHub
Pull #35 ("Fixed options for cross-compilation").
New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED
from Windows systems. This option derives the unique bootstamp used
to name the folder where shared memory is placed from registry values
associated with the session manager. This option only works on Vista
and later systems and might be more stable than the default version.
Intrusive:
Fixed bugs:
Boost
Trac #12745: key_nodeptr_comp broken if the key type
is void*
Boost
Trac #12761: intrusive::set::swap doesn't swap the
comparison function*
LexicalCast:
Fixed multiple warnings #11842
CI tests now run with address,
leak, and undefined sanitizers
Math:
Big push to ensure all functions in also in C99 are compatible with
Annex F.
Improved accuracy of the Bessel functions I0, I1, K0 and K1, see
12066.
Multi-index Containers:
Fixed a bug related to ambiguous references in the presence of more
than one ranked index (ticket #12955).
Maintenance fixes.
Multiprecision:
In cpp_bin_float
prevent double rounding when converting to a denormalized float.
See #12527.
Fix bug in integer sqrt for very small integers. See #12559.
Fix conversion to signed-zero in cpp_bin_float.
Change cpp_bin_float
rounding code to round at arbitrary location so we can use it for
conversions, see #12527.
Improve performance of 128-bit bit-scan operations.
Fix subtraction of very small quantities in cpp_bin_float.
See: #12580.
Bring error handling into line with C99 Annex F. See #12581.
Fix bitwise export of trivial cpp_int's,
see #12627.
Fix ilogb (and code
that uses it) to consistently return the smallest value of the exponent
type when the argument is zero, see #12625.
Allow conversion from __float128
to cpp_bin_float.
Fix bug in left shift of cpp_int
which would result in bit-loss, see #12790.
Fixed bugs in bounded but variable precision cpp_int's
caused by over-aggressive constexpr optimization, see #12798.
Predef:
Fix Intel C/C++ compiler version specification.
Add BOOST_VERSION_NUMBER_MAJOR,
BOOST_VERSION_NUMBER_MINOR,
BOOST_VERSION_NUMBER_PATCH
macros to extract components from valid version numbers.
Change VS version numbering. Versions after VS2015 will use the compiler
version instead of the varied product versions.
Program Options:
Support for storing values into boost::optional,
thanks to Ed Catmur (#7495,
PR#18)
Regex:
Compiling with Oracle C++ toolset is no longer restricted to static
linking.
Big effort to de-fuzz the library using libFuzzer and fix identified
issues, see: #12818.
Smart Pointers:
Rewrite of allocate_shared
and make_shared for
arrays for a more optimal and more maintainable implementation (Glen
Fernandes)
Pointer cast functions with move semantics (Chris Glover)
Test:
Boost.test v3.5 see the Change
log section for more details.
New feature:
Now Boost.Test provides customization
points for logging user defined types
JUnit output format can now have a log-level
JUnit output format has not better performances when the test
modules have a lot of checks
Bug fixes
Trac tickets #11756, #12540, #12712, #12748,
#12778
Pull request PR107,
PR108
TypeIndex:
Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST,
which implements the functionality for runtime_cast
but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS
macro (thanks to Chris Glover for imlpementing it)
Fixed undefined macro warning in stl_type_index.hpp #12739
CI tests now run with address,
leak, and undefined sanitizers
TypeTraits:
Added new traits make_void
and void_t.
Unordered:
Initial support for new C++17 member functions: insert_or_assign
and try_emplace in
unordered_map, merge and extract
in all containers.
Variant:
Fixed construction of variant from recursive_variant_
(thanks to Mikhail Maksimov for the fix) #12508, #12645
Do not enable variadic templates for MSVC2015Update1 as it still
has issues #12236
Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround)
#12680, #7120
Made boost::polymorphic_*get to work as boost::*get
in undocumented border cases and fixed tests #11950
CI tests now run with address,
leak, and undefined sanitizers
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1
Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1
Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1, 4.0
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang, C++98: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|
Posted
about 7 years
ago
New Libraries
Process:
Process library by Klemens
D. Morgenstern, that provides cross platorm ways to allows you to:
create child processes
... [More]
setup streams for child processes
communicate with child processes through streams (synchronously or
asynchronously)
wait for processes to exit (synchronously or asynchronously)
terminate processes
Broken feature:
GitHub
#67: "group.wait() does not return".
Updated Libraries
Any:
Suppressed false warnings about returning reference to temporary
boost::addressof is now used instead of
directly taking the address #12615
Headers are not included using double quotes any more #12053
CI tests now run with address,
leak, and undefined sanitizers
Added more test
Atomic:
Fixed possible incorrect code generation in 64-bit atomic operations
on 32-bit x86 with gcc versions older than 4.7 and compatible compilers.
Config:
Added BOOST_NO_CXX11_SFINAE_EXPR
defect detection.
Container:
Fixed bugs:
Trac
#12749: "container::pmr::polymorphic_allocator
compilation error".
Trac
#11333: "boost::basic_string_ref should interop
with boost::container::basic_string".
GitHub
#45: "emplace_back must return reference to
back(), not to *end()".
Context:
new API: call/cc
deprecated API:execution-context
stack manipulation on MIPS fixed
#12719 segmentation fault when built with mingw-w64
#12948 Unexpected snprintf result is on Android ARM
#38: context_entry() crashes on macOS
#39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android
#41: std::bind() fails with invoke()
#46: "rename of continuation member functions" missed a
spot
#50: bad assembly for fcontext on ppc64/sysv/elf
Conversion:
Docs were ported to Quickbook (thanks to Mikhail Maksimov for the
port)
Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix)
CI tests now run with address,
leak, and undefined sanitizers
Core:
Implemented constexpr
addressof on compilers
that support C++11 constexpr
and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
macro indicates when constexpr
addressof is not
available.
In lightweight_test.hpp,
added new macros BOOST_TEST_ALL_EQ
and BOOST_TEST_ALL_WITH
for testing container contents (Bjorn Reese).
Coroutine2:
#4: coroutine2<> does not accept std::bind
DLL:
Fixed WinCE compilation
Added boost:dll::symbol_location_ptr function for
getting location of a symbol by pointer that could not be dereferenced
(void pointer for example)
Fixed UB in detail::aggressive_ptr_cast
for member pointers
Fixed leaks in experimental smart imports
Fixed warnings
CI tests now run with address
and leak sanitizers
Fiber:
(un)bounded_channel<> removed
#100: ASIO: unbuffered_channel / scheduler notify issue
#105: skynet variants crash on windows
#106: Passing a fixed_stack allocator to async/packaged_task doesn't
compile
#110: Compile error on ARMv6
#111: endless-loop in buffered_channel::try_value_pop()
#114: buffered_channel::try_push does
not wake
fibers in
pop`
Geometry:
Improvements:
matrix transformation is now based on Boost.QVM instead of
Boost.Ublas
Breaking changes:
ublas_transformer is renamed to matrix_transformer
explicit modifier is added to constructors of rtree index::dynamic_*
parameters
strategy::area::huiller replaced by strategy::area::spherical
Solved issues:
363
Missing includes in geometry/index/parameters.hpp
364
within(Linear, Areal) compilation error when arguments use
different point types
370
Buffer Seg Faults with Ring as Input
Solved tickets:
11899
boost::geometry::equals doesn't handle open polygons
11930
Inaccuracy of area::huiller strategy
11931
Wrong spherical area with pole encircling polygons
12410
Lack of support of geographic coordinate system in correct()
12566
Ambiguous template instantiation in equal_to<> when pair
value contains raw pointer
12861
Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree
12885
Use BOOST_THROW_EXCEPTION instead of throw
Bugfixes:
Fix distance_measure in get_turn_info
Hash:
Stop using std::unary_function and std::binary_function when they're not
available.
Interprocess:
Fixed bugs:
Trac
#12617 ("clock_gettime not available on OS X
10.11").
Trac
#12744 ("winapi::set_timer_resolution inadvertently
changes timer resolution (Windows)").
GitHub
Pull #32 ("Conform to std::pointer_traits requirements").
GitHub
Pull #33 ("explicit cast to derived class"
and "64/32 bit processes sharing").
GitHub
Pull #34 ("Update example to use multi_index::member
instead of BOOST_MULTI_INDEX_MEMBER").
GitHub
Pull #35 ("Fixed options for cross-compilation").
New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED
from Windows systems. This option derives the unique bootstamp used
to name the folder where shared memory is placed from registry values
associated with the session manager. This option only works on Vista
and later systems and might be more stable than the default version.
Intrusive:
Fixed bugs:
Boost
Trac #12745: key_nodeptr_comp broken if the key type
is void*
Boost
Trac #12761: intrusive::set::swap doesn't swap the
comparison function*
LexicalCast:
Fixed multiple warnings #11842
CI tests now run with address,
leak, and undefined sanitizers
Math:
Big push to ensure all functions in also in C99 are compatible with
Annex F.
Improved accuracy of the Bessel functions I0, I1, K0 and K1, see
12066.
Multi-index Containers:
Fixed a bug related to ambiguous references in the presence of more
than one ranked index (ticket #12955).
Maintenance fixes.
Multiprecision:
In cpp_bin_float
prevent double rounding when converting to a denormalized float.
See #12527.
Fix bug in integer sqrt for very small integers. See #12559.
Fix conversion to signed-zero in cpp_bin_float.
Change cpp_bin_float
rounding code to round at arbitrary location so we can use it for
conversions, see #12527.
Improve performance of 128-bit bit-scan operations.
Fix subtraction of very small quantities in cpp_bin_float.
See: #12580.
Bring error handling into line with C99 Annex F. See #12581.
Fix bitwise export of trivial cpp_int's,
see #12627.
Fix ilogb (and code
that uses it) to consistently return the smallest value of the exponent
type when the argument is zero, see #12625.
Allow conversion from __float128
to cpp_bin_float.
Fix bug in left shift of cpp_int
which would result in bit-loss, see #12790.
Fixed bugs in bounded but variable precision cpp_int's
caused by over-aggressive constexpr optimization, see #12798.
Predef:
Fix Intel C/C++ compiler version specification.
Add BOOST_VERSION_NUMBER_MAJOR,
BOOST_VERSION_NUMBER_MINOR,
BOOST_VERSION_NUMBER_PATCH
macros to extract components from valid version numbers.
Change VS version numbering. Versions after VS2015 will use the compiler
version instead of the varied product versions.
Regex:
Compiling with Oracle C++ toolset is no longer restricted to static
linking.
Big effort to de-fuzz the library using libFuzzer and fix identified
issues, see: #12818.
Smart Pointers:
Rewrite of allocate_shared
and make_shared for
arrays for a more optimal and more maintainable implementation (Glen
Fernandes)
Pointer cast functions with move semantics (Chris Glover)
Test:
Boost.test v3.5 see the Change
log section for more details.
New feature:
Now Boost.Test provides customization
points for logging user defined types
JUnit output format can now have a log-level
JUnit output format has not better performances when the test
modules have a lot of checks
Bug fixes
Trac tickets #11756, #12540, #12712, #12748,
#12778
Pull request PR107,
PR108
TypeIndex:
Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST,
which implements the functionality for runtime_cast
but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS
macro (thanks to Chris Glover for imlpementing it)
Fixed undefined macro warning in stl_type_index.hpp #12739
CI tests now run with address,
leak, and undefined sanitizers
TypeTraits:
Added new traits make_void
and void_t.
Unordered:
Initial support for new C++17 member functions: insert_or_assign
and try_emplace in
unordered_map, merge and extract
in all containers.
Variant:
Fixed construction of variant from recursive_variant_
(thanks to Mikhail Maksimov for the fix) #12508, #12645
Do not enable variadic templates for MSVC2015Update1 as it still
has issues #12236
Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround)
#12680, #7120
Made boost::polymorphic_*get to work as boost::*get
in undocumented border cases and fixed tests #11950
CI tests now run with address,
leak, and undefined sanitizers
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1
Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1
Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1, 4.0
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang, C++98: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|
Posted
about 7 years
ago
New Libraries
Process:
Process library by Klemens
D. Morgenstern, that provides cross platorm ways to allows you to:
create child processes
... [More]
setup streams for child processes
communicate with child processes through streams (synchronously or
asynchronously)
wait for processes to exit (synchronously or asynchronously)
terminate processes
Broken feature:
GitHub
#67: "group.wait() does not return".
Updated Libraries
Any:
Suppressed false warnings about returning reference to temporary
boost::addressof is now used instead of
directly taking the address #12615
Headers are not included using double quotes any more #12053
CI tests now run with address,
leak, and undefined sanitizers
Added more test
Atomic:
Fixed possible incorrect code generation in 64-bit atomic operations
on 32-bit x86 with gcc versions older than 4.7 and compatible compilers.
Config:
Added BOOST_NO_CXX11_SFINAE_EXPR
defect detection.
Container:
Fixed bugs:
Trac
#12749: "container::pmr::polymorphic_allocator
compilation error".
Trac
#11333: "boost::basic_string_ref should interop
with boost::container::basic_string".
GitHub
#45: "emplace_back must return reference to
back(), not to *end()".
Context:
new API: call/cc
deprecated API:execution-context
stack manipulation on MIPS fixed
#12719 segmentation fault when built with mingw-w64
#12948 Unexpected snprintf result is on Android ARM
#38: context_entry() crashes on macOS
#39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android
#41: std::bind() fails with invoke()
#46: "rename of continuation member functions" missed a
spot
#50: bad assembly for fcontext on ppc64/sysv/elf
Conversion:
Docs were ported to Quickbook (thanks to Mikhail Maksimov for the
port)
Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix)
CI tests now run with address,
leak, and undefined sanitizers
Core:
Implemented constexpr
addressof on compilers
that support C++11 constexpr
and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
macro indicates when constexpr
addressof is not
available.
In lightweight_test.hpp,
added new macros BOOST_TEST_ALL_EQ
and BOOST_TEST_ALL_WITH
for testing container contents (Bjorn Reese).
Coroutine2:
#4: coroutine2<> does not accept std::bind
DLL:
Fixed WinCE compilation
Added boost:dll::symbol_location_ptr function for
getting location of a symbol by pointer that could not be dereferenced
(void pointer for example)
Fixed UB in detail::aggressive_ptr_cast
for member pointers
Fixed leaks in experimental smart imports
Fixed warnings
CI tests now run with address
and leak sanitizers
Fiber:
(un)bounded_channel<> removed
#100: ASIO: unbuffered_channel / scheduler notify issue
#105: skynet variants crash on windows
#106: Passing a fixed_stack allocator to async/packaged_task doesn't
compile
#110: Compile error on ARMv6
#111: endless-loop in buffered_channel::try_value_pop()
#114: buffered_channel::try_push does
not wake
fibers in
pop`
Geometry:
Improvements:
matrix transformation is now based on Boost.QVM instead of
Boost.Ublas
Breaking changes:
ublas_transformer is renamed to matrix_transformer
explicit modifier is added to constructors of rtree index::dynamic_*
parameters
strategy::area::huiller replaced by strategy::area::spherical
Solved issues:
363
Missing includes in geometry/index/parameters.hpp
364
within(Linear, Areal) compilation error when arguments use
different point types
370
Buffer Seg Faults with Ring as Input
Solved tickets:
11899
boost::geometry::equals doesn't handle open polygons
11930
Inaccuracy of area::huiller strategy
11931
Wrong spherical area with pole encircling polygons
12410
Lack of support of geographic coordinate system in correct()
12566
Ambiguous template instantiation in equal_to<> when pair
value contains raw pointer
12861
Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree
12885
Use BOOST_THROW_EXCEPTION instead of throw
Bugfixes:
Fix distance_measure in get_turn_info
Hash:
Stop using std::unary_function and std::binary_function when they're not
available.
Interprocess:
Fixed bugs:
Trac
#12617 ("clock_gettime not available on OS X
10.11").
Trac
#12744 ("winapi::set_timer_resolution inadvertently
changes timer resolution (Windows)").
GitHub
Pull #32 ("Conform to std::pointer_traits requirements").
GitHub
Pull #33 ("explicit cast to derived class"
and "64/32 bit processes sharing").
GitHub
Pull #34 ("Update example to use multi_index::member
instead of BOOST_MULTI_INDEX_MEMBER").
GitHub
Pull #35 ("Fixed options for cross-compilation").
New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED
from Windows systems. This option derives the unique bootstamp used
to name the folder where shared memory is placed from registry values
associated with the session manager. This option only works on Vista
and later systems and might be more stable than the default version.
Intrusive:
Fixed bugs:
Boost
Trac #12745: key_nodeptr_comp broken if the key type
is void*
Boost
Trac #12761: intrusive::set::swap doesn't swap the
comparison function*
LexicalCast:
Fixed multiple warnings #11842
CI tests now run with address,
leak, and undefined sanitizers
Math:
Big push to ensure all functions in also in C99 are compatible with
Annex F.
Improved accuracy of the Bessel functions I0, I1, K0 and K1, see
12066.
Multi-index Containers:
Fixed a bug related to ambiguous references in the presence of more
than one ranked index (ticket #12955).
Maintenance fixes.
Multiprecision:
In cpp_bin_float
prevent double rounding when converting to a denormalized float.
See #12527.
Fix bug in integer sqrt for very small integers. See #12559.
Fix conversion to signed-zero in cpp_bin_float.
Change cpp_bin_float
rounding code to round at arbitrary location so we can use it for
conversions, see #12527.
Improve performance of 128-bit bit-scan operations.
Fix subtraction of very small quantities in cpp_bin_float.
See: #12580.
Bring error handling into line with C99 Annex F. See #12581.
Fix bitwise export of trivial cpp_int's,
see #12627.
Fix ilogb (and code
that uses it) to consistently return the smallest value of the exponent
type when the argument is zero, see #12625.
Allow conversion from __float128
to cpp_bin_float.
Fix bug in left shift of cpp_int
which would result in bit-loss, see #12790.
Fixed bugs in bounded but variable precision cpp_int's
caused by over-aggressive constexpr optimization, see #12798.
Predef:
Fix Intel C/C++ compiler version specification.
Add BOOST_VERSION_NUMBER_MAJOR,
BOOST_VERSION_NUMBER_MINOR,
BOOST_VERSION_NUMBER_PATCH
macros to extract components from valid version numbers.
Change VS version numbering. Versions after VS2015 will use the compiler
version instead of the varied product versions.
Regex:
Compiling with Oracle C++ toolset is no longer restricted to static
linking.
Big effort to de-fuzz the library using libFuzzer and fix identified
issues, see: #12818.
Smart Pointers:
Rewrite of allocate_shared
and make_shared for
arrays for a more optimal and more maintainable implementation (Glen
Fernandes)
Pointer cast functions with move semantics (Chris Glover)
Test:
Boost.test v3.5 see the Change
log section for more details.
New feature:
Now Boost.Test provides customization
points for logging user defined types
JUnit output format can now have a log-level
JUnit output format has not better performances when the test
modules have a lot of checks
Bug fixes
Trac tickets #11756, #12540, #12712, #12748,
#12778
Pull request PR107,
PR108
TypeIndex:
Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST,
which implements the functionality for runtime_cast
but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS
macro (thanks to Chris Glover for imlpementing it)
Fixed undefined macro warning in stl_type_index.hpp #12739
CI tests now run with address,
leak, and undefined sanitizers
TypeTraits:
Added new traits make_void
and void_t.
Unordered:
Initial support for new C++17 member functions: insert_or_assign
and try_emplace in
unordered_map, merge and extract
in all containers.
Variant:
Fixed construction of variant from recursive_variant_
(thanks to Mikhail Maksimov for the fix) #12508, #12645
Do not enable variadic templates for MSVC2015Update1 as it still
has issues #12236
Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround)
#12680, #7120
Made boost::polymorphic_*get to work as boost::*get
in undocumented border cases and fixed tests #11950
CI tests now run with address,
leak, and undefined sanitizers
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1
Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1
Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1, 4.0
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang, C++98: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|
Posted
about 7 years
ago
New Libraries
Process:
Process library by Klemens
D. Morgenstern, that provides cross platorm ways to allows you to:
create child processes
... [More]
setup streams for child processes
communicate with child processes through streams (synchronously or
asynchronously)
wait for processes to exit (synchronously or asynchronously)
terminate processes
Broken feature:
GitHub
#67: "group.wait() does not return".
Updated Libraries
Any:
Suppressed false warnings about returning reference to temporary
boost::addressof is now used instead of
directly taking the address #12615
Headers are not included using double quotes any more #12053
CI tests now run with address,
leak, and undefined sanitizers
Added more test
Atomic:
Fixed possible incorrect code generation in 64-bit atomic operations
on 32-bit x86 with gcc versions older than 4.7 and compatible compilers.
Config:
Added BOOST_NO_CXX11_SFINAE_EXPR
defect detection.
Container:
Fixed bugs:
Trac
#12749: "container::pmr::polymorphic_allocator
compilation error".
Trac
#11333: "boost::basic_string_ref should interop
with boost::container::basic_string".
GitHub
#45: "emplace_back must return reference to
back(), not to *end()".
Context:
new API: call/cc
deprecated API:execution-context
stack manipulation on MIPS fixed
#12719 segmentation fault when built with mingw-w64
#12948 Unexpected snprintf result is on Android ARM
#38: context_entry() crashes on macOS
#39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android
#41: std::bind() fails with invoke()
#46: "rename of continuation member functions" missed a
spot
#50: bad assembly for fcontext on ppc64/sysv/elf
Conversion:
Docs were ported to Quickbook (thanks to Mikhail Maksimov for the
port)
Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix)
CI tests now run with address,
leak, and undefined sanitizers
Core:
Implemented constexpr
addressof on compilers
that support C++11 constexpr
and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
macro indicates when constexpr
addressof is not
available.
In lightweight_test.hpp,
added new macros BOOST_TEST_ALL_EQ
and BOOST_TEST_ALL_WITH
for testing container contents (Bjorn Reese).
Coroutine2:
#4: coroutine2<> does not accept std::bind
DLL:
Fixed WinCE compilation
Added boost:dll::symbol_location_ptr function for
getting location of a symbol by pointer that could not be dereferenced
(void pointer for example)
Fixed UB in detail::aggressive_ptr_cast
for member pointers
Fixed leaks in experimental smart imports
Fixed warnings
CI tests now run with address
and leak sanitizers
Fiber:
(un)bounded_channel<> removed
#100: ASIO: unbuffered_channel / scheduler notify issue
#105: skynet variants crash on windows
#106: Passing a fixed_stack allocator to async/packaged_task doesn't
compile
#110: Compile error on ARMv6
#111: endless-loop in buffered_channel::try_value_pop()
#114: buffered_channel::try_push does
not wake
fibers in
pop`
Geometry:
Improvements:
matrix transformation is now based on Boost.QVM instead of
Boost.Ublas
Breaking changes:
ublas_transformer is renamed to matrix_transformer
explicit modifier is added to constructors of rtree index::dynamic_*
parameters
strategy::area::huiller replaced by strategy::area::spherical
Solved issues:
363
Missing includes in geometry/index/parameters.hpp
364
within(Linear, Areal) compilation error when arguments use
different point types
370
Buffer Seg Faults with Ring as Input
Solved tickets:
11930
Inaccuracy of area::huiller strategy
11931
Wrong spherical area with pole encircling polygons
12566
Ambiguous template instantiation in equal_to<> when pair
value contains raw pointer
12861
Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree
12885
Use BOOST_THROW_EXCEPTION instead of throw
Bugfixes:
Fix distance_measure in get_turn_info
Hash:
Stop using std::unary_function and std::binary_function when they're not
available.
Interprocess:
Fixed bugs:
Trac
#12617 ("clock_gettime not available on OS X
10.11").
Trac
#12744 ("winapi::set_timer_resolution inadvertently
changes timer resolution (Windows)").
GitHub
Pull #32 ("Conform to std::pointer_traits requirements").
GitHub
Pull #33 ("explicit cast to derived class"
and "64/32 bit processes sharing").
GitHub
Pull #34 ("Update example to use multi_index::member
instead of BOOST_MULTI_INDEX_MEMBER").
GitHub
Pull #35 ("Fixed options for cross-compilation").
New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED
from Windows systems. This option derives the unique bootstamp used
to name the folder where shared memory is placed from registry values
associated with the session manager. This option only works on Vista
and later systems and might be more stable than the default version.
Intrusive:
Fixed bugs:
Boost
Trac #12745: key_nodeptr_comp broken if the key type
is void*
Boost
Trac #12761: intrusive::set::swap doesn't swap the
comparison function*
LexicalCast:
Fixed multiple warnings #11842
CI tests now run with address,
leak, and undefined sanitizers
Math:
Big push to ensure all functions in also in C99 are compatible with
Annex F.
Improved accuracy of the Bessel functions I0, I1, K0 and K1, see
12066.
Multi-index Containers:
Fixed a bug related to ambiguous references in the presence of more
than one ranked index (ticket #12955).
Maintenance fixes.
Multiprecision:
In cpp_bin_float
prevent double rounding when converting to a denormalized float.
See #12527.
Fix bug in integer sqrt for very small integers. See #12559.
Fix conversion to signed-zero in cpp_bin_float.
Change cpp_bin_float
rounding code to round at arbitrary location so we can use it for
conversions, see #12527.
Improve performance of 128-bit bit-scan operations.
Fix subtraction of very small quantities in cpp_bin_float.
See: #12580.
Bring error handling into line with C99 Annex F. See #12581.
Fix bitwise export of trivial cpp_int's,
see #12627.
Fix ilogb (and code
that uses it) to consistently return the smallest value of the exponent
type when the argument is zero, see #12625.
Allow conversion from __float128
to cpp_bin_float.
Fix bug in left shift of cpp_int
which would result in bit-loss, see #12790.
Fixed bugs in bounded but variable precision cpp_int's
caused by over-aggressive constexpr optimization, see #12798.
Predef:
Fix Intel C/C++ compiler version specification.
Add BOOST_VERSION_NUMBER_MAJOR,
BOOST_VERSION_NUMBER_MINOR,
BOOST_VERSION_NUMBER_PATCH
macros to extract components from valid version numbers.
Change VS version numbering. Versions after VS2015 will use the compiler
version instead of the varied product versions.
Program Options:
Support for storing values into boost::optional,
thanks to Ed Catmur (#7495,
PR#18)
Regex:
Compiling with Oracle C++ toolset is no longer restricted to static
linking.
Big effort to de-fuzz the library using libFuzzer and fix identified
issues, see: #12818.
Smart Pointers:
Rewrite of allocate_shared
and make_shared for
arrays for a more optimal and more maintainable implementation (Glen
Fernandes)
Pointer cast functions with move semantics (Chris Glover)
Test:
Boost.test v3.5 see the Change
log section for more details.
New feature:
Now Boost.Test provides customization
points for logging user defined types
JUnit output format can now have a log-level
JUnit output format has not better performances when the test
modules have a lot of checks
Bug fixes
Trac tickets #11756, #12540, #12712, #12748,
#12778
Pull request PR107,
PR108
TypeIndex:
Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST,
which implements the functionality for runtime_cast
but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS
macro (thanks to Chris Glover for imlpementing it)
Fixed undefined macro warning in stl_type_index.hpp #12739
CI tests now run with address,
leak, and undefined sanitizers
TypeTraits:
Added new traits make_void
and void_t.
Unordered:
Initial support for new C++17 member functions: insert_or_assign
and try_emplace in
unordered_map, merge and extract
in all containers.
Variant:
Fixed construction of variant from recursive_variant_
(thanks to Mikhail Maksimov for the fix) #12508, #12645
Do not enable variadic templates for MSVC2015Update1 as it still
has issues #12236
Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround)
#12680, #7120
Made boost::polymorphic_*get to work as boost::*get
in undocumented border cases and fixed tests #11950
CI tests now run with address,
leak, and undefined sanitizers
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1
Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1
Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1, 4.0
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang, C++98: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|
Posted
about 7 years
ago
New Libraries
Process:
Process library by Klemens
D. Morgenstern, that provides cross platorm ways to allows you to:
create child processes
... [More]
setup streams for child processes
communicate with child processes through streams (synchronously or
asynchronously)
wait for processes to exit (synchronously or asynchronously)
terminate processes
Broken feature:
GitHub
#67: "group.wait() does not return".
Updated Libraries
Any:
Suppressed false warnings about returning reference to temporary
boost::addressof is now used instead of
directly taking the address #12615
Headers are not included using double quotes any more #12053
CI tests now run with address,
leak, and undefined sanitizers
Added more test
Atomic:
Fixed possible incorrect code generation in 64-bit atomic operations
on 32-bit x86 with gcc versions older than 4.7 and compatible compilers.
Config:
Added BOOST_NO_CXX11_SFINAE_EXPR
defect detection.
Container:
Fixed bugs:
Trac
#12749: "container::pmr::polymorphic_allocator
compilation error".
Trac
#11333: "boost::basic_string_ref should interop
with boost::container::basic_string".
GitHub
#45: "emplace_back must return reference to
back(), not to *end()".
Context:
new API: call/cc
deprecated API:execution-context
stack manipulation on MIPS fixed
#12719 segmentation fault when built with mingw-w64
#12948 Unexpected snprintf result is on Android ARM
#38: context_entry() crashes on macOS
#39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android
#41: std::bind() fails with invoke()
#46: "rename of continuation member functions" missed a
spot
#50: bad assembly for fcontext on ppc64/sysv/elf
Conversion:
Docs were ported to Quickbook (thanks to Mikhail Maksimov for the
port)
Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix)
CI tests now run with address,
leak, and undefined sanitizers
Core:
Implemented constexpr
addressof on compilers
that support C++11 constexpr
and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
macro indicates when constexpr
addressof is not
available.
In lightweight_test.hpp,
added new macros BOOST_TEST_ALL_EQ
and BOOST_TEST_ALL_WITH
for testing container contents (Bjorn Reese).
Coroutine2:
#4: coroutine2<> does not accept std::bind
DLL:
Fixed WinCE compilation
Added boost:dll::symbol_location_ptr function for
getting location of a symbol by pointer that could not be dereferenced
(void pointer for example)
Fixed UB in detail::aggressive_ptr_cast
for member pointers
Fixed leaks in experimental smart imports
Fixed warnings
CI tests now run with address
and leak sanitizers
Fiber:
(un)bounded_channel<> removed
#100: ASIO: unbuffered_channel / scheduler notify issue
#105: skynet variants crash on windows
#106: Passing a fixed_stack allocator to async/packaged_task doesn't
compile
#110: Compile error on ARMv6
#111: endless-loop in buffered_channel::try_value_pop()
#114: buffered_channel::try_push does
not wake
fibers in
pop`
Geometry:
Improvements:
matrix transformation is now based on Boost.QVM instead of
Boost.Ublas
Breaking changes:
ublas_transformer is renamed to matrix_transformer
explicit modifier is added to constructors of rtree index::dynamic_*
parameters
strategy::area::huiller replaced by strategy::area::spherical
Solved issues:
363
Missing includes in geometry/index/parameters.hpp
364
within(Linear, Areal) compilation error when arguments use
different point types
370
Buffer Seg Faults with Ring as Input
Solved tickets:
11899
boost::geometry::equals doesn't handle open polygons
11930
Inaccuracy of area::huiller strategy
11931
Wrong spherical area with pole encircling polygons
12410
Lack of support of geographic coordinate system in correct()
12566
Ambiguous template instantiation in equal_to<> when pair
value contains raw pointer
12861
Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree
12885
Use BOOST_THROW_EXCEPTION instead of throw
Bugfixes:
Fix distance_measure in get_turn_info
Hash:
Stop using std::unary_function and std::binary_function when they're not
available.
Interprocess:
Fixed bugs:
Trac
#12617 ("clock_gettime not available on OS X
10.11").
Trac
#12744 ("winapi::set_timer_resolution inadvertently
changes timer resolution (Windows)").
GitHub
Pull #32 ("Conform to std::pointer_traits requirements").
GitHub
Pull #33 ("explicit cast to derived class"
and "64/32 bit processes sharing").
GitHub
Pull #34 ("Update example to use multi_index::member
instead of BOOST_MULTI_INDEX_MEMBER").
GitHub
Pull #35 ("Fixed options for cross-compilation").
New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED
from Windows systems. This option derives the unique bootstamp used
to name the folder where shared memory is placed from registry values
associated with the session manager. This option only works on Vista
and later systems and might be more stable than the default version.
Intrusive:
Fixed bugs:
Boost
Trac #12745: key_nodeptr_comp broken if the key type
is void*
Boost
Trac #12761: intrusive::set::swap doesn't swap the
comparison function*
LexicalCast:
Fixed multiple warnings #11842
CI tests now run with address,
leak, and undefined sanitizers
Math:
Big push to ensure all functions in also in C99 are compatible with
Annex F.
Improved accuracy of the Bessel functions I0, I1, K0 and K1, see
12066.
Multi-index Containers:
Fixed a bug related to ambiguous references in the presence of more
than one ranked index (ticket #12955).
Maintenance fixes.
Multiprecision:
In cpp_bin_float
prevent double rounding when converting to a denormalized float.
See #12527.
Fix bug in integer sqrt for very small integers. See #12559.
Fix conversion to signed-zero in cpp_bin_float.
Change cpp_bin_float
rounding code to round at arbitrary location so we can use it for
conversions, see #12527.
Improve performance of 128-bit bit-scan operations.
Fix subtraction of very small quantities in cpp_bin_float.
See: #12580.
Bring error handling into line with C99 Annex F. See #12581.
Fix bitwise export of trivial cpp_int's,
see #12627.
Fix ilogb (and code
that uses it) to consistently return the smallest value of the exponent
type when the argument is zero, see #12625.
Allow conversion from __float128
to cpp_bin_float.
Fix bug in left shift of cpp_int
which would result in bit-loss, see #12790.
Fixed bugs in bounded but variable precision cpp_int's
caused by over-aggressive constexpr optimization, see #12798.
Predef:
Fix Intel C/C++ compiler version specification.
Add BOOST_VERSION_NUMBER_MAJOR,
BOOST_VERSION_NUMBER_MINOR,
BOOST_VERSION_NUMBER_PATCH
macros to extract components from valid version numbers.
Change VS version numbering. Versions after VS2015 will use the compiler
version instead of the varied product versions.
Regex:
Compiling with Oracle C++ toolset is no longer restricted to static
linking.
Big effort to de-fuzz the library using libFuzzer and fix identified
issues, see: #12818.
Smart Pointers:
Rewrite of allocate_shared
and make_shared for
arrays for a more optimal and more maintainable implementation (Glen
Fernandes)
Pointer cast functions with move semantics (Chris Glover)
Test:
Boost.test v3.5 see the Change
log section for more details.
New feature:
Now Boost.Test provides customization
points for logging user defined types
JUnit output format can now have a log-level
JUnit output format has not better performances when the test
modules have a lot of checks
Bug fixes
Trac tickets #11756, #12540, #12712, #12748,
#12778
Pull request PR107,
PR108
TypeIndex:
Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST,
which implements the functionality for runtime_cast
but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS
macro (thanks to Chris Glover for imlpementing it)
Fixed undefined macro warning in stl_type_index.hpp #12739
CI tests now run with address,
leak, and undefined sanitizers
TypeTraits:
Added new traits make_void
and void_t.
Unordered:
Initial support for new C++17 member functions: insert_or_assign
and try_emplace in
unordered_map, merge and extract
in all containers.
Variant:
Fixed construction of variant from recursive_variant_
(thanks to Mikhail Maksimov for the fix) #12508, #12645
Do not enable variadic templates for MSVC2015Update1 as it still
has issues #12236
Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround)
#12680, #7120
Made boost::polymorphic_*get to work as boost::*get
in undocumented border cases and fixed tests #11950
CI tests now run with address,
leak, and undefined sanitizers
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1
Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1
Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1, 4.0
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang, C++98: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|
Posted
about 7 years
ago
New Libraries
Process:
Process library by Klemens
D. Morgenstern, that provides cross platorm ways to allows you to:
create child processes
... [More]
setup streams for child processes
communicate with child processes through streams (synchronously or
asynchronously)
wait for processes to exit (synchronously or asynchronously)
terminate processes
Broken feature:
GitHub
#67: "group.wait() does not return".
Updated Libraries
Any:
Suppressed false warnings about returning reference to temporary
boost::addressof is now used instead of
directly taking the address #12615
Headers are not included using double quotes any more #12053
CI tests now run with address,
leak, and undefined sanitizers
Added more test
Atomic:
Fixed possible incorrect code generation in 64-bit atomic operations
on 32-bit x86 with gcc versions older than 4.7 and compatible compilers.
Config:
Added BOOST_NO_CXX11_SFINAE_EXPR
defect detection.
Container:
Fixed bugs:
Trac
#12749: "container::pmr::polymorphic_allocator
compilation error".
Trac
#11333: "boost::basic_string_ref should interop
with boost::container::basic_string".
GitHub
#45: "emplace_back must return reference to
back(), not to *end()".
Context:
new API: call/cc
deprecated API:execution-context
stack manipulation on MIPS fixed
#12719 segmentation fault when built with mingw-w64
#12948 Unexpected snprintf result is on Android ARM
#38: context_entry() crashes on macOS
#39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android
#41: std::bind() fails with invoke()
#46: "rename of continuation member functions" missed a
spot
#50: bad assembly for fcontext on ppc64/sysv/elf
Conversion:
Docs were ported to Quickbook (thanks to Mikhail Maksimov for the
port)
Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix)
CI tests now run with address,
leak, and undefined sanitizers
Core:
Implemented constexpr
addressof on compilers
that support C++11 constexpr
and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
macro indicates when constexpr
addressof is not
available.
In lightweight_test.hpp,
added new macros BOOST_TEST_ALL_EQ
and BOOST_TEST_ALL_WITH
for testing container contents (Bjorn Reese).
Coroutine2:
#4: coroutine2<> does not accept std::bind
DLL:
Fixed WinCE compilation
Added boost:dll::symbol_location_ptr function for
getting location of a symbol by pointer that could not be dereferenced
(void pointer for example)
Fixed UB in detail::aggressive_ptr_cast
for member pointers
Fixed leaks in experimental smart imports
Fixed warnings
CI tests now run with address
and leak sanitizers
Fiber:
(un)bounded_channel<> removed
#100: ASIO: unbuffered_channel / scheduler notify issue
#105: skynet variants crash on windows
#106: Passing a fixed_stack allocator to async/packaged_task doesn't
compile
#110: Compile error on ARMv6
#111: endless-loop in buffered_channel::try_value_pop()
#114: buffered_channel::try_push does
not wake
fibers in
pop`
Geometry:
Improvements:
matrix transformation is now based on Boost.QVM instead of
Boost.Ublas
Breaking changes:
ublas_transformer is renamed to matrix_transformer
explicit modifier is added to constructors of rtree index::dynamic_*
parameters
strategy::area::huiller replaced by strategy::area::spherical
Solved issues:
363
Missing includes in geometry/index/parameters.hpp
364
within(Linear, Areal) compilation error when arguments use
different point types
370
Buffer Seg Faults with Ring as Input
Solved tickets:
11899
boost::geometry::equals doesn't handle open polygons
11930
Inaccuracy of area::huiller strategy
11931
Wrong spherical area with pole encircling polygons
12410
Lack of support of geographic coordinate system in correct()
12566
Ambiguous template instantiation in equal_to<> when pair
value contains raw pointer
12861
Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree
12885
Use BOOST_THROW_EXCEPTION instead of throw
Bugfixes:
Fix distance_measure in get_turn_info
Hash:
Stop using std::unary_function and std::binary_function when they're not
available.
Interprocess:
Fixed bugs:
Trac
#12617 ("clock_gettime not available on OS X
10.11").
Trac
#12744 ("winapi::set_timer_resolution inadvertently
changes timer resolution (Windows)").
GitHub
Pull #32 ("Conform to std::pointer_traits requirements").
GitHub
Pull #33 ("explicit cast to derived class"
and "64/32 bit processes sharing").
GitHub
Pull #34 ("Update example to use multi_index::member
instead of BOOST_MULTI_INDEX_MEMBER").
GitHub
Pull #35 ("Fixed options for cross-compilation").
New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED
from Windows systems. This option derives the unique bootstamp used
to name the folder where shared memory is placed from registry values
associated with the session manager. This option only works on Vista
and later systems and might be more stable than the default version.
Intrusive:
Fixed bugs:
Boost
Trac #12745: key_nodeptr_comp broken if the key type
is void*
Boost
Trac #12761: intrusive::set::swap doesn't swap the
comparison function*
LexicalCast:
Fixed multiple warnings #11842
CI tests now run with address,
leak, and undefined sanitizers
Math:
Big push to ensure all functions in also in C99 are compatible with
Annex F.
Improved accuracy of the Bessel functions I0, I1, K0 and K1, see
12066.
Multi-index Containers:
Fixed a bug related to ambiguous references in the presence of more
than one ranked index (ticket #12955).
Maintenance fixes.
Multiprecision:
In cpp_bin_float
prevent double rounding when converting to a denormalized float.
See #12527.
Fix bug in integer sqrt for very small integers. See #12559.
Fix conversion to signed-zero in cpp_bin_float.
Change cpp_bin_float
rounding code to round at arbitrary location so we can use it for
conversions, see #12527.
Improve performance of 128-bit bit-scan operations.
Fix subtraction of very small quantities in cpp_bin_float.
See: #12580.
Bring error handling into line with C99 Annex F. See #12581.
Fix bitwise export of trivial cpp_int's,
see #12627.
Fix ilogb (and code
that uses it) to consistently return the smallest value of the exponent
type when the argument is zero, see #12625.
Allow conversion from __float128
to cpp_bin_float.
Fix bug in left shift of cpp_int
which would result in bit-loss, see #12790.
Fixed bugs in bounded but variable precision cpp_int's
caused by over-aggressive constexpr optimization, see #12798.
Predef:
Fix Intel C/C++ compiler version specification.
Add BOOST_VERSION_NUMBER_MAJOR,
BOOST_VERSION_NUMBER_MINOR,
BOOST_VERSION_NUMBER_PATCH
macros to extract components from valid version numbers.
Change VS version numbering. Versions after VS2015 will use the compiler
version instead of the varied product versions.
Program Options:
Support for storing values into boost::optional,
thanks to Ed Catmur (#7495,
PR#18)
Regex:
Compiling with Oracle C++ toolset is no longer restricted to static
linking.
Big effort to de-fuzz the library using libFuzzer and fix identified
issues, see: #12818.
Smart Pointers:
Rewrite of allocate_shared
and make_shared for
arrays for a more optimal and more maintainable implementation (Glen
Fernandes)
Pointer cast functions with move semantics (Chris Glover)
Test:
Boost.test v3.5 see the Change
log section for more details.
New feature:
Now Boost.Test provides customization
points for logging user defined types
JUnit output format can now have a log-level
JUnit output format has not better performances when the test
modules have a lot of checks
Bug fixes
Trac tickets #11756, #12540, #12712, #12748,
#12778
Pull request PR107,
PR108
TypeIndex:
Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST,
which implements the functionality for runtime_cast
but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS
macro (thanks to Chris Glover for imlpementing it)
Fixed undefined macro warning in stl_type_index.hpp #12739
CI tests now run with address,
leak, and undefined sanitizers
TypeTraits:
Added new traits make_void
and void_t.
Unordered:
Initial support for new C++17 member functions: insert_or_assign
and try_emplace in
unordered_map, merge and extract
in all containers.
Variant:
Fixed construction of variant from recursive_variant_
(thanks to Mikhail Maksimov for the fix) #12508, #12645
Do not enable variadic templates for MSVC2015Update1 as it still
has issues #12236
Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround)
#12680, #7120
Made boost::polymorphic_*get to work as boost::*get
in undocumented border cases and fixed tests #11950
CI tests now run with address,
leak, and undefined sanitizers
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1
Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1
Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1, 4.0
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang, C++98: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|
Posted
about 7 years
ago
New Libraries
Process:
Process library by Klemens
D. Morgenstern, that provides cross platorm ways to allows you to:
create child processes
... [More]
setup streams for child processes
communicate with child processes through streams (synchronously or
asynchronously)
wait for processes to exit (synchronously or asynchronously)
terminate processes
Broken feature:
GitHub
#67: "group.wait() does not return".
Updated Libraries
Any:
Suppressed false warnings about returning reference to temporary
boost::addressof is now used instead of
directly taking the address #12615
Headers are not included using double quotes any more #12053
CI tests now run with address,
leak, and undefined sanitizers
Added more test
Atomic:
Fixed possible incorrect code generation in 64-bit atomic operations
on 32-bit x86 with gcc versions older than 4.7 and compatible compilers.
Config:
Added BOOST_NO_CXX11_SFINAE_EXPR
defect detection.
Container:
Fixed bugs:
Trac
#12749: "container::pmr::polymorphic_allocator
compilation error".
Trac
#11333: "boost::basic_string_ref should interop
with boost::container::basic_string".
GitHub
#45: "emplace_back must return reference to
back(), not to *end()".
Context:
new API: call/cc
deprecated API:execution-context
stack manipulation on MIPS fixed
#12719 segmentation fault when built with mingw-w64
#12948 Unexpected snprintf result is on Android ARM
#38: context_entry() crashes on macOS
#39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android
#41: std::bind() fails with invoke()
#46: "rename of continuation member functions" missed a
spot
#50: bad assembly for fcontext on ppc64/sysv/elf
Conversion:
Docs were ported to Quickbook (thanks to Mikhail Maksimov for the
port)
Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix)
CI tests now run with address,
leak, and undefined sanitizers
Core:
Implemented constexpr
addressof on compilers
that support C++11 constexpr
and SFINAE expressions (Glen Fernandes). BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
macro indicates when constexpr
addressof is not
available.
In lightweight_test.hpp,
added new macros BOOST_TEST_ALL_EQ
and BOOST_TEST_ALL_WITH
for testing container contents (Bjorn Reese).
Coroutine2:
#4: coroutine2<> does not accept std::bind
DLL:
Fixed WinCE compilation
Added boost:dll::symbol_location_ptr function for
getting location of a symbol by pointer that could not be dereferenced
(void pointer for example)
Fixed UB in detail::aggressive_ptr_cast
for member pointers
Fixed leaks in experimental smart imports
Fixed warnings
CI tests now run with address
and leak sanitizers
Fiber:
(un)bounded_channel<> removed
#100: ASIO: unbuffered_channel / scheduler notify issue
#105: skynet variants crash on windows
#106: Passing a fixed_stack allocator to async/packaged_task doesn't
compile
#110: Compile error on ARMv6
#111: endless-loop in buffered_channel::try_value_pop()
#114: buffered_channel::try_push does
not wake
fibers in
pop`
Geometry:
Improvements:
matrix transformation is now based on Boost.QVM instead of
Boost.Ublas
Breaking changes:
ublas_transformer is renamed to matrix_transformer
explicit modifier is added to constructors of rtree index::dynamic_*
parameters
strategy::area::huiller replaced by strategy::area::spherical
Solved issues:
363
Missing includes in geometry/index/parameters.hpp
364
within(Linear, Areal) compilation error when arguments use
different point types
370
Buffer Seg Faults with Ring as Input
Solved tickets:
11930
Inaccuracy of area::huiller strategy
11931
Wrong spherical area with pole encircling polygons
12566
Ambiguous template instantiation in equal_to<> when pair
value contains raw pointer
12861
Segmentation fault in stdlibc++ (gcc 4.8.2) affecting rtree
12885
Use BOOST_THROW_EXCEPTION instead of throw
Bugfixes:
Fix distance_measure in get_turn_info
Hash:
Stop using std::unary_function and std::binary_function when they're not
available.
Interprocess:
Fixed bugs:
Trac
#12617 ("clock_gettime not available on OS X
10.11").
Trac
#12744 ("winapi::set_timer_resolution inadvertently
changes timer resolution (Windows)").
GitHub
Pull #32 ("Conform to std::pointer_traits requirements").
GitHub
Pull #33 ("explicit cast to derived class"
and "64/32 bit processes sharing").
GitHub
Pull #34 ("Update example to use multi_index::member
instead of BOOST_MULTI_INDEX_MEMBER").
GitHub
Pull #35 ("Fixed options for cross-compilation").
New experimental option BOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED
from Windows systems. This option derives the unique bootstamp used
to name the folder where shared memory is placed from registry values
associated with the session manager. This option only works on Vista
and later systems and might be more stable than the default version.
Intrusive:
Fixed bugs:
Boost
Trac #12745: key_nodeptr_comp broken if the key type
is void*
Boost
Trac #12761: intrusive::set::swap doesn't swap the
comparison function*
LexicalCast:
Fixed multiple warnings #11842
CI tests now run with address,
leak, and undefined sanitizers
Math:
Big push to ensure all functions in also in C99 are compatible with
Annex F.
Improved accuracy of the Bessel functions I0, I1, K0 and K1, see
12066.
Multi-index Containers:
Fixed a bug related to ambiguous references in the presence of more
than one ranked index (ticket #12955).
Maintenance fixes.
Multiprecision:
In cpp_bin_float
prevent double rounding when converting to a denormalized float.
See #12527.
Fix bug in integer sqrt for very small integers. See #12559.
Fix conversion to signed-zero in cpp_bin_float.
Change cpp_bin_float
rounding code to round at arbitrary location so we can use it for
conversions, see #12527.
Improve performance of 128-bit bit-scan operations.
Fix subtraction of very small quantities in cpp_bin_float.
See: #12580.
Bring error handling into line with C99 Annex F. See #12581.
Fix bitwise export of trivial cpp_int's,
see #12627.
Fix ilogb (and code
that uses it) to consistently return the smallest value of the exponent
type when the argument is zero, see #12625.
Allow conversion from __float128
to cpp_bin_float.
Fix bug in left shift of cpp_int
which would result in bit-loss, see #12790.
Fixed bugs in bounded but variable precision cpp_int's
caused by over-aggressive constexpr optimization, see #12798.
Predef:
Fix Intel C/C++ compiler version specification.
Add BOOST_VERSION_NUMBER_MAJOR,
BOOST_VERSION_NUMBER_MINOR,
BOOST_VERSION_NUMBER_PATCH
macros to extract components from valid version numbers.
Change VS version numbering. Versions after VS2015 will use the compiler
version instead of the varied product versions.
Program Options:
Support for storing values into boost::optional,
thanks to Ed Catmur (#7495,
PR#18)
Regex:
Compiling with Oracle C++ toolset is no longer restricted to static
linking.
Big effort to de-fuzz the library using libFuzzer and fix identified
issues, see: #12818.
Smart Pointers:
Rewrite of allocate_shared
and make_shared for
arrays for a more optimal and more maintainable implementation (Glen
Fernandes)
Pointer cast functions with move semantics (Chris Glover)
Test:
Boost.test v3.5 see the Change
log section for more details.
New feature:
Now Boost.Test provides customization
points for logging user defined types
JUnit output format can now have a log-level
JUnit output format has not better performances when the test
modules have a lot of checks
Bug fixes
Trac tickets #11756, #12540, #12712, #12748,
#12778
Pull request PR107,
PR108
TypeIndex:
Added BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST,
which implements the functionality for runtime_cast
but does not include the BOOST_TYPE_INDEX_REGISTER_CLASS
macro (thanks to Chris Glover for imlpementing it)
Fixed undefined macro warning in stl_type_index.hpp #12739
CI tests now run with address,
leak, and undefined sanitizers
TypeTraits:
Added new traits make_void
and void_t.
Unordered:
Initial support for new C++17 member functions: insert_or_assign
and try_emplace in
unordered_map, merge and extract
in all containers.
Variant:
Fixed construction of variant from recursive_variant_
(thanks to Mikhail Maksimov for the fix) #12508, #12645
Do not enable variadic templates for MSVC2015Update1 as it still
has issues #12236
Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround)
#12680, #7120
Made boost::polymorphic_*get to work as boost::*get
in undocumented border cases and fixed tests #11950
CI tests now run with address,
leak, and undefined sanitizers
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1, 3.9.1
Clang, C++14: 3.5, 3.6, 3.7.1, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1, 3.9.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.8.1, 3.9.1
Clang, C++14: 3.4, 3.5, 3.6, 3.7. 3.8, 3.8.1, 3.9.1
Clang, C++1z: 3.9.1, 4.0
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.4, 6.2.0
GCC, C++14: 5.4.1, 6.2.0, 6.3.0, 7.0.1
GCC, C++1z: 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
FreeBSD:
Clang, C++98: 3.8
Clang, C++11: 3.8
Clang, C++14: 3.8
Clang, C++1z: 3.8
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|
Posted
over 7 years
ago
Post-release Patches
Atomic:
Using 64-bit atomic operations on 32-bit x86 with gcc versions older
than 4.7 and compatible compilers can
... [More]
result in generation of incorrect
code. This problem is fixed in this
commit.
Updated Libraries
Atomic:
Added the static constant atomic<T>::is_always_lock_free
for conformance with C++17. The constant indicates that the given
specialization always provides lock-free implementation of atomic
operations.
Improved support of Oracle Studio on x86 targets.
Container:
Fixed bugs:
Trac
#12534: "flat_map fails to compile if included
after type_traits is instantiated under gcc".
Trac
#12577: "Null reference in pair.hpp triggers
runtime warning with -fsanitize=undefined".
GitHub
#40: Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type
-> allocator_traits::size_type.
GitHub
#41: Avoid -Wunreachable-code in do_allocate().
Context:
#11687 Xcode (Apple clang) and thread_local
#12114 context does not preserve fpu context on ios arm64 devices
(fixed for other architecturs too)
#12411 fpu registers not preserved with O2 optimizations in Visual
Studio (fixed for other architecturs too)
#12551 building boost on arm64 causes error: unknown directive
reduced signatur for ontop-functions
unit-test for private fcontext-API
performance-test for ucontext and fcontext fixed
Fiber:
unbounded_channel and bounded_channel marked as deprecated
new classes buffered_channel and unbuffered_channel
performance improved
Fusion:
Fixed fusion::vector buggy constructors (Thanks
to Lee Clagett).
BOOST_FUSION_ADAPT* and BOOST_FUSION_DEFINE* now allow empty structures. (#6592)
BOOST_FUSION_DEFINE* allows move constructor and assignment.
(#10099)
Adaptor for std::array (Thanks to Mateusz Łoskot).
(#8241)
Fixed returning temporary variable warnings on MSVC.
Geometry:
Improvements:
Intersection: take care that output is valid (work in progres,
not yet finished - but more is valid)
Solved tickets:
#12289
Avoid warning/compilation error for std::cout
#12412
Invalid result of covered_by() with geographic Points and Boxes
#12413
rtree::remove() not working properly with geographic Points
Hash:
Fixed some warnings.
Interprocess:
Fixed bugs:
Trac
#12499 ("Memory allocation fails").
GitHub
Pull #30 ("Provide extension point so library
user can provide default temp folder").
GitHub
Pull #31 ("Add xsi_key(key_t) constructor").
Intrusive:
Fixed bugs:
Boost
Trac #12556: member_value_traits.hpp has a missing
#include
Lexical Cast:
Fixed issue found by -fsanitize=undefined #21
Log:
General changes:
Removed the previously deprecated type_info_wrapper.
New features:
Added a way to access the current file name from the text file
sink backend. The file name can be obtained with the get_current_file_name method.
Bug fixes:
Fixed compilation errors for Android API prior to version 21.
Streaming operators now take scalar types and enums by value.
This allows to output static constants and bitfields directly
into formatting stream and record stream. (#11998)
Fixed auto-detection of native syslog API. (#12600)
In UDP socket based syslog backend implementation, changed
the syslog message format for better compliance with RFC3164.
File close handler installed in text file sink backend is no
longer called if the file is not open yet.
See changelog
for more details.
Metaparse:
Improved the implementation of BOOST_METAPARSE_STRING
The maximal string length limit has been increased to 2048
The maximal string length limit can be extended beyond 2048
by regenerating some of the Boost headers using a script (part
of the library)
The string length limit can be changed within a compilation
unit
Move:
Improved experimental adaptive sort algorithm performance
Activate BOOST_MOVE_FORCEINLINE
Optional:
Added two new in-place constructors. They work similarly to emplace()
functions: they initialize the contained value by perfect-forwarding
the obtained arguments. One constructor always initializes the contained
value, the other based on a boolean condition.
Syntax o =
{} now correctly un-initializes
an optional, just
like in std::optional.
Fixed optional<optional<T>&>
initialization. (#12203)
Optional constructors are sfinae-friendly. This fixes interaction
with std::tuple. (#12563)
Phoenix:
Most of modules now support C++11 variadic templates.
Fixed type deduction failure with result type.
Suppress unused warnings.
Fixed too few arguments error on binary math functions.
Added workarounds for older compiler.
Python:
Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr)
Incorporated an extension API to wrap NumPy
Removed obsolete bits and pieces
Test:
Boost.test v3.4 see the Change
log section for more details.
New feature: per_element
and lexicographic
modifiers of BOOST_TEST
can also be applied to string comparison
Breaking change: colons that appear in test case names are replaced
with underscores
Bug fixes
Trac tickets #11756, #11907, #12339, #12506,
#12507, #12530,
Trac tickets #12531
Pull request PR103,
PR104
TypeIndex:
Added runtime_cast
to the library as an emulation of dynamic_cast.
Thanks to Chris Glover for the implementation. See runtime_cast
reference for more info.
Internals of the CTTI were made more platform independant, due to
change of the std::size_t
type to unsigned int.
Units:
Fix inspection warnings
updated physico-chemical constants to CODATA 2014 values
define biot correctly as 10 Ampere
Unordered:
Fix an exception safety issue in assignment.
Use std::allocator_traits where available,
and support modern style rebind (#12459).
Add some allocator aware constructors.
Use the hint iterator in emplace_hint.
Fixed some warnings.
See the changelog
for more details.
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
Clang, C++14: 3.5, 3.6, 3.7, 3.8.1
Clang, C++1z: 3.8.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0
GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
Clang, C++14: 3.5, 3.6, 3.7, 3.8.1
Clang, C++1z: 3.8.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.1.1, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0
GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0, 7.0.0 (experimental)
GCC, C++1z: 6.1.1
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
GCC,C++14: 6.1.0
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|
Posted
over 7 years
ago
Post-release Patches
Atomic:
Using 64-bit atomic operations on 32-bit x86 with gcc versions older
than 4.7 and compatible compilers can
... [More]
result in generation of incorrect
code. This problem is fixed in this
commit.
Updated Libraries
Atomic:
Added the static constant atomic<T>::is_always_lock_free
for conformance with C++17. The constant indicates that the given
specialization always provides lock-free implementation of atomic
operations.
Improved support of Oracle Studio on x86 targets.
Container:
Fixed bugs:
Trac
#12534: "flat_map fails to compile if included
after type_traits is instantiated under gcc".
Trac
#12577: "Null reference in pair.hpp triggers
runtime warning with -fsanitize=undefined".
GitHub
#40: Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type
-> allocator_traits::size_type.
GitHub
#41: Avoid -Wunreachable-code in do_allocate().
Context:
#11687 Xcode (Apple clang) and thread_local
#12114 context does not preserve fpu context on ios arm64 devices
(fixed for other architecturs too)
#12411 fpu registers not preserved with O2 optimizations in Visual
Studio (fixed for other architecturs too)
#12551 building boost on arm64 causes error: unknown directive
reduced signatur for ontop-functions
unit-test for private fcontext-API
performance-test for ucontext and fcontext fixed
Fiber:
unbounded_channel and bounded_channel marked as deprecated
new classes buffered_channel and unbuffered_channel
performance improved
Fusion:
Fixed fusion::vector buggy constructors (Thanks
to Lee Clagett).
BOOST_FUSION_ADAPT* and BOOST_FUSION_DEFINE* now allow empty structures. (#6592)
BOOST_FUSION_DEFINE* allows move constructor and assignment.
(#10099)
Adaptor for std::array (Thanks to Mateusz Łoskot).
(#8241)
Fixed returning temporary variable warnings on MSVC.
Geometry:
Improvements:
Intersection: take care that output is valid (work in progres,
not yet finished - but more is valid)
Solved tickets:
#12289
Avoid warning/compilation error for std::cout
#12412
Invalid result of covered_by() with geographic Points and Boxes
#12413
rtree::remove() not working properly with geographic Points
Hash:
Fixed some warnings.
Interprocess:
Fixed bugs:
Trac
#12499 ("Memory allocation fails").
GitHub
Pull #30 ("Provide extension point so library
user can provide default temp folder").
GitHub
Pull #31 ("Add xsi_key(key_t) constructor").
Intrusive:
Fixed bugs:
Boost
Trac #12556: member_value_traits.hpp has a missing
#include
Lexical Cast:
Fixed issue found by -fsanitize=undefined #21
Log:
General changes:
Removed the previously deprecated type_info_wrapper.
New features:
Added a way to access the current file name from the text file
sink backend. The file name can be obtained with the get_current_file_name method.
Bug fixes:
Fixed compilation errors for Android API prior to version 21.
Streaming operators now take scalar types and enums by value.
This allows to output static constants and bitfields directly
into formatting stream and record stream. (#11998)
Fixed auto-detection of native syslog API. (#12600)
In UDP socket based syslog backend implementation, changed
the syslog message format for better compliance with RFC3164.
File close handler installed in text file sink backend is no
longer called if the file is not open yet.
See changelog
for more details.
Metaparse:
Improved the implementation of BOOST_METAPARSE_STRING
The maximal string length limit has been increased to 2048
The maximal string length limit can be extended beyond 2048
by regenerating some of the Boost headers using a script (part
of the library)
The string length limit can be changed within a compilation
unit
Move:
Improved experimental adaptive sort algorithm performance
Activate BOOST_MOVE_FORCEINLINE
Optional:
Added two new in-place constructors. They work similarly to emplace()
functions: they initialize the contained value by perfect-forwarding
the obtained arguments. One constructor always initializes the contained
value, the other based on a boolean condition.
Syntax o =
{} now correctly un-initializes
an optional, just
like in std::optional.
Fixed optional<optional<T>&>
initialization. (#12203)
Optional constructors are sfinae-friendly. This fixes interaction
with std::tuple. (#12563)
Phoenix:
Most of modules now support C++11 variadic templates.
Fixed type deduction failure with result type.
Suppress unused warnings.
Fixed too few arguments error on binary math functions.
Added workarounds for older compiler.
Python:
Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr)
Incorporated an extension API to wrap NumPy
Removed obsolete bits and pieces
Test:
Boost.test v3.4 see the Change
log section for more details.
New feature: per_element
and lexicographic
modifiers of BOOST_TEST
can also be applied to string comparison
Breaking change: colons that appear in test case names are replaced
with underscores
Bug fixes
Trac tickets #11756, #11907, #12339, #12506,
#12507, #12530,
Trac tickets #12531
Pull request PR103,
PR104
TypeIndex:
Added runtime_cast
to the library as an emulation of dynamic_cast.
Thanks to Chris Glover for the implementation. See runtime_cast
reference for more info.
Internals of the CTTI were made more platform independant, due to
change of the std::size_t
type to unsigned int.
Units:
Fix inspection warnings
updated physico-chemical constants to CODATA 2014 values
define biot correctly as 10 Ampere
Unordered:
Fix an exception safety issue in assignment.
Use std::allocator_traits where available,
and support modern style rebind (#12459).
Add some allocator aware constructors.
Use the hint iterator in emplace_hint.
Fixed some warnings.
See the changelog
for more details.
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
Clang, C++14: 3.5, 3.6, 3.7, 3.8.1
Clang, C++1z: 3.8.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0
GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
Clang, C++14: 3.5, 3.6, 3.7, 3.8.1
Clang, C++1z: 3.8.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.1.1, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0
GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0, 7.0.0 (experimental)
GCC, C++1z: 6.1.1
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
GCC,C++14: 6.1.0
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|
Posted
over 7 years
ago
Post-release Patches
Atomic:
Using 64-bit atomic operations on 32-bit x86 with gcc versions older
than 4.7 and compatible compilers can
... [More]
result in generation of incorrect
code. This problem is fixed in this
commit.
Updated Libraries
Atomic:
Added the static constant atomic<T>::is_always_lock_free
for conformance with C++17. The constant indicates that the given
specialization always provides lock-free implementation of atomic
operations.
Improved support of Oracle Studio on x86 targets.
Container:
Fixed bugs:
Trac
#12534: "flat_map fails to compile if included
after type_traits is instantiated under gcc".
Trac
#12577: "Null reference in pair.hpp triggers
runtime warning with -fsanitize=undefined".
GitHub
#40: Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type
-> allocator_traits::size_type.
GitHub
#41: Avoid -Wunreachable-code in do_allocate().
Context:
#11687 Xcode (Apple clang) and thread_local
#12114 context does not preserve fpu context on ios arm64 devices
(fixed for other architecturs too)
#12411 fpu registers not preserved with O2 optimizations in Visual
Studio (fixed for other architecturs too)
#12551 building boost on arm64 causes error: unknown directive
reduced signatur for ontop-functions
unit-test for private fcontext-API
performance-test for ucontext and fcontext fixed
Fiber:
unbounded_channel and bounded_channel marked as deprecated
new classes buffered_channel and unbuffered_channel
performance improved
Fusion:
Fixed fusion::vector buggy constructors (Thanks
to Lee Clagett).
BOOST_FUSION_ADAPT* and BOOST_FUSION_DEFINE* now allow empty structures. (#6592)
BOOST_FUSION_DEFINE* allows move constructor and assignment.
(#10099)
Adaptor for std::array (Thanks to Mateusz Łoskot).
(#8241)
Fixed returning temporary variable warnings on MSVC.
Geometry:
Improvements:
Intersection: take care that output is valid (work in progres,
not yet finished - but more is valid)
Solved tickets:
#12289
Avoid warning/compilation error for std::cout
#12412
Invalid result of covered_by() with geographic Points and Boxes
#12413
rtree::remove() not working properly with geographic Points
Hash:
Fixed some warnings.
Interprocess:
Fixed bugs:
Trac
#12499 ("Memory allocation fails").
GitHub
Pull #30 ("Provide extension point so library
user can provide default temp folder").
GitHub
Pull #31 ("Add xsi_key(key_t) constructor").
Intrusive:
Fixed bugs:
Boost
Trac #12556: member_value_traits.hpp has a missing
#include
Lexical Cast:
Fixed issue found by -fsanitize=undefined #21
Log:
General changes:
Removed the previously deprecated type_info_wrapper.
New features:
Added a way to access the current file name from the text file
sink backend. The file name can be obtained with the get_current_file_name method.
Bug fixes:
Fixed compilation errors for Android API prior to version 21.
Streaming operators now take scalar types and enums by value.
This allows to output static constants and bitfields directly
into formatting stream and record stream. (#11998)
Fixed auto-detection of native syslog API. (#12600)
In UDP socket based syslog backend implementation, changed
the syslog message format for better compliance with RFC3164.
File close handler installed in text file sink backend is no
longer called if the file is not open yet.
See changelog
for more details.
Metaparse:
Improved the implementation of BOOST_METAPARSE_STRING
The maximal string length limit has been increased to 2048
The maximal string length limit can be extended beyond 2048
by regenerating some of the Boost headers using a script (part
of the library)
The string length limit can be changed within a compilation
unit
Move:
Improved experimental adaptive sort algorithm performance
Activate BOOST_MOVE_FORCEINLINE
Optional:
Added two new in-place constructors. They work similarly to emplace()
functions: they initialize the contained value by perfect-forwarding
the obtained arguments. One constructor always initializes the contained
value, the other based on a boolean condition.
Syntax o =
{} now correctly un-initializes
an optional, just
like in std::optional.
Fixed optional<optional<T>&>
initialization. (#12203)
Optional constructors are sfinae-friendly. This fixes interaction
with std::tuple. (#12563)
Phoenix:
Most of modules now support C++11 variadic templates.
Fixed type deduction failure with result type.
Suppress unused warnings.
Fixed too few arguments error on binary math functions.
Added workarounds for older compiler.
Python:
Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr)
Incorporated an extension API to wrap NumPy
Removed obsolete bits and pieces
Test:
Boost.test v3.4 see the Change
log section for more details.
New feature: per_element
and lexicographic
modifiers of BOOST_TEST
can also be applied to string comparison
Breaking change: colons that appear in test case names are replaced
with underscores
Bug fixes
Trac tickets #11756, #11907, #12339, #12506,
#12507, #12530,
Trac tickets #12531
Pull request PR103,
PR104
TypeIndex:
Added runtime_cast
to the library as an emulation of dynamic_cast.
Thanks to Chris Glover for the implementation. See runtime_cast
reference for more info.
Internals of the CTTI were made more platform independant, due to
change of the std::size_t
type to unsigned int.
Units:
Fix inspection warnings
updated physico-chemical constants to CODATA 2014 values
define biot correctly as 10 Ampere
Unordered:
Fix an exception safety issue in assignment.
Use std::allocator_traits where available,
and support modern style rebind (#12459).
Add some allocator aware constructors.
Use the hint iterator in emplace_hint.
Fixed some warnings.
See the changelog
for more details.
Compilers Tested
Boost's primary test compilers are:
Linux:
Clang: 3.0, 3.8.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
Clang, C++14: 3.5, 3.6, 3.7, 3.8.1
Clang, C++1z: 3.8.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0
GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Boost's additional test compilers include:
Linux:
Clang: 3.0, 3.8.1
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
Clang, C++14: 3.5, 3.6, 3.7, 3.8.1
Clang, C++1z: 3.8.1
GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.1.1, 6.2.0
GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0
GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0, 7.0.0 (experimental)
GCC, C++1z: 6.1.1
Intel: 16.0, 17.0
Intel, C++11: 16.0, 17.0
Intel, C++14: 16.0, 17.0
OS X:
Apple Clang: 7.0.2
Apple Clang, C++11: 7.0.2
Windows:
GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
Android:
Clang: 3.6, 3.7, 3.8
GCC: 4.9, 5.4, 6.2
GCC,C++14: 6.1.0
QNX:
QCC: 4.4.2
SunOS:
Oracle Solaris Studio: 12.5
Oracle Solaris Studio, C++11: 12.5
Acknowledgements
Beman Dawes, Eric Niebler,
Rene Rivera, Daniel James,
Vladimir Prus and Marshall Clow managed this release.
[Less]
|