Skip to content

Commit bd33544

Browse files
committed
added Joaquín's 2025Q3 update
1 parent c6adff3 commit bd33544

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
layout: post
3+
nav-class: dark
4+
categories: joaquin
5+
title: Working on Boost.Bloom roadmap
6+
author-id: joaquin
7+
author-name: Joaquín M López Muñoz
8+
---
9+
10+
During Q3 2025, I've been working in the following areas:
11+
12+
### Boost.Bloom
13+
14+
[Boost.Bloom](https://www.boost.org/doc/libs/latest/libs/bloom/doc/html/bloom.html) has been officially
15+
released in Boost 1.89. I've continued working on a number of roadmap features:
16+
17+
* Originally, some subfilters (`block`, `fast_multiblock32` and `fast_multiblock64)`
18+
implemented lookup in a branchful or early-exit way: as soon as a bit checks to zero, lookup
19+
terminates (with result `false`). After extensive benchmarks, I've changed these subfilters
20+
to branchless execution for somewhat better performance ([PR#42](https://github.com/boostorg/bloom/pull/42)).
21+
Note that `boost::bloom::filter<T, K, ...>` is still
22+
branchful for `K` (the number of subfilter operations per element): in this case, branchless
23+
execution involves too much extra work and does not compensate for the removed branch speculation.
24+
Ivan Matek helped with this investigation.
25+
* Added [bulk-mode operations](https://www.boost.org/doc/libs/develop/libs/bloom/doc/html/bloom.html#tutorial_bulk_operations)
26+
following a similar approach to what we did with Boost.Unordered concurrent containers
27+
([PR#42](https://github.com/boostorg/bloom/pull/43)).
28+
* I've been also working on a proof of concept for a dynamic filter where the _k_ and/or _k'_ values
29+
can be specified at run time. As expected, the dynamic filter is slower than its static
30+
counterpart, but benchmarks show that execution times can increase by up to 2x for lookup and
31+
even more for insertion, which makes me undecided as to whether to launch this feature.
32+
An alternative approach is to have a `dynamic_filter<T>` be a wrapper over a virtual interface
33+
whose implementation is selected at run time from a static table of implementations
34+
based on static `filter<T, K>` with
35+
`K` between 1 and some maximum value (this type erasure technique is described, among
36+
other places, in slides 157-205 of Sean Parent's
37+
[C++ Seasoning](https://raw.githubusercontent.com/wiki/sean-parent/sean-parent.github.io/presentations/2013-09-11-cpp-seasoning/cpp-seasoning.pdf)
38+
talk): performance is much better, but this approach also has drawbacks of its own.
39+
* Reviewed a contribution fom Braden Ganetsky to make the project's `CMakeLists.txt`
40+
more Visual Studio-friendly ([PR#33](https://github.com/boostorg/bloom/pull/33)).
41+
42+
### Boost.Unordered
43+
44+
* Reviewed [PR#316](https://github.com/boostorg/unordered/pull/316).
45+
46+
### Boost.MultiIndex
47+
48+
* Reviewed [PR#83](https://github.com/boostorg/multi_index/pull/83), [PR#84](https://github.com/boostorg/multi_index/pull/84).
49+
50+
### Boost.Flyweight
51+
52+
* Fixed an internal compile error that manifested with newer compilers implementing
53+
[P0522R0](https://wg21.link/p0522r0)
54+
([PR#23](https://github.com/boostorg/flyweight/pull/23)).
55+
* Reviewed [PR#22](https://github.com/boostorg/flyweight/pull/22).
56+
57+
### Boost.PolyCollection
58+
59+
* Reviewed [PR#32](https://github.com/boostorg/poly_collection/pull/32).
60+
61+
### Boost website
62+
63+
* Filed issues
64+
[#1845](https://github.com/boostorg/website-v2/issues/1845),
65+
[#1846](https://github.com/boostorg/website-v2/issues/1846),
66+
[#1851](https://github.com/boostorg/website-v2/issues/1851),
67+
[#1858](https://github.com/boostorg/website-v2/issues/1858),
68+
[#1900](https://github.com/boostorg/website-v2/issues/1900),
69+
[#1927](https://github.com/boostorg/website-v2/issues/1927),
70+
[#1936](https://github.com/boostorg/website-v2/issues/1936),
71+
[#1937](https://github.com/boostorg/website-v2/issues/1937).
72+
* Helped with the transition of the global release notes procedure to one
73+
based on the new website repo exclusively
74+
([PR#508](https://github.com/boostorg/website-v2-docs/pull/508),
75+
[PR#510](https://github.com/boostorg/website-v2-docs/pull/510)). This procedure is
76+
expected to launch in time for the upcoming Boost 1.90 release.
77+
78+
### Boost promotion
79+
80+
* Prepared and posted around 10 messages on Boost's X account and Reddit.
81+
The activity on social media has grown considerably thanks to the dedication of
82+
Rob Beeston and others.
83+
84+
### Support to the community
85+
86+
* Helped Jean-Louis Leroy get Drone support for the upcoming
87+
Boost.OpenMethod library ([PR#39](https://github.com/boostorg/openmethod/pull/39)).
88+
* Supporting the community as a member of the Fiscal Sponsorhip Committee (FSC).

0 commit comments

Comments
 (0)