How Hard Could It Be? Lessons Learned from Replacing int64 With int64_t.

Andrew Soffer

60 minute session
14:00-15:00, Thursday, 7th July 2022

Before we could begin migrating int64 to int64_t, we first had to create a replacement for printf, complete with constexpr format string validation. Scale brings complexities most never anticipate, and the largest refactoring of Google’s codebase provides an amazing roadmap for those unexpected pain points. We’ll touch on many of the complicating factors in this multi-year effort, including overload sets, code generators, ODR-violations, printf, RTTI, and performance regressions. We’ll discuss the tools we used to address each of these, and how they can be leveraged to ease refactorings in codebases of any size.

automated refactoring
static analysis
legacy codebases

Andrew Soffer

Andy Soffer is a lapsed mathematician turned software engineer. He has been working at Google for for five years on networking, speech recognition infrastructure, and most recently core libraries and refactoring tools. In his free time, he enjoys running, and playing board games.