During Q4 2024, I’ve been working in the following areas: Boost.Unordered Updated CI support (PR#293, PR#296, PR#297, PR#298). Prepared a private document for Peter Dimov and Braden Ganetsky discussing massively parallel scenarios where ParlayHash has better performance than boost::concurrent_flat_map. We haven’t been able to progress much further than that in Q4 2024, mainly because of my lack of availablity for this specific task. I’ve set up and run benchmarks comparing indivi::fl...
While some of my work in the third quarter of this year was dedicated to more work on Boost.JSON and Docca, the most interesting thing was definitely pretty_printers, a collection of utilities and build scripts which help dealing with debugger pretty printers and visualisers. Although currently it only supports GDB, I’m planning to research LLDB and Natvis integration too. The module naturally emerged from my work on GDB pretty printers for Boost.JSON. Even if you don’t know what pretty prin...
Authored and published a new topic on Debug Visualizers in the Contributor Guide. Debug Visualizers offer a powerful way to simplify the debugging process by allowing developers to see complex data structures in a more understandable format. The two main sections are Debug Visualizers in MSVC (Microsoft’s built in visualizers for Visual Studio) - utilizing the Natvis display language, and Debug Visualizers in GDB (the visualizers for the GNU Debugger) - utilizing Python templates to c...
Here’s a look at some recent projects I’ve been focusing on: Boost.Http.Proto Parsing Chunked Bodies The http_proto::parser uses a circular buffer internally, which sometimes causes HTTP message bodies to span across two buffers. Previously, this required copying data into a temporary buffer for chunked parsing, ensuring continuous memory access. To address this, I introduced a chained_sequence abstraction, which lets two buffers appear as a single, contiguous buffer without the need for c...
Throughout Q3 2024, my work was primarily focused on two projects: MrDocs, and Clang. MrDocs Most of my work in MrDocs was centered around fixing bugs and refactoring. To that end, I resolved numerous bugs, mostly relating to AST extraction. On the refactoring side of things, I (finally) removed the bitcode serialization component from MrDocs. This greatly simplifies the project architecture and eliminates most of the boilerplate that was needed when modifying the representation used by MrD...