What does it take to implement the standard library?

Christopher Di Bella

⏱ half-day-workshop
intermediate
advanced
09:30-15:00, Thursday, 4th - Friday, 5th July 2024

Due to its vast complexity, there have only been a handful of standard library implementations to date. Many people feel as if they're ill-equipped to be standard library implementers, and we're going to deconstruct that over the course of this half-day workshop.

Part I

In the first hour, we will discuss what separates the standard library from user code, the unique design opportunities and constraints we have, and the considerations we need to make for our users.

You can skip Part I if you've seen the original session at C++ Online or C++Now.

Part II

Now that we've grasped the basics of a standard librarian's responsibilities, it's time to put that into practice. This session picks up where its predecessor left off, narrowing the focus from general coverage of three major implementations, to focusing on just one.

This is an hour-long tutorial on how to contribute a change to libc++, with a large practical component, based on an audience suggestion. You'll learn about some of the institutional knowledge you need to know for a patch to be accepted upstream, how to apply a change to something so broadly used, how to practically benchmark your change (if relevant), and if we're lucky, what the review process looks like.

Upon the conclusion of this session, you'll be equipped to start making impactful contributions to C++ source contributions to a major C++ implementation.


🏷 c++20
🏷 c++23
🏷 standard library
🏷 stl
🏷 stdlib
🏷 testing
🏷 library design
🏷 libraries

Christopher Di Bella

Christopher Di Bella is a senior software engineer working on improving the LLVM toolchain at Google. This includes working to improve Clang's diagnostics, adding Clang extensions, and implementing parts of the C++ standard library.

Christopher is an avid fan of One Piece and Star Wars, is always up for another coffee, and will never turn down an opportunity to eat something new.