| Platform | File | SHA256 Hash | |
|---|---|---|---|
| Unix | boost_1_90_0-bin-msvc-all-32-64.7z | d92b92569843b42389d00d802f768c15a08d8b45bee61b4d238c7cbf17c81303 d92b925698....bf17c81303 d92b9....81303 | |
| boost_1_90_0-msvc-14.1-32.exe | cd24f27246bd0a20dd1b7f80b4236aee6f8a23afeb4184c789e256d64586307e cd24f27246....d64586307e cd24f....6307e | ||
| boost_1_90_0-msvc-14.1-64.exe | 6d1036c55d762a15daed4fd42ef35e7873aa3bfce646cb83eca41b7943daeafa 6d1036c55d....7943daeafa 6d103....aeafa | ||
| boost_1_90_0-msvc-14.2-32.exe | 8fe7c306a070c186485fb2c5ca259c6bc24773b3c01d26adaa9e9bf846e6f4e5 8fe7c306a0....f846e6f4e5 8fe7c....6f4e5 | ||
| boost_1_90_0-msvc-14.2-64.exe | b29c60393812970ad69e52e1e0e8b730158ef5f9391879ecd993028ec697276c b29c603938....8ec697276c b29c6....7276c | ||
| boost_1_90_0-msvc-14.3-32.exe | e15280b4a1277ceba474683c90377ea466815d6867dc43d041f099d3dfc31b3e e15280b4a1....d3dfc31b3e e1528....31b3e | ||
| boost_1_90_0-msvc-14.3-64.exe | b4b90982e725484374526948022009368272089ebcec96417cefefbf912cfb4e b4b90982e7....bf912cfb4e b4b90....cfb4e | ||
| boost_1_90_0.tar.bz2 | 49551aff3b22cbc5c5a9ed3dbc92f0e23ea50a0f7325b0d198b705e8ee3fc305 49551aff3b....e8ee3fc305 49551....fc305 | ||
| boost_1_90_0.tar.gz | 5e93d582aff26868d581a52ae78c7d8edf3f3064742c6e77901a1f18a437eea9 5e93d582af....18a437eea9 5e93d....7eea9 | ||
| Windows | boost_1_90_0.7z | 78413237decc94989bffd4c5e213cc4bf49ad32db3ed1efd1f2283bd6fb695b2 78413237de....bd6fb695b2 78413....695b2 | |
| boost_1_90_0.zip | bdc79f179d1a4a60c10fe764172946d0eeafad65e576a8703c4d89d49949973c bdc79f179d....d49949973c bdc79....9973c | ||
You've currently chosen the 1.90.0 version. If a newer release comes out, you will continue to view the 1.90.0 version, not the new latest release.
Version 1.90.0
New Libraries
-
-
Open-(multi-)methods in C++17 and above, from Jean-Louis Leroy.
-
Updated Libraries
-
-
Added the
execution::inline_exception_handlingproperty to describe what exception handling guarantees are made when execution occurs inline. -
Added
inline_executor, which always executes the submitted function inline. -
Changed the default candidate executor for
associated_executorfromsystem_executortoinline_executor. -
Added the
inline_or_executor<>adapter andinline_or()helper, which will execute inline if possible and otherwise delegate to another executor. -
Added overloads of
dispatch,postanddeferthat take a function object to be run on the target executor, and deliver the result to the completion handler. -
Added the
redirect_dispositioncompletion token adapter, as a generic counterpart forredirect_error. -
Annotated deprecated items with the
[[deprecated]]attribute. -
Added a new configuration parameter "reactor" / "reset_edge_on_partial_read", which determines whether a partial read consumes the edge when using
epoll. -
Added new configuration parameters "reactor" / "use_eventfd" and "reactor" / "use_timerfd" that are used to determine whether the
epollbackend useseventfdandtimerfdrespectively. -
Added the missing preprocessor check for
BOOST_ASIO_DISABLE_TIMERFD. -
Implemented a compile-time feature check for
std::source_locationsupport, in addition tostd::experimental::source_location. -
Stopped using the deprecated
boost::array::c_array()function. -
Fixed a resource leak in
asio::awaitablemove assignment. -
Fixed a memory leak in
sslstream move assignment. -
Fixed a thread sanitizer issue in
kqueuereactor. -
Fixed handler tracking arguments in
io_uringbackend. -
Fixed an unused parameter warning in
boost::asio::detail::null_thread. -
Changed the macro-based coroutine implementation to ensure deterministic case labels when
__COUNTER__is used. -
Fixed synchronous SSL stream
shutdownto remaperror::eofasasync_shutdowndoes. -
Changed
stream_fileandrandom_access_fileon Windows to treat file paths as UTF-8 encoded strings. -
Added checks to
experimental::parallel_groupandexperimental::ranged_parallel_groupto detect empty operation sets. -
Removed workaround for
_FORTIFY_SOURCE, added address length checking toip::basic_resolver_results. -
Fixed
experimental::coroto have protection againstmaxas a macro. -
Updated detection of
std::aligned_allocfor newerlibc++versions. -
Various documentation fixes and improvements.
-
Consult the boost_at:/doc/libs/1_90_0/doc/html/boost_asio/history.html[Revision History] for further details.
-
-
-
http::parserrejects non-standard trailer fields by default. -
http::basic_parseruses a dedicated callback for trailer fields. -
http::fieldconstants are updated. -
Fixed allocator move/copy assignment in
flat_bufferandmulti_buffer. -
Fixed websocket permessage-deflate error on partial message consumption.
-
http::buffer_bodyignores empty chunks. -
Added
http::basic_fields::containsmember function. -
Removed dependency on Boost.Preprocessor and Boost.StaticAssert.
-
-
-
Added bulk-mode insertion and lookup for increased performance.
-
Made lookup implementation branchless for
block,fast_multiblock32andfast_multiblock64, which results in some performance gains, particularly for mixed successful/unsuccessful queries.
-
-
-
Fixed quadmath detection in CMake for cross-compilation.
-
Fixed an issue where a sufficiently big buffer would error as not large enough in floating point
to_chars.
-
-
-
Added
to_underlying.hpp(contributed by Braden Ganetsky.)
-
-
-
Reimplemented
deque. The original implementation was based on the SGI’s original data structure (similar to libstdc++). Main changes:-
sizeof(deque)was 10 words, now is 4 words. Probably the lightest implementation around. -
sizeof(deque::iterator)was 4 words, now is is 2 words (similar to libc++ and MSVC).) -
Several internal algorithms were reimplemented to speed up the segmented nature of deque.
-
Defaults were slightly changed, 64 bit platforms now use 1024 byte blocks by default instead of classic SGI 512 byte blocks.
-
The new implementation eases further deque-like variations and optimizations in the future.
-
-
Fixed bugs/issues:
-
GitHub #248: "flat_map slow insertion introduced in boost-1.80.0".
-
GitHub #294: "CMake: Add option to use header-only Boost::container".
-
GitHub #304: "Usage of boost::container::small_vector with custom allocator".
-
GitHub #307: "Fix all instances of MSVC warning C4146 (unsigned negation)".
-
GitHub #309: "Performance regression of boost::container::static_vector introduced in boost v1.86".
-
GitHub #310: "flat_map: Mention correct type in documentation of emplace and emplace_hint".
-
GitHub #312: "flat_map std::allocator::is_always_equal is deprecated".
-
GitHub #317: "Partial revert of changes for Issue #209 - compiler warnings".
-
-
-
-
Dropped dependency on Boost.SmartPtr.
-
-
Core:
-
The implementation of
BOOST_TEST_THROWSandBOOST_TEST_NO_THROWmacros defined inboost/core/lightweight_test.hpphas been changed to avoid compiler warnings on some compilers, when the macros are used inif/elseblocks. As a side effect of this change, the semicolon after the macro is now necessary. (PR#205) -
boost::dataandboost::sizeare now aliases forstd::dataandstd::size, respectively, when the latter are provided by compiler. This resolves potential ambiguities when bothboost::andstd::alternatives are found by the compiler, e.g. as a result of ADL. (PR#206)
-
-
DLL:
-
Fixed issues with
std::error_codebeing passed toboost::system::error_code&. Many thanks to Thomas Klausner for the fix (PR#106). -
Fixed install with CMake. Many thanks to Yury Bura for the fix (PR#103).
-
Fixed
sizevariable shadowing.
-
-
-
Added C++20 iterators.
-
Allowed choosing the underlying container type.
-
Added constexpr support when compiling as C++20 or later.
-
Made push_back(), pop_back() and lowest_bit() more efficient.
-
Made the constructor from basic_string explicit.
-
Removed several dependencies.
-
Added push_front(), pop_front(), find_first_off(), find_next_off() and constructors from C-style strings and basic_string_view (the latter in C++17 or later).
-
Changed the stream inserter to set badbit if an exception is thrown during output.
-
Made the stream extractor rethrow any exception coming from the underlying vector.
-
Ported the documentation to MrDocs and Antora.
-
-
-
Fixed compile errors in Clang 19 and later due to P0522R0 support.
-
-
-
Major improvements
-
Improvements
-
Solved issues
-
GitHub #1006: "bg::projections::detail::epsg_to_parameters causes excessive compile times".
-
Various fixes of errors and warnings
-
-
-
GIL:
-
-
Minor documentation fixes.
-
Fixed bugs:
-
-
JSON:
-
Removed dependencies on Boost.Align and Boost.StaticAssert.
-
Switched to a faster hashing algorithm.
-
-
-
More tests and fixes for floating-point special value conversions to integers and bool. Fixes compiler warning C4804 when lexical casting from
floattobool. -
Dropped dependency to Boost.TypeTraits. Many thanks to Romain Geissler for implementing the major part of the work (PR#87).
-
Switch from implicit to explicit type conversion to avoid compiler warnings. Many thanks to bmagistro for the PR (PR#85).
-
Fixed mistakes in documentation. Many thanks to ivanpanch for the PR (PR#86).
-
Fixed regression in
unsigned shorttowstringcasting withoutwchar_tbuiltin type.
-
-
-
Fixed B2 build files to avoid building dynamic versions of various Boost libraries when only static ones are requested (PR#266).
-
When ISO8859-1 or ISO8859-8 encoding is requested, allow using Windows codepages 1252 or 1255, respectively, instead of using the "C" (classic) locale when the selected Windows locale doesn’t support that ISO8859 encoding.
-
Enabled a workaround for an issue in Cygwins stdlib when converting some long UTF-8 sequences to UTF-16.
-
-
Log:
-
Fixed a missed optimization in
value_refvisitation. -
Fixed a possible long and useless loop on log file rotation in
text_file_backend. If the log file name pattern did not include a file counter and the log file size exceeded therotation_sizelimit, then the sink backend would repeatedly try to open a new log file with a different counter value and end up opening the same file every time. (#252) -
Made file size checks more robust against integer overflows in
text_file_backend.
-
-
Math:
-
Added new sub-library: Reverse-Mode Automatic Differentiation.
-
Added new constant:
log_pi. -
Added proper promotion policy support to
logit,logistic_sigmoid, andlogisticdistributions. -
Numerous fixes and edge case repairs to the special functions.
-
-
Mp11:
-
Updated
mp_reverse_foldto work on fixed size lists
-
-
-
Removed dependency on Boost.Spirit.
-
Auto-reconnection now triggers on any transport-layer error instead of a limited whitelist (#38).
-
Added
at_transport_errorcallback to the Logger interface.
-
-
MSM:
-
Refurbished and updated the documentation to use Antora.
-
Added a new back-end
backmp11offering heavily reduced compile times, a refactored API and a couple of new features. Requires C++17, more details are available in the documentation. -
Fixed bug GitHub #87: "boost::any stopped working as Kleene event in 1.86 in boost::msm".
-
-
-
Significant improvements to testing and coverage of newer
cpp_double_fp_backend.
-
-
-
Deprecated support for Clang versions older than 4.0. These compilers might still work, but they won’t be actively tested in CI.
-
Added tests to guarantee compatibility with MySQL 9.x.
-
Added tests to guarantee compatibility with Clang versions up to 20, and GCC versions up to 15.
-
-
-
Fixed ill-formedness when using move-only callables with closures (PR#284)
-
Fix wonky
const-incompatibility inGlobalStateparser template params (#250). -
Fix ill-formedness in some cases when using the permutation parser (#268).
-
Fixed an error in sequence parsing that could cause some attributes to be overwritten by later parsers in a sequence (#279).
-
Fix the handling of opt-parsers that could leave a
std::optionalattribute containing a value even though the parser that produced it failed (#279 and #285). -
Multiple runtime optimizations (#245, PR#254, PR#255, PR#256).
-
A modest compile-time and code size optimization (#250).
-
Make
transformconstexpr(PR#275). -
Move-versus-forward warning mitigation (#272).
-
Correct the documentation for the attribute type of the
if_directive (#278). -
Correct many, many typos in the docs (PR#271).
-
-
PFR:
-
Added an implementation based on C++26 destructuring into a pack, that fixes majority of known limitations of the library and avoids excessive template instantinations. The new implementation can be explicitly enabled/disabled by a new
BOOST_PFR_USE_CPP26macro. Many thanks to Jean-Michaël Celerier for the PR (PR#194). -
Multiple fixes to CMake. Many thanks to Alexander Grund for the PRs!
-
-
-
Fix for construction of xoshiro family of generators from SeedSeq.
-
-
-
Important changes to cancellation:
-
Improved the per-operation support in
async_exec(), and added support forasio::cancel_after. Requests can now be cancelled at any point, and cancellations don’t interfere with other requests anyhow. Pull requests PR#310 and #226. -
Deprecated the
cancel_on_connection_lostandcancel_if_not_connectedflags inrequest::config. To limit the time span thatasync_execmight take, useasio::cancel_after, instead.cancel_on_connection_lostdefault has been changed tofalse. Pull requests PR#329 and PR#334. -
Deprecated calling
cancelwithoperation::resolve,connect,ssl_handshake,reconnectionandhealth_check. Users should employcancel(operation::run), instead. Pull request PR#321. -
Added support for per-operation cancellation in
async_run(). Issue #319.
-
-
Added support for custom setup requests using
config::setup. When setting these fields, users can replace the library-generatedHELLOrequest by any other arbitrary request. Issue #302 and pull request PR#303. -
Deprecated
request::config::hello_with_priority. If you need to execute a request before any other, useconfig::setup, instead. Pull request PR#305. -
Valkey long-term support: we guarantee Valkey compatibility starting with this release. Issue #296.
-
Added a
request::append()function, to concatenate request objects. Issue #341. -
The health checker algorithm has been redesigned to avoid false positives under heavy loads.
PINGcommands are now only issued when the connection is idle, instead of periodically. Issue #104. -
Added
config::read_buffer_append_size, which allows to control the expansion of the connection’s read buffer. Pull request PR#283. -
Added
usage::bytes_rotated, which measures data copying when reading and parsing data from the server. Pull request PR#311. -
Bug fixes:
-
Fixed a bug causing an exception to be thrown when parsing a response that contains an intermediate error into a
generic_response. Issue #287. -
Fixed a number of race conditions in the
cancel()function ofconnectionandbasic_connectionthat could cause cancellations to be ignored. Issue #318. -
Users with an empty password but a non-default username are now correctly authenticated. Issue #298.
-
Fixed a problem that could cause an error during
HELLOto make subsequentHELLOattempts during reconnection to fail. Issue #290. -
Errors during
HELLOare now correctly logged. Issue #297.
-
-
-
-
The functionality enabled by the deprecated macros
BOOST_SP_ENABLE_DEBUG_HOOKS,BOOST_SP_USE_STD_ALLOCATOR, andBOOST_SP_USE_QUICK_ALLOCATORhas been removed. -
The header
<boost/smart_ptr/detail/quick_allocator.hpp>has been marked deprecated and will be removed in a future release. -
Configurations that define
BOOST_NO_CXX11_HDR_ATOMICare no longer supported; a conforming C++11<atomic>is now required. -
The deprecated macros
BOOST_AC_USE_SPINLOCK,BOOST_AC_USE_PTHREADS,BOOST_SP_USE_SPINLOCK, andBOOST_SP_USE_PTHREADSare no longer functional. -
Platform-specific implementations of
atomic_count,sp_counted_baseandspinlockare no longer used and have been removed. -
Configurations that define
BOOST_NO_CXX11_HDR_MUTEXare no longer supported; a conforming C++11<mutex>is now required. -
Some unused headers in
boost/smart_ptr/detail/have been removed.
-
-
-
Fixed missing include. Thanks to Orgad Shaneh for the fix!
-
Fixed URL in
libbacktrace_impls.hpp, thanks to Jonathan Wakely.
-
-
-
Aligned
to_static_[w]string()withstd::to_[w]string()in C++26. -
Removed usage of an additional buffer in
to_static_[w]string(). -
Added
resize_and_overwrite().
-
-
-
Fixed ill-formedness with GCC 14 (PR#80).
-
Fixed ill-formedness when using move-only callables with closures.
-
-
Test:
-
Fixed a few warnings on Windows Clang.
-
-
-
Dropped dependency on Boost.Core.
-
Run all the tests in CMake too, Many thanks to Alexander Grund for some fixes and help.
-
-
URL:
-
segments_viewandsegments_encoded_viewgained constant-time iterator-based subview constructors. -
Added zone-id setters (e.g. for IPv6 link-local addresses).
-
Host setters now accept/propagate zone-id.
-
Fixed:
resolvenow replicates the reference fragment in all cases (#920). -
Fixed:
encoded_host_addressassertions account for zone-id. -
Refactor: replaced
BOOST_STATIC_ASSERTwithBOOST_CORE_STATIC_ASSERT(#934). -
Refactor: preserved absolute semantics for segment subviews (#939).
-
-
Uuid:
-
string_generatoris nowconstexpron C++14 and higher. -
Added header
boost/uuid/constants.hpp. -
Renamed
boost/uuid/uuid_generators.hpptoboost/uuid/generators.hpp. The old name is retained for compatibility.
-
-
-
More functions have been marked as
constexpr, including~variant. This didn’t matter before C++20, but does now.
-
Compilers Tested
Boost’s primary test compilers are:
-
Linux:
-
Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, 15.0.0
-
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.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, 15.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, 15.0.0
-
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
-
GCC, C++03: 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, C++03: 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, Glen Fernandes and Ion Gaztañaga managed this release.