Navigating the Development and Evolution of a Library

By Marshall Clow

When you write a library, you want people to use it. (Otherwise, why write it as a library?). But to attract and keep users, you need to provide more than "a bunch of code". In this talk, I’ll discuss some of those things.

I’ll talk about:

  • Code quality and portability

  • Testing

  • Documentation

  • Release criteria, scheduling, and documentation

  • Static and dynamic analysis

  • Fuzzing

  • Managing change in your library

as well as tools that you can use for providing these things. Examples will be taken from Boost and libc++, the C++ standard library implementation for LLVM.