Hi all, Activity on the develop branches of the Boost libraries between 19 and 25 October. This report has been generated automatically with AI. THE NUMBERS - 260 commits on develop (21 CI-related) - 46 pull requests opened against develop, 57 merged - 14 issues opened, 28 closed - 35 libraries with activity, 30 contributors Most active libraries: - Asio: 72 commits PRs: 0 opened, 0 merged; issues: 0 opened, 0 closed - Graph: 17 commits PRs: 16 opened, 15 merged; issues: 1 opened, 0 closed - Container: 37 commits PRs: 0 opened, 0 merged; issues: 0 opened, 1 closed - Fiber: 18 commits PRs: 0 opened, 7 merged; issues: 0 opened, 1 closed - IOStreams: 16 commits PRs: 1 opened, 0 merged; issues: 0 opened, 4 closed - Interval: 7 commits PRs: 4 opened, 4 merged; issues: 2 opened, 3 closed - Intrusive: 20 commits PRs: 0 opened, 0 merged; issues: 0 opened, 0 closed - Decimal: 5 commits PRs: 2 opened, 5 merged; issues: 2 opened, 5 closed Most active contributors: - Christopher Kohlhoff (72 commits, 1 library) - Ion Gaztañaga (64 commits, 4 libraries) - Mateusz Jakub Fila (17 commits, 1 library) - Tobias Stensbeck (16 commits, 1 library) - Peter Dimov (14 commits, 2 libraries) - Jean-Louis Leroy (10 commits, 1 library) - Arnaud Becheler (9 commits, 2 libraries) - Andrea Cassioli (7 commits, 1 library) HIGHLIGHTS Asio Christopher Kohlhoff pushed 72 commits on 21 October. New features include asio::eager, a completion token that starts an operation at once and returns a handle to await later; asio::trampoline, an executor adapter that batches nested submissions; a dependency-free spawn() for x86-64 and AArch64 on Linux and macOS (Boost.Context stays the default); a "spin" reactor backend that avoids epoll_wait-style syscalls; and Perfetto-format handler tracking. channel and concurrent_channel move to the asio namespace, and ready() is deprecated in favour of can_receive(). Fixes cover a possible deadlock in the reactor, a hang in cancel_after/cancel_at with reentrant cancellation and duplicate work counting. poll() now runs the scheduler's task at most once per call. The rest is mostly performance work. Intrusive, Container and Move Ion Gaztañaga reviewed exception guarantees across the three libraries. In Intrusive, move assignment now copies the predicates and moves the nodes instead of swapping, a potentially breaking change; BOOST_INTRUSIVE_MOVE_ASSIGNMENT_SWAPS restores the old behaviour. Every Intrusive container got a friend swap, and swaps and move constructors got conditional noexcept. Container got many noexcept corrections and allocator fixes: private_adaptive_pool::allocate not throwing bad_alloc, a division by zero in alignment-only adaptive pools, an overflow in the aligned_allocate fallback, a string bug when moving to the internal buffer, and devector reallocating despite enough capacity. Move fixed is_constructible on GCC 8-11 in C++03 mode. Graph Arnaud Becheler fixed binary serialization of adjacency_list, whose layout changed by accident in 1.92: archives written by 1.92 can't be read by other releases, and 1.93 goes back to the 1.91 layout. He also extended stateful visitors to planar face traversal, make_maximal_planar, make_connected and make_biconnected_planar, and moved the distributed parts of BGL into GraphParallel. Andrea Cassioli, Varun Sharma and Sayan Samanta removed more legacy compatibility code. New PRs: #664, deprecating labeled and named graphs; #656, Kerem Okyay's fix for #655, a colour map from boykov_kolmogorov_max_flow that is not a minimum cut. Charconv Michiel van Slobbe fixed five writes past the end of a buffer in to_chars (#314 to #318). Several paths wrote a minus sign or a zero without checking the room left: into an empty range, for negative 128-bit integers and for negative zero. Some of them then reported success. General format with a large precision overflowed a stack buffer by one byte for some negative values. Decimal Shen-Ta Hsieh fixed a series of defects he had reported: fmod, remainder and remquo are now exact for exponents far apart (#1517), scalbn and scalbln handle large exponents, acosh and atanh give NaN outside their domain, fma no longer drops a small addend in a tie, and fdim is right for infinities and signaling NaNs. New PRs: #1529, for #1528, equal infinities with payload bits hashing differently. Interval Square roots of point intervals could miss the true root. Sonny Guardian stopped GCC with -frounding-math from reusing the downward-rounded root for the upper end (#61, fixes #60). Sayan Samanta made 32-bit MSVC use x87 fsqrt or SSE, because its runtime sqrt ignores the rounding mode (#64), and Andrey Semashev optimised the SSE2 path. Sayan Samanta also kept GCC from moving x87 arithmetic across the rounding-mode change (#62, fixes #41). Math Nick Thompson added two global optimisers, multilevel coordinate search (closes #1577) and TuRBO, a trust-region Bayesian method, and removed Eigen from CMA-ES. Jacob Hass merged Gauss-Laguerre and Gauss-Jacobi quadrature with anti-Gauss error estimates (#1517, 33 comments). New issues: #1585, documentation for the new quadratures; #1586, hermite, jacobi and laguerre zeros as special functions. JSON Dmitry Arkhipov merged a refactor of how users customise conversion categories (#1156) and ranked described classes lowest ahead of reflection (#1205). New PRs: #1211, splitting a parse_into test that needed over 3GB to build; #1213, for #1212, an option to stop relying on the no_destroy attribute. New issues: #1212, a linker error with Clang on Windows against an MSVC-built Boost (6 comments); #1214, documenting the config macros. Fiber Mateusz Jakub Fila merged CUDA and HIP work from August and September: the HIP integration now uses its own namespace, callbacks use LaunchHostFunc where available, and cudaLaunchHostFunc_v2 flags can be passed (#350). Helena Pankov's futex support for macOS 14.4 and later (#330), first written in April 2025, was merged too. Also last week * UUID and System: Peter Dimov added std::format support to UUID (fixes #201) and made System's to_string_formatter conform to std::formattable. * Beast: Mohammad Nejati's permessage-deflate offer no longer sends server_max_window_bits=15, which some servers reject (fixes #2671), and sends client_max_window_bits without a value. * MSM: Christian Granzin removed the experimental status of backmp11, now the recommended back-end, and removed its active state switch policies and deprecated process_result values. * OpenMethod: Jean-Louis Leroy fixed or annotated the open Coverity defects and merged named_static_rtti for class identity across shared libraries (#127). New issues: #137, static validation of closed overrider sets. * IOStreams: Tobias Stensbeck made the C++11 and CMake 3.8 requirements explicit and fixed test warnings. New PRs: #195, a buffer overrun in range_adapter, from @aouxwoux. * Lockfree: Michiel van Slobbe stopped Clang turning spsc_queue's index wrap into a division on every push and pop (#144). * Config and Predef: Matt Turner added Alpha to the architecture checks. * Wave: Martin Medler added a C++14 language mode. New PRs: #276, a C++26 mode. * New issues and PRs: Process PR #571 (OpenBSD descriptor cleanup), Redis PR #441 (moved-from flat_tree), ProgramOptions PR #161 (C++20 module), GIL issue #817 (Iterator and MPL dependencies). CI MAINTENANCE * Boost.CI: Alexander Grund added Coveralls as a coverage option, made the OpenCppCoverage install more reliable and fixed the Xcode SDK setup; Jean-Louis Leroy fixed Homebrew Clang on macos-26 (#353). * IOStreams: Tobias Stensbeck overhauled the workflow: containers for old compilers, retired runners dropped, GCC 15/16, Clang 20-22, MSVC 14.5 and macOS 26 added, Travis and AppVeyor removed. * Container, Intrusive, Move and Interprocess: Ion Gaztañaga added CMake-based test runs to GitHub Actions. * Interval: Sayan Samanta fixed link failures with Homebrew Clang on macos-26. * UUID: Peter Dimov added libc++ testing. Have a good week!