Version 1.80.0
Version 1.80.0
August 10th, 2022 21:25 GMT
| Platform | File | SHA256 Hash |
|---|---|---|
| unix | boost_1_80_0.tar.bz2 | 1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0 |
| boost_1_80_0.tar.gz | 4b2136f98bdd1f5857f1c3dea9ac2018effe65286cf251534b6ae20cc45e1847 | |
| windows | boost_1_80_0.7z | d12a2af721e22dbfb984ef061ee4c4ab2387f1904f6d65bc5acebaa34d6366ec |
| boost_1_80_0.zip | e34756f63abe8ac34b35352743f17d061fcc825969a2dd8458264edb38781782 |
Known Issues
These are patches from library authors which were found too late to be fixed in the release.
-
Config
-
Filesystem
New Libraries
-
No new libraries.
Updated Libraries
-
Asio:
-
Added a deduced trailing return type to all asynchronous operations, to enable the new form of
async_resultfor C++11. -
Moved
append,prepend,as_tuple, anddeferredto theboost::asionamespace, and made them compatible with C++11. -
Made
experimental::parallel_groupcompatible with C++11. -
Added
buffer()overloads for contiguous containers, such asstd::span. -
Added the ability for
awaitable<>-based coroutines to directlyco_awaitoperations that are packaged as function objects. -
Changed
spawn()to be a completion token-based asynchronous operation, and added support for cancellation. Thebasic_yield_contexttoken now supports move-only and variadic result types. When targeting C++11 and later,spawn()andbasic_yield_contextare implemented in terms of Boost.Context directly. -
Added the
is_async_operationtrait andasync_operationconcept. -
Added the
completion_signature_oftrait. -
Added converting move construction/assignment to posix descriptors, serial ports, pipes, Windows
object_handle, Windows stream handles, and Windows random-access handles. -
Added
release()member functions to pipes, Windows stream handles, and Windows random-access handles. -
Enabled support for
Endpointimplementations that returnvoidpointers from theirdata()member functions, as per the documentedEndpointtype requirements. -
Removed
all()andrace()fromexperimental::promise, asexperimental::parallel_groupcovers this functionality. -
Added source locations to exceptions and error codes produced by the synchronous and asynchronous operations.
-
Fixed compatibility with OpenSSL 3.0.4 and later.
-
Fixed compatibility with with -masm=intel.
-
Explicitly stated that socket
shutdown()calls are thread-safe with respect to certain other synchronous operations on the same socket. -
Optimised the move construction of I/O objects where only the executor type differs.
-
Fixed the detection of
std::invoke_resultfor clang/libc++. -
Fixed an issue where
experimental::parallel_groupinitiation incorrectly moved arguments instead of forwarding them. -
Fixed a sequencing issue in the implementation of
post(),dispatch(), anddefer(). -
Fixed the
awaitable<>implementation to propagate exceptions from awaited initiation functions through the current completion handler. -
Fixed detection of
std::aligned_allocwith gcc 7. -
Changed to avoid using the soon-to-be-deprecated
std::aligned_storageon newer compilers. -
Fixed detection of
std::aligned_allocfor older Apple platforms. -
Removed faulty assertions from
experimental::coroimplementation. -
Added defence against Qt-defined macros when building with Intel C++.
-
Changed the implementation of the
select_reactor, on Windows, to ensure that any exception resulting from failure to recreate its interrupter's sockets will be allowed to propagate out throughio_context::run(). -
Fixed various compiler warnings.
-
Updated all composed operations examples, and the C++11 timeouts example, to use the new
async_resultform. -
Added composed operation and coroutine examples for C++20.
-
Consult the Revision History for further details.
-
-
Filesystem:
-
On Windows, added a fallback implementation for querying file attributes in case if the file cannot be opened with
ERROR_ACCESS_DENIEDerror. This may allowstatusandsymlink_statusto succeed for system files and directories that are not reparse points or symlinks. (#234) -
On Windows, added a workaround for FAT/exFAT filesystems that produce
ERROR_INVALID_PARAMETERwhen querying file attributes. This affectedstatusandsymlink_status, which reported that files do not exist, and directory iterators, which failed to construct, as well as other dependent operations. (#236, #237) -
On Linux, corrected switching to
sendfilecopy_fileimplementation ifcopy_file_rangefailed withENOSYSin runtime. Thesendfilefallback implementation used to skip the filesystem type check and could fail for some filesystems. -
On POSIX systems supporting
openatand related APIs defined in POSIX.1-2008 and on Windows Vista and later, improved protection ofremove_allagainst CVE-2022-21658 that was implemented in the previous release. The previous fix could still result in removing unintended files in certain conditions. Other systems remain vulnerable.
-
-
GIL: NOTICE: We are planning BREAKING switch to C++17 as minimum required C++ language version in one or two releases after Boost 1.80 (#676)
-
Added
-
GSoC 2020: Added Perona-Malik anisotropic diffusion algorithm (PR#500)
-
GSoC 2020: Added histogram class and related functionality (PR#499)
-
GSoC 2020: Added histogram equalization feature (PR#514)
-
GSoC 2020: Added histogram matching algorithm (PR#515)
-
GSoC 2020: Added ability to stack images either horizontally (
hstack) or vertically (vstack) (PR#506) -
GSoC 2020: Added adaptive histogram equalization algorithm (PR#516)
-
GSoC 2020: Added Standard Hough Transform and circle rasterization (PR#512)
-
GSoC 2020: Added Bresenham's algorithm for line rasterization (PR#512)
-
GSoC 2021: Added rotation of image by arbitrary angle around its center (PR#565)
-
GSoC 2021: Added rasterization support for ellipse based on "An Efficient Ellipse-Drawing Algorithm" by Jerry Van Aken (PR#585)
-
Added
imageconstructor from compatible view (PR#520) -
Added inverse function for affine
matrix3x2(PR#527) -
Added standard morphological transformations (PR#541)
-
Added C++17 polymorphic memory resource typedefs for
imageclass (PR#529)
-
-
Changed
-
BREAKING: The required minimum C++ version is changed from from C++11 to C++14. Currently, large parts of GIL still compile with a C++11 compiler. However, there is no guarantee that it stays that way, and any compilers that do not support at least C++14 are considered unsupported as of now.
-
BREAKING:
any_color_converted_view()is deprecated and will be removed in the next release. Usecolor_converted_view()instead, which provides the same feature. -
BREAKING:
apply_operationforany_imageis deprecated and will be removed in the next release. Usevariant2::visitinstead, which provides the same feature. (PR#656) -
Moved numeric extension to core (PR#573)
-
Added support for C++17's
<filesystem>(PR#636) The availability of thestd::filesystemis detected automatically, unless theBOOST_GIL_IO_USE_BOOST_FILESYSTEMmacro is defined that forces the preference of the Boost.Filesystem. -
Moved function
construct_matchedintoboost::gil::detailnamespace as it was only used by other implementation details (PR#653) -
Made
packed_pixeltrivially copyable and assignable (PR#679) -
Replace deprecated libtiff v4.3 typedefs with C99 fixed-size integers (PR#685)
-
-
Fixed
-
Fixed conversion from RGB to HSL (PR#505)
-
Fixed conversion from RGB to signed CMYK (PR#522)
-
Removed unnecessary numeric cast in hsv.hpp (PR#530)
-
Fixed default constructor for
homogeneous_color_basefor reference pixel elements (PR#542) -
Fixed returning reference to local temporary object in
subchroma_image_view(PR#556) -
Added missing header guards in diffusion.hpp (PR#568)
-
Fixed
any_image_view<>::const_t(PR#526) -
Fixed C++20 incompatibilities in I/O extensions (PR#617)
-
Ensured all examples build without errors (PR#628)
-
Fixed
for_each_pixelfor non-1d iterable views (PR#621) -
Fixed:
is_equal_to_sixteenin PNG I/O was less-than test (PR#650) -
Re-allow
devicen_twith two components (PR#654) It was unintentionally removed in Boost 1.72 -
Fixed memory leak in
imageclass for empty dimensions (PR#649)
-
-
Acknowledgements
-
Cypre55, Samuel Debionne, Mike-Devel, Edward Diener, Peter Dimov, Omar Emara, Dhruva Gole, Nicolas Herry, Eugene K, Avinal Kumar, Gaurav Kumar, Marco Langer, Pranam Lashkari, Mateusz Łoskot, Giovanni Mascellani, Debabrata Mandal, Gopi Krishna Menon, René Ferdinand Rivera Morell, Felix Morgner, Harshit Pant, Paul92, André Schröder, Scramjet911, Siddharth, Dirk Stolle, Prathamesh Tagore, theroyn, Olzhas Zhumabek
-
-
-
Graph:
-
Acknowledgements
-
Viktor Pti, Sebastian Brockmeyer, Etienne dg
-
-
Histogram:
-
Fixed segfault in
indexedwhen trying to iterate over histogram with axes of zero size (physical or logical) under certain conditions -
Removed previously deprecated API
-
class
accumulators::thread_safe: useaccumulators::count<T, true> -
Methods
accumulators::sum::largeandaccumulators::sum::small: useaccumulators::sum::large_partandaccumulators::sum::small_part -
Type alias
algorithm::reduce_option: usealgorithm::reduce_command -
Template function
axis::traits::static_options: useaxis::traits::get_options -
Template function
axis::traits::static_is_inclusive: useaxis::traits::is_inclusive -
Type alias
indexed::range_iterator: useindexed::iterator -
Type alias
indexed::accessor::reference: useindexed::accessor::const_reference
-
-
-
JSON:
-
Added non-const
value::atoverloads. -
Added the ability to manually choose endianness of the platform.
-
Added
string::subview()overload. -
Fixed segfault in
array::erase(it). -
Fixed low performance of
serializeon libc++. -
Fixed ambigious conversion to
std::string_viewon GCC 8. -
Fixed parsing on big-endian platforms.
-
Fixed handling of comment after trailing comma.
-
-
LEAF:
-
API breaking change: throw leaf::exception(....) now becomes leaf::throw_exception(....)
-
Fixed a bug in support for a rare build configuration (exception handling enabled, diagnostics disabled)
-
Using nullptr instead of 0 throughout
-
Fixed pedantic warnings
-
-
Locale:
-
Deprecated support for C++03 and earlier, C++11 will be required in the next release
-
Provide
-sICU_LINK_LOCALEas a temporary replacement for-sICU_LINKwhich is incompatible with Boost.Regex.-sICU_LINK_LOCALEand-sICU_LINKare deprecated and will be replaced byICU_*_NAMEoptions to be compatible with Boost.Regex -
Fix UB/assertion failure in the ICU
collatorimplementation when transforming empty strings -
Fix some issues related to visibility of classes in shared libraries (Unix only)
-
Fix compatibility with C++20 mode
-
Fix compatibility with
BOOST_USE_WINDOWS_H -
Fix build failures due to missing includes
-
Handle or suppress many warnings which makes the build log cleaner
-
-
Log:
-
Bug fixes:
-
Fixed binding incorrect local address in UDP socket-based
syslog_backendwhen IPv6 address is used for the syslog server. (#181) -
Added a workaround for a bug in libstdc++ from gcc 11.2. When
max_size_decorwas used on a formatting stream,std::codecvt::do_lengthincorrectly accessed the input buffer and caused a buffer overflow.
-
-
See changelog for more details.
-
-
Math:
-
Deprecated C++11 support: from 2023 we will require C++14 as a minimum standard. This will mean GCC-5 or MSVC-14.1 as a minimal requirement.
-
Add
constexprfma support, see 734. -
Add support for the Chatterjee Correlation Coefficient, see 770.
-
Added support for the logarithm of the PDF for all the distributions.
-
Improve support for building with no exception or RTTI support.
-
Some minor bug fixes for [sub 1]F[sub 1] corner cases, see 778.
-
-
Multiprecision:
-
Mark C++11 support as deprecated: from 2023 we will move to requiring C++14 as a minimum standard level. That will drop support for GCC versions prior to 5 and MSVC prior to 14.1.
-
Fix conflict between
boost/cstdfloat.hppand this library. -
Clean up lots of gcc and clang warnings.
-
Fix input streaming of composite types (complex, interval rational) where there is a trailing delimeter in the stream and no whitespace.
-
Fix
constexprinteger square root where the input is 1, 2 or 3. -
Add missing
#includeof<memory>to float128.hpp. -
Correct 2-arg constructor for class
numberto prevent ambiguity in some cases. -
Correct and make more consistent behaviour of divide-by-zero in gmp.hpp.
-
-
Multi-index Containers:
-
Maintenance work.
-
-
Nowide:
-
Major performance improvement for Bulk I/O with files
-
basic_filebuf: Fix wrong return value ofsyncwhenfflushfailed -
basic_filebuf: Fix possible undefined behavior in a corner case when nothing was actually written but buffer is in "write" mode -
basic_filebuf: Limit putback of characters (i.e.pbackfail) only allowing putback of buffered characters (may be only 1 character)
-
-
STLInterfaces:
-
Fix #53: "missing 'typename' prior to dependent type name 'C::const_iterator'"
-
Fix #54: "Concept check fails on .data() of a view on contiguous iterator_interface instantiations"
-
New additions to make it easy to write views and view adaptors that work like, and interoperate with, the ones in the standard library:
-
Add workalikes for C++23's
std::bind_back()andstd::range_adaptor_closurefor pre-C++23 code. -
Add templates
closureandadaptorto make writing view adaptors easier, following the examples in P2387.
-
-
-
System:
-
When an
error_codeis converted tostd::error_codeand then back toerror_code, the original is now restored, if possible. -
Reworked the conversion from
error_categorytostd::error_categoryto avoid the one-time allocation that shows up on leak checkers. -
Added a constructor that allows replacing the source location of an
error_code, and a correspondingassign. -
Added a converting constructor to
result.
-
-
Utility:
-
Added
string_view::containsmethods that were introduced in C++23. (#93) -
In
string_view, added asserts inremove_prefix/remove_suffixmethods to enforce the precondition that the prefix/suffix length does not exceed the string view size. The previous (undocumented) behavior of silently clamping the prefix/suffix length is deprecated and will be removed in a future release. (#92)
-
Wave: Fixed bugs:
-
#24: Line numbers wrong after conditional section
-
#160: one test fails with error C2660 and error C2440 under msvc /permissive- mode
-
#161: BOOST_WAVE_THROW_NAME_CTX does not result in a context callback and always throws
-
#162: When Boost headers are included in the preprocessed translation unit, Wave fails in boost/integer.hpp(99)
-
Updated Tools
-
Build:
-
Includes release of B2 version 4.9.2.
-
Compilers Tested
Boost's primary test compilers are:
Boost's primary test compilers are:
-
Linux:
-
Clang: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0
-
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0
-
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0
-
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0
-
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0
-
GCC: 4.6.3, 11, 12
-
GCC, C++11: 4.7.3, 4.8.5, 11, 12
-
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
-
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
-
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
-
-
OS X:
-
Apple Clang: 11.0.3
-
Apple Clang, C++11: 11.0.3
-
Apple Clang, C++14: 11.0.3
-
Apple Clang, C++17: 11.0.3
-
Apple Clang, C++20: 11.0.3
-
-
Windows:
-
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
-
Acknowledgements
Marshall Clow, Michael Caisse and Glen Fernandes managed this release.
