How Hard Could It Be? Lessons Learned from Replacing int64
With int64_t
.
Andrew Soffer
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.
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.