News for hackers. Stuff that matters.
Re:Trying out C++20's modules with Clang and Make by mathstuf on Sunday October 15, 2023 @05:06PM (#37893383)
FD: I'm a member of SG15, author of P1689[1], and implemented much of the support for compiling them in CMake.

It is my opinion that hand-coded Makefiles are unlikely to handle modules well. They have the same required strategy as Fortran modules where the (documented!) approach by Intel was to run `make` in parallel until it works (basically using the `make` scheduler to get the TU compilation order eventually). Of course, there's no reliable way to know if you found a stale module or anything like that if there's a cycle or a module rename leaving old artifacts around.

There is the `makedepf90` tool that could do the "dynamic dependencies" with a fixed-level recursive Makefile to order the compilations in the right order (though I think you may be able skip the recursive layer if you have no sources generated by tools built during the build).

Anyways, this strategy fails if you want implementation-only modules, modules of the same name (that don't end up in the same process space; debug and release builds in a single tree are the more common example though), use modules from other projects (as you need to add rules to compile their module interfaces for your own build).

[1] https://wg21.link/p1689

There are no comments on this comment yet.