◦ M headers ◦ In each translation unit, the compiler is performing M x N work ◦ Even though most of the M headers are shared among multiple translation units • Translation unit ◦ consists of a source file after it has been processed by the C preprocessor, meaning that header files listed in #include directives are literally included
headers into a single precompiled header (PCH file). • Then, when compiling the source files in the project, we load the PCH file first. • Drawback ◦ Every .m can access the .pch
in Swift is the .swiftmodule file • Binary format (LLVM bitcode) file that records the declarations (types, function signatures, etc.) • When you import that module from another module that you're compiling, `swiftc` loads that `.swiftmodule` file into memory so that it can typecheck in that module. • Has namespace in module