Communication Between the Compiler, the Build System, and Beyond
shrub.industries
[hidden]
The build times we see affecting C++ and Rust are because the type systems of languages is misdesigned. The supply-chain issues we have with the language-level packaging manager downloading source instead of pre-compiled binaries from curated repositories are also related to this. I think we need leaner, simpler, and better modularized software. Not whole-program optimization which is only necessary because of the monomorphized gigantic intermediate results created for badly designed languages, which then needs to be reduced again in a costly process.
[hidden]
In a large multi-dll build like Windows or Office, the import/export information across modules is computed without doing codegen, so ltcg codegen can be done in parallel regardless of the module dependency graph.
I never worked deeply in the build systems for Linux based OSes or other unixes, but I gather that some symbol visibility choices make the build situation worse in Unix systems than Windows.
t43562[hidden]
On the other hand a build system that only does silos, assumes some packaging system and is monolingual has limited applicability.