filmov
tv
CppCon 2019: Michael Spencer “Building Modules”
Показать описание
—
—
—
C++20 brings us modules, which, for the first time in 40 years, change the fundamental way in which we build code. In this talk we will cover the different ways C++ code using modules can be built, explore some actual build systems supporting modules, and explain the build performance implications of each method. Modules provide isolation between components to a level never before available in C++, and allow us to share the work of parsing interfaces between compile steps. At their core both headers and modules are represented by a dependency graph. Conceptually, headers resolve this graph by duplicating, pruning, and flattening it for each translation unit. Modules can avoid this duplication, but if they do they pay for it with serialization and synchronization overhead. The end result of this trade-off depends on the shape of your build.
—
Michael Spencer
Compiler Engineer, Apple
—
*-----*
*-----*
—
—
C++20 brings us modules, which, for the first time in 40 years, change the fundamental way in which we build code. In this talk we will cover the different ways C++ code using modules can be built, explore some actual build systems supporting modules, and explain the build performance implications of each method. Modules provide isolation between components to a level never before available in C++, and allow us to share the work of parsing interfaces between compile steps. At their core both headers and modules are represented by a dependency graph. Conceptually, headers resolve this graph by duplicating, pruning, and flattening it for each translation unit. Modules can avoid this duplication, but if they do they pay for it with serialization and synchronization overhead. The end result of this trade-off depends on the shape of your build.
—
Michael Spencer
Compiler Engineer, Apple
—
*-----*
*-----*
CppCon 2019: Michael Spencer “Building Modules”
2019 EuroLLVM Developers’ Meeting: clang-scan-deps: A. Lorenz & M. 'Spencer Fast dependenc...
Converting to C++20 Modules - Nathan Sidwell - CppCon 2019
Behind the Scenes of a C++ Build System - Jussi Pakkanen - CppCon 2019
(Ab)using Compiler Tools - Reka Kovacs - CppCon 2019
Meet Michael Spencer
C++20 Concepts: A Day in the Life - Saar Raz - CppCon 2019
CppCon 2019: Louis Dionne “The C++ ABI From the Ground Up”
Core C++ 2019 :: Bryce Adelstein :: Modules are Coming
CppCon 2019: Nick Uhlenhuth “Upgrade from 'permissive C++' to 'modern C++' with ...
CppCon 2019: Gabriel Dos Reis “Programming with C++ Modules: Guide for the Working”
Core C++ 2019 Bryce Adelstein Modules are Coming
C++Now 2018: Michael Spencer “How Compilers Reason About Exceptions”
CppCon 2016: Michael Spencer “My Little Optimizer: Undefined Behavior is Magic'
A C++ Approach to Physical Units - Mateusz Pusz - CppCon 2019
Michael Spence: Reacting to disruption
CppCon 2019: Mateusz Pusz “Rethinking the Way We Do Templates in C++”
Awesome Macros That Do Nothing - Louis Thomas - CppCon 2019
CppCon 2019: Andrzej Krzemieński “Error Handling is Cancelling Operations”
Stephan T. Lavavej “Floating-Point <charconv>: Making Your Code 10x Faster With C++17's Final B...
CppCon 2017: Rian Quinn “A Test a Day Keeps Your Manager Away!”
C++ supporting modules
A Series of Unfortunate Bugs - Satabdi Das - CppCon 2019
CppCon 2018: Boris Kolpackov “What to Expect from a Next-Generation C++ Build System”
Комментарии