Aren't modules especially limited with the mentioned problem of templates? If I have a vector of a custom type, I still have to instantiate it in every file that is using this type, I don't think modules help much here, they reduce the amount of time parsing, not instantiating if I understand correctly.
We'll need to significantly change the way we handle templates in compilers to get significant improvement.
I thought Google fixed the C++ compile time problem by inventing Go?
Go is hardly a replacement for C++. Garbage collection, no templates, no const, etc.
I am confident that by C++20 they will be available.
The main problem will be the adoption by major libraries.
Regarding the libc and other headers, modules will still fullly support include files, so that won't be an issue. You should be able to include headers and export them as modules.
libc and libstdc++ are part of the compiler runtime, ie. will be updated together with it.
Kernel headers are only an issue on free UNIX like OSes, on other OS what matters is what the SDK provides.
So at least in what concerns Apple, Google, Microsoft and every other commercial vendor OSes, don't expect a big issue having their SDKs updated when they start supporting modules.
The problem is getting the BSD, Linux and open source libraries without a specific agenda to adopt them.
Having looked at the clang modules implementation you basically have to clean up all the system includes, the standard library and your own headers before you can use them. And you will have to rewrite many things in these headers due to changed preprocessor semantics.
I think neither the clang nor MSVC implementations can be used for anything but the most trivial code due to these issues.
There are talks from Google who invested heavily into modules using clang and got gains, but as far as I understand they fixed those issues only for themselves.
More info welcome.
At this point the only cure is brute force (blades with many cores are not that expensive, or a distributed compile cluster) and always taking care with your includes.