Zie Weaver graduated from the University of Pittsburgh and has been working at Google ever since. Presently, she works on the C++ Core Libraries team where she maintains decades old code at the bottom of the software stack and performs large scale refactorings pursuant to this maintenance.
Refactoring thousands of structs across orders of magnitude more files is difficult even using automated tools. When the edits can affect any other file, it seems impossible. Normally we focus on edits that can be performed within a single translation unit. This is a practical concern: we simply cannot fit every abstract syntax tree (AST) in memory simultaneously. In contrast, we explore an approach to propagate knowledge across translation units after edit generation. More specifically, this examines converting an old macro library similar to BOOST_FUSION_DEFINE_STRUCT into a new mixin template library with subtly diverging API provisions. We follow the entire […]