C++20 Modules: The Packaging and Binary Redistribution Story
Talkat CppCon 2023 · on Monday, 2023-10-02· at 16:45· Cottonwood 8/9, 6700 North Gaylord Rockies Boulevard·
summary
Shows concrete experiments with C++20 modules: packaging fmt with Conan, using CMake/Ninja dynamic dependency scanning, and trying to package binary module interface (BMI) vs ship module interface source. Reports that clang and MSVC require strict matching flags and paths while GCC is looser, that BMI distribution breaks cross-compiler reuse, and that CMake + Ninja now support scanning to derive build order. Recommendation: prefer to generate BMI locally and treat prebuilt BMIs as fragile until toolchain compatibility improves.
AI-written summary · about
chapters (16)
- 0:00C++20 modules overview
- 1:05Why use modules vs includes
- 5:40Modules vs traditional includes
- 7:28How C++20 modules work
- 10:57Build order with modules
- 14:51Module dependencies and DAGs
- 17:45Compiler scanning for modules
- 21:35Packaging modules: no approach
- 22:18Packaging binary module interfaces
- 31:55Shipping module interface source
- 37:20Challenges in module libraries
- 44:01BMI compatibility issues
- 51:08Multiple BMI variants needed
- 55:44Current library module support
- 57:29Package managers and modules
- 1:01:01Module packaging future
related talks
01h 08mC++20 Modules, 5 Years Later
55mimport CMake, CMake and C++20 Modules
01h 05mModules are coming
01h 06mImplementing C++ Modules: Lessons Learned, Lessons Abandoned
01h 02mCMake and the Future of C++
05mC++ Modules and Packages: Making Dreams Come True
01h 08mA Short Tour of C++ Modules - Modules Demystified and Applied
01h 03mUnlocking the value of C++20
