Working on Boost.Bloom roadmap
Oct 9, 2025During Q3 2025, I’ve been working in the following areas:
Boost.Bloom
Boost.Bloom has been officially released in Boost 1.89. I’ve continued working on a number of roadmap features:
- Originally, some subfilters (
block
,fast_multiblock32
andfast_multiblock64)
implemented lookup in a branchful or early-exit way: as soon as a bit checks to zero, lookup terminates (with resultfalse
). After extensive benchmarks, I’ve changed these subfilters to branchless execution for somewhat better performance (PR#42). Note thatboost::bloom::filter<T, K, ...>
is still branchful forK
(the number of subfilter operations per element): in this case, branchless execution involves too much extra work and does not compensate for the removed branch speculation. Ivan Matek helped with this investigation. - Added bulk-mode operations following a similar approach to what we did with Boost.Unordered concurrent containers (PR#42).
- I’ve been also working on a proof of concept for a dynamic filter where the k and/or k’ values
can be specified at run time. As expected, the dynamic filter is slower than its static
counterpart, but benchmarks show that execution times can increase by up to 2x for lookup and
even more for insertion, which makes me undecided as to whether to launch this feature.
An alternative approach is to have a
dynamic_filter<T>
be a wrapper over a virtual interface whose implementation is selected at run time from a static table of implementations based on staticfilter<T, K>
withK
between 1 and some maximum value (this type erasure technique is described, among other places, in slides 157-205 of Sean Parent’s C++ Seasoning talk): performance is much better, but this approach also has drawbacks of its own. - Reviewed a contribution fom Braden Ganetsky to make the project’s
CMakeLists.txt
more Visual Studio-friendly (PR#33).
Boost.Unordered
- Reviewed PR#316.
Boost.MultiIndex
Boost.Flyweight
- Fixed an internal compile error that manifested with newer compilers implementing P0522R0 (PR#23).
- Reviewed PR#22.
Boost.PolyCollection
- Reviewed PR#32.
Boost website
- Filed issues #1845, #1846, #1851, #1858, #1900, #1927, #1936, #1937.
- Helped with the transition of the global release notes procedure to one based on the new website repo exclusively (PR#508, PR#510). This procedure is expected to launch in time for the upcoming Boost 1.90 release.
Boost promotion
- Prepared and posted around 10 messages on Boost’s X account and Reddit. The activity on social media has grown considerably thanks to the dedication of Rob Beeston and others.
Support to the community
- Helped Jean-Louis Leroy get Drone support for the upcoming Boost.OpenMethod library (PR#39).
- Supporting the community as a member of the Fiscal Sponsorhip Committee (FSC).
All Posts by This Author
- 10/09/2025 Working on Boost.Bloom roadmap
- 07/01/2025 Boost.Bloom ready for shipping in Boost 1.89
- 04/08/2025 New Boost library proposal and a talk on how to make C++ ranges faster
- 01/05/2025 New container in Boost.PolyCollection, additions to Boost.Mp11 and more
- 10/11/2024 Joaquín's Q3 2024 Update
- 07/06/2024 Joaquín's Q2 2024 Update
- 04/20/2024 Joaquín's Q1 2024 Update
- 01/10/2024 Joaquín's Q4 2023 Update
- 10/27/2023 Joaquín's Q3 2023 Update
- View All Posts...