Skip to content

Commit e432e7e

Browse files
joaquintideslouistatta
authored andcommitted
saved 2025-01-04-Joaquins2024Q4Update.md draft
1 parent 388204e commit e432e7e

File tree

1 file changed

+36
-17
lines changed

1 file changed

+36
-17
lines changed

_posts/2025-01-04-Joaquins2024Q4Update.md

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,26 @@ author-name: Joaquín M López Muñoz
99

1010
During Q4 2024, I've been working in the following areas:
1111

12-
### Boost.Mp11
12+
### Boost.Unordered
1313

14-
* Implemented [`mp_lambda`](https://www.boost.org/libs/mp11/doc/html/mp11.html#lambda)
15-
(released in Boost 1.87.0), a metaprogramming utility inspired by the venerable
16-
[_placeholder expressions_ from Boost.MPL](https://live.boost.org/libs/mpl/doc/refmanual/placeholder-expression.html).
17-
`mp_lambda` allows us to generate complex types specified with a rather natural syntax
18-
in terms of elementary input types indicated by
19-
[Boost.Mp11 _placeholder types_](https://www.boost.org/libs/mp11/doc/html/mp11.html#1_9).
20-
For instance, `std::pair<_1*, _2*>` can be regarded as a type template with
21-
two placeholder positions, and `mp_lambda<std::pair<_1*, _2*>>::fn<int, char>` is,
22-
unsurprisingly enough, the type `std::pair<int*, char*>`. My original motivation
23-
for writing this utility is to provide a Boost.Mp11 equivalent to Boost.MPL lambda
24-
expressions that can pave the way for an eventual modernization of
25-
Boost.Flyweight, which [relies heavily](https://www.boost.org/libs/flyweight/doc/tutorial/configuration.html#factory_types)
26-
on this functionality from Boost.MPL.
27-
* Rewritten the implementation of `mp_is_set`
28-
([PR#100](https://github.com/boostorg/mp11/pull/100), released in Boost 1.87.0) to
29-
achieve some rather noticeable compile-time improvements.
14+
* Updated CI support ([PR#293](https://github.com/boostorg/unordered/pull/293),
15+
[PR#296](https://github.com/boostorg/unordered/pull/296),
16+
[PR#297](https://github.com/boostorg/unordered/pull/297),
17+
[PR#298](https://github.com/boostorg/unordered/pull/298)).
18+
* Prepared a private document for Peter Dimov and Braden Gantsky discussing
19+
massively parallel scenarios where [ParlayHash](https://github.com/cmuparlay/parlayhash)
20+
has better performance than `boost::concurrent_flat_map`. We haven't been able
21+
to progress much further than that in Q4 2024, mainly because of my lack
22+
of availablity for this specific task.
23+
* After the last [major update in Boost 1.87.0](https://www.boost.org/libs/unordered/doc/html/unordered.html#changes_release_1_87_0_major_update),
24+
the backlog for Boost.Unordered is basically cleared. This means that the library
25+
will likely enter into maintenance mode, except if new requests show up
26+
—do you have any?
3027

3128
### Boost.PolyCollection
3229

30+
* Updated CI support ([PR#22](https://github.com/boostorg/poly_collection/pull/22),
31+
[PR#23](https://github.com/boostorg/poly_collection/pull/23)).
3332
* Added the new [`boost::variant_collection`](https://www.boost.org/doc/libs/develop/doc/html/poly_collection/reference.html#poly_collection.reference.header_boost_poly_collection_va0)
3433
container (to be released in Boost 1.88.0).
3534
`boost::variant_collection_of<Ts...>` is similar to
@@ -48,3 +47,23 @@ will print first the `int`s in the collection, then the `double`s, and finally
4847
the `std::string`s. In exchange for this restriction, important
4948
[processing speedups](https://www.boost.org/doc/libs/develop/doc/html/poly_collection/performance.html#poly_collection.performance.processing_tests.results_for_boost_variant_collec)
5049
can be obtained.
50+
51+
### Boost.Mp11
52+
53+
* Implemented [`mp_lambda`](https://www.boost.org/libs/mp11/doc/html/mp11.html#lambda)
54+
(released in Boost 1.87.0), a metaprogramming utility inspired by the venerable
55+
[_placeholder expressions_ from Boost.MPL](https://live.boost.org/libs/mpl/doc/refmanual/placeholder-expression.html).
56+
`mp_lambda` allows us to generate complex types specified with a rather natural syntax
57+
in terms of elementary input types indicated by
58+
[Boost.Mp11 _placeholder types_](https://www.boost.org/libs/mp11/doc/html/mp11.html#1_9).
59+
For instance, `std::pair<_1*, _2*>` can be regarded as a type template with
60+
two placeholder positions, and `mp_lambda<std::pair<_1*, _2*>>::fn<int, char>` is,
61+
unsurprisingly enough, the type `std::pair<int*, char*>`. My original motivation
62+
for writing this utility is to provide a Boost.Mp11 equivalent to Boost.MPL lambda
63+
expressions that can pave the way for an eventual modernization of
64+
Boost.Flyweight, which [relies heavily](https://www.boost.org/libs/flyweight/doc/tutorial/configuration.html#factory_types)
65+
on this functionality from Boost.MPL.
66+
* Rewritten the implementation of `mp_is_set`
67+
([PR#100](https://github.com/boostorg/mp11/pull/100), released in Boost 1.87.0) to
68+
achieve some rather noticeable compile-time improvements.
69+

0 commit comments

Comments
 (0)