-
Type: Improvement
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Labels:None
-
Server Development Platform
-
Dev Platform 2021-09-06, Dev Platform 2021-09-20, Dev Platform 2021-10-04, Dev Platform 2021-10-18, Dev Platform 2022-01-10, Dev Platform 2022-01-24, Dev Platform 2022-02-07, Dev Platform 2022-03-07, Dev Platform 2022-03-21
In SERVER-56003, Mathias discussed the issue with using mtimes for checking if the compiler has changed. There are cases where the compiler could change, and the mtime still not be newer, which is what ninja checks for when rebuilding.
Not just for compilers but any tool, or in ninja tool terms, providers, which are generally binaries not part of the source tree which are used to build nodes, for example, compilers.
A solution to this would be to hash to providers and depend on a file containing the hash, only updating the file if the hash has changed. Then via ninja's restat we can decide for sure if things should be rebuilt not just from the mtime.