| Platform | File | SHA256 Hash | |
|---|---|---|---|
| Unix | boost_1_92_0_b1.tar.bz2 | 11f8f032a73cfd91899f170341578cabc040c4473e95a056cdc919c90778fa05 11f8f032a7....c90778fa05 11f8f....8fa05 | |
| boost_1_92_0_b1.tar.gz | 585e0a028cc3f1f7711842b7cbfbb5faece2f243ef57ffe7fb846e9b61e2faa5 585e0a028c....9b61e2faa5 585e0....2faa5 | ||
| Windows | boost_1_92_0_b1.7z | 290472960719ccc487e2f91ebc952c86b6d0244a9a4ec36a943d8f7485b29b3b 2904729607....7485b29b3b 29047....29b3b | |
| boost_1_92_0_b1.zip | 005f4903695cce4382340ea57dd53bd1f0762927de28c9fa265f6ea2c7c1ad3f 005f490369....a2c7c1ad3f 005f4....1ad3f | ||
| Windows (Binary) | boost_1_92_0_b1-bin-msvc-all-32-64.7z | e049e049e1ec0189206af4bbcafdc263cb500cde465dfc9caae9eb6f0c976292 e049e049e1....6f0c976292 e049e....76292 | |
| boost_1_92_0_b1-msvc-14.1-32.exe | ae5a4d8ee6487bb81407c4700562268ecd9009879125e9a808e492ca9f8f08ce ae5a4d8ee6....ca9f8f08ce ae5a4....f08ce | ||
| boost_1_92_0_b1-msvc-14.1-64.exe | eafa70304d17ba37eeddd7e935004da9ce172a3e530fd002424759a3dbbc6e74 eafa70304d....a3dbbc6e74 eafa7....c6e74 | ||
| boost_1_92_0_b1-msvc-14.2-32.exe | 36bd656a3a5914c7caedd53b6aceba6fa7a537286d1fad1885acc980ee856636 36bd656a3a....80ee856636 36bd6....56636 | ||
| boost_1_92_0_b1-msvc-14.2-64.exe | b23505912dc12c4fa90145aa32b3b2e6f290c3b634011a997f5dd846be8916a2 b23505912d....46be8916a2 b2350....916a2 | ||
| boost_1_92_0_b1-msvc-14.3-32.exe | 7773b9283d9694ff8a2356d3e1026953185c9ffa5ccb051544aedf98cada8e95 7773b9283d....98cada8e95 7773b....a8e95 | ||
| boost_1_92_0_b1-msvc-14.3-64.exe | f2846378edf64a47684969140a676eada6318d72e0de9fb44f2e2622205d1425 f2846378ed....22205d1425 f2846....d1425 | ||
| boost_1_92_0_b1-msvc-14.5-32.exe | 42cced103eb6bcd530ab59e14741284b779f11b2dd03577d55e19ce43ac987dc 42cced103e....e43ac987dc 42cce....987dc | ||
| boost_1_92_0_b1-msvc-14.5-64.exe | f776ca84bcdf8aadacf0c43c30835948fb45107a8fae565914f830fc40ee924e f776ca84bc....fc40ee924e f776c....e924e | ||
Version 1.92.0
General Notes
-
In previous releases, Windows
.dllfiles were installed byb2 installinto the library directory (<PREFIX>/libby default), except on Cygwin, where they were installed into the binary directory (<PREFIX>/binby default.)This has been changed to consistently install
.dllfiles into the binary directory, which is the behavior most users want.For compatibility, a new command line option,
--dlldir, has been added tob2 installso that the directory can be overridden, and if needed, pointed to<PREFIX>/lib. -
The CMake configuration file installed by
b2 installhas been updated to support requesting header-only libraries asfind_packagecomponents.That is, something like
find_package(Boost REQUIRED COMPONENTS mp11)works now (and defines the targetBoost::mp11), whereas previously it did not (only compiled libraries were considered components).This matches the behavior of the CMake configuration files installed by building Boost with CMake, making it possible to consume Boost in the same way regardless of how it was built and installed.
As part of this regularization, the little used feature of requesting
COMPONENTS ALLhas been removed. It’s not supported by the CMake Boost build, and was never supported byFindBoost.
New Libraries
Updated Libraries
-
-
Fix
BOOST_VERIFYin the rare case of bothBOOST_ENABLE_ASSERT_HANDLERandBOOST_ENABLE_ASSERT_DEBUG_HANDLERbeing defined.
-
-
-
websocket::streamaccepts close code 1014 (bad gateway). -
http::basic_parserignores connection and framing fields in trailers. -
http::parserdrops framing and connection-control fields carried in trailers. -
http::basic_parserrejects chunked transfer-encoding in HTTP/1.0 requests. -
http::basic_parserrejectsContent-LengthwithTransfer-Encodingregardless of field order. -
http::basic_parserrejects requests with aTransfer-Encodingthat does not end in chunked. -
http::basic_parservalidates quoted-strings in chunk extensions. -
http::message::prepare_payloadrejects 1xx responses with a body. -
websocket::streamrejects 64-bit frame lengths with the high bit set. -
File operations clear the
error_codeon success. -
The
server-flex-awaitableexample dispatches cancellation to the task’s strand. -
Removed dependency on Boost.Functional.
-
-
-
Hashing a valueless
std::variantinstance no longer throws.
-
-
-
Added new
boost::container::hubcontainer designed by Joaquín M. López Muñoz.See the Hub Container chapter in the Container documentation for more information.
-
Fixed bugs/issues:
-
Added
unchecked_emplace_backandunchecked_push_backtoboost::container::vector,boost::container::static_vector, andboost::container::small_vector. -
Implemented C++23 P1518 change: modified allocator-extended constructors for all containers so that the deduction guides for containers are not overconstrained.
-
-
-
Marked templated versions of
initial_pathas deprecated and removed from v4. Use the non-templated versions instead. -
Use
readdirinstead ofreaddir_ron more POSIX platforms, specifically on Mac OS and other Apple operating systems, FreeBSD, OpenBSD, DragonFly BSD, NetBSD, QNX 6.0 and later, Solaris 10 and later and Illumos-based systems. Solaris users with gcc are recommended to defineSunOS_5_xmacros according to their target Solaris version (e.g.SunOS_5_11) when building Boost. (#349) -
Support for platforms with non-thread-safe
readdiris deprecated and will be removed in a future release. Although not required until POSIX.1-2024, on modern systemsreaddiris thread-safe when used with separateDIRobjects in different threads and on some systemsreaddir_ris marked as deprecated. POSIX.1-2024 has been updated accordingly and also markedreaddir_ras obsolescent, with a planned removal in a future version of the specification. -
On POSIX platforms, handle
EINTRerror code returned fromopendir,readdirand equivalents. Although not documented, this error code, reportedly, may be returned on Apple operating systems and some BSD systems.
-
-
-
Improvements (
geometry): -
Solved issues (
geometry):
-
-
-
Added built-in support for
std::optional -
Added built-in support for
std::variant,std::monostate
-
-
Heap:
-
This release is the last to support C++14. Future releases will require C++17.
-
-
ICL:
-
Starting with version 22, libc++ has changed some lookup algorithms of its associative containers in a way that breaks ICL’s assumptions and behavior. The library internals have been refactored to solve the problem and make ICL robust against future decisions of the C++ committee regarding non-heterogeneous lookup for associative containers (PR#54, LWG4752).
-
Fixed C++20-related problems with
std::iter_value_t<element_iterator>and GCC 10-12’s handling of rewritten relational operators (PR#54). -
Fixed a GCC 10-11 codegen bug (PR#54).
-
-
-
Added
is_*_iterator_vvariable templates in C++14 and later, equivalent to the corresponding iterator traits. -
The
distanceandadvancealgorithms are now constrained by requiringis_iteratorto returntruefor the iterator arguments. (PR#96)
-
-
-
This release is the last to support C++14. Future releases will require C++17.
-
Added new
boost::lockfree::mpsc_weak_queue, a multi-producer, single-consumer queue. Whilepushandpopare individually wait-free, the queue is not linearizable and a producer that stalls between exchanging the tail and linking its node can permanently break the queue, so it is not strictly lock-free. -
Added new
boost::lockfree::bounded_ticket_queue, a ringbuffer-based bounded MPMC queue. The queue is linearizable and wait-free when configured with a single producer and single consumer. In multi-producer or multi-consumer configurations, a stalled thread that has claimed a slot can block progress, so the queue is not strictly lock-free.
-
-
Mp11:
-
Improved the performance of a number of algorithms (contributed by Jonathan Poelen)
-
-
MSM:
-
New features (
backmp11):-
Provide an observer API for logging support (#220)
-
Forward Kleene events to actions and guards without conversion (#229)
-
Ensure basic exception guarantee and propagate exceptions to the caller (#221)
-
Provide a reflection API and serialization support for Boost.Serialization, Boost.JSON and nlohmann/json (#197)
-
Rework terminate and interrupt state handling and provide a
machine_stateenum (#244) -
Configurable event pool and inline storage (#239)
-
API reference and examples are now available
-
-
Bug fixes (
backmp11):-
State machine processes events although it is not running (#198)
-
-
Breaking changes (
backmp11):-
Events in
process_event(…)are not enqueued automatically anymore to reduce memory footprint, useenqueue_event(…)in actions (#178) -
The back-end does not forward constructor arguments to the front-end anymore, it must be default-constructible. To use custom constructors, define them in the back-end (#232)
-
The deprecated APIs
process_queued_events()andprocess_single_queued_event()are removed, useprocess_event_pool(…)instead -
The default active state switch policy is set to "after source exit" in compliance to the UML specification. The other options are not UML-compliant and will be removed (#222)
-
The back-end uses its own
process_resulttype with new enum values instead of aliasing the enum of thebacknamespace. The old enum values are deprecated (#242) and will be removed
-
-
fix(back, back11): Infinite recursion with event deferral in orthogonal regions (regression from 1.78) (#184)
-
-
-
Fancy pointer support has been extended so that
multi_index_containeriterators now store references to the elements through the allocator’s pointer type. In particular, this means that iterators can now be placed in shared memory using Boost.Interprocess allocators. -
Fixed a performance issue with hashed indices when rehashing at very large container sizes (PR#94). Contributed by Daniel Král.
-
-
-
Added a way to configure which character set the server uses by default, to make tracking more intelligent. This can be used to avoid redundant
SET NAMESstatements. Seepool_params::charset_strategyandconnect_params::server_default_charset(PR#511). -
Reduces `pool_params::ping_interval’s default from 1h to 10s. This improves the detection of broken connections (PR#512).
-
The read buffer has been optimized by reducing the frequency of data rotations when incomplete messages are received (PR#501). Contributed by
@vsoulgard. -
TLS certificates for CI testing are now generated dynamically, rather than being committed into the repository. This cleans up reports raised by vulnerability scanners (PR#505).
-
-
-
Fixed a case of undefined behavior within
connectionwhen attempting to cancel a request that has completed, but whose handler hasn’t been called yet. This happened due to an incorrect erase-remove use with astd::deque(PR#428). Contributed by@L0rentz. -
Optimized buffer rotations to reduce CPU consumption when many small messages arrive in a single network packet (PR#415).
-
Added initializers to all members in the
configstruct. This allows using designated initializers to createconfigobjects (PR#424). -
Removed the standalone workflow from the CMake. This was an undocumented way of consuming Boost.Redis with CMake aimed to internal development (PR#409).
-
-
-
Fix
unwrap_and_invokefor functions returningvoid.
-
-
-
Added interoperability with C++20 ranges to all the containers in the library:
insert_range(plusinsert_range_(or|and)_[c]visitfor concurrent containers),std::from_rangeconstruction and associated CTAD deduction guides. Theboost::unordered::from_rangeconstruction tag is provided as an alternative to C++23std::from_rangeor when this is not available. -
Fixed a performance issue with closed-addressing containers when rehashing at very large container sizes (PR#348). Contributed by Daniel Král.
-
-
URL:
-
Fixed a heap buffer overflow in
normalize_pathfor authority-less URLs whose normalized path begins with//(PR#995). -
Fixed an uninitialized read in
ipv6_address_rulewhen an embedded IPv4 address has no precedingh16, e.g.https://[::.(PR#994). -
Fixed unsigned-integer-overflow sanitizer findings in case-insensitive comparisons, hashing, and
format(PR#994). -
Fixed decoded query-size tracking in
url_base::edit_params(PR#990). -
Third-round security review fixes:
url_viewcopy from a null source, two incorrectnoexceptspecifiers, and decoded-length tracking when iterating segments in reverse (PR#988).
-
Updated Tools
-
B2:
-
Includes release of B2 version 5.5.1.
-
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.