# Migrating large codebases to C++ Modules

**Authors:** Yuka Takahashi (1), Oksana Shadura (2), Vassil Vassilev (3) ((1), University of Tokyo, (2) University of Nebraska-Lincoln, (3) Princeton, University)

arXiv: 1906.05092 · 2020-08-26

## TL;DR

This paper discusses the migration of large scientific codebases to C++ Modules within ROOT and CMS software, highlighting challenges, integration efforts, and expected performance improvements.

## Contribution

It provides a detailed account of the migration process to C++ Modules in large codebases and evaluates the associated performance benefits.

## Key findings

- Successful integration of C++ Modules in ROOT and CMS workflows
- Reduction in redundant header parsing improves performance
- Identified challenges and solutions in large-scale migration

## 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.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1906.05092/full.md

## Figures

9 figures with captions in the complete paper: https://tomesphere.com/paper/1906.05092/full.md

## References

10 references — full list in the complete paper: https://tomesphere.com/paper/1906.05092/full.md

---
Source: https://tomesphere.com/paper/1906.05092