HassanSajjad-302 wrote: > If it is true, it implies the current build process spend > 90% time on build > systems and build system communications, it is really hard to believe...
Yes. I really think so. On a 32 thread modern machine with big hu, it should be >10x faster. One big-hu will replaces 100-300 header-files. So, instead of reading all these, compiler reads one memory mapped big hu. During big-hu compilation, compiler makes filesystem call of reading the header-files and writing the PCM file. During source compilation, the compiler does not make any other filesystem call except writing of the object-file. Configuration step with CMake takes 30s. In HMake, even with 10 configurations, it would still be less than 5s. An optimization that I am working on is to directly invoke the `-cc1` instead of first going through the driver. HMake at configuration-time will run the compile-command with `-###` and record the command. This should save 60ms on every compilation on windows. so 1100ms / 200ms = 5.5x but 1040ms / 140ms = 7.4x. I did not implement it earlier because I thought that user might want different compile-flags. However, your [comment](https://chuanqixu9.github.io/c++/2025/12/03/Clangd-support-for-Modules.en.html) explained. Ninja is intentionally designed to be dumb to be as fast as possible. CMake lowers custom-commands to Ninja. However, in HMake there is vertical integration. This makes different [kinds](https://github.com/HassanSajjad-302/HMake/blob/1d12c909c248b9c7a6cdd685acd7fa117ee494ef/hconfigure/header/BTarget.hpp#L33) of dependency specification extremely easy due to full context availability. At the same time it improves visibility to find out any redundant dependency specifications. This should also provide a good 20-30% improvement. What is your estimate? Please consider my proposal for compiling Clang in 3 weeks. It should be atleast >6x faster than CMake. https://github.com/llvm/llvm-project/pull/147682 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
