English

Migrating large codebases to C++ Modules

Software Engineering 2020-08-26 v2 Programming Languages

Abstract

ROOT has several features which interact with libraries and require implicit header inclusion. This can be triggered by reading or writing data on disk, or user actions at the prompt. Often, the headers are immutable, and reparsing is redundant. C++ Modules are designed to minimize the reparsing of the same header content by providing an efficient on-disk representation of C++ Code. ROOT has released a C++ Modules-aware technology preview which intends to become the default for the next release. In this paper, we will summarize our experience with migrating C++ Modules to LHC experiment's software code bases. We outline the challenges in C++ Modules migration of the CMS software, including the integration of C++ Modules support in CMS build system. We also evaluate the performance benefits that experiments are expected to achieve.

Keywords

Cite

@article{arxiv.1906.05092,
  title  = {Migrating large codebases to C++ Modules},
  author = {Yuka Takahashi and Oksana Shadura and Vassil Vassilev},
  journal= {arXiv preprint arXiv:1906.05092},
  year   = {2020}
}

Comments

To be appear in 19th International Workshop on Advanced Computing and Analysis Techniques in Physics Research