SEPLJun 12, 2019

Migrating large codebases to C++ Modules

arXiv:1906.05092v22 citations
AI Analysis

This work addresses build system inefficiencies for high-energy physics software developers, but it is incremental as it applies existing C++ Modules technology to new domains.

The paper tackled the challenge of migrating large codebases, specifically LHC experiment software like CMS, to C++ Modules to reduce redundant header reparsing, and reported expected performance benefits from this migration.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes