There are apparently situations involving incremental compilation where rustc will conclude that an output file (e.g. an rmeta file) is already fully up-to-date, and will just not do anything to it. However, build systems (including cargo) typically assume that they can use the mtime to figure out whether an output is up-to-date, so rustc not bumping the mtime of an output can lead to confusion.
We may want to fix rustc so that it always bumps the mtime of its outputs, even if they need no other changes. That should be quite cheap to do, and can avoid a lot of downstream head-scratching such as:
There are apparently situations involving incremental compilation where rustc will conclude that an output file (e.g. an rmeta file) is already fully up-to-date, and will just not do anything to it. However, build systems (including cargo) typically assume that they can use the mtime to figure out whether an output is up-to-date, so rustc not bumping the mtime of an output can lead to confusion.
We may want to fix rustc so that it always bumps the mtime of its outputs, even if they need no other changes. That should be quite cheap to do, and can avoid a lot of downstream head-scratching such as: