You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When invoking rustc from Ninja, it causes Ninja to rebuild the target on every invocation: Ninja consumes and deletes the cmc.d depfile (unless -d keepdepfile is specified) and process its content, recording cmc.d as an additional output of the rule that produced it. On the next invocation, Ninja notices that the cmc.d file is missing forcing a rebuild of that rule. rustc generates a new depfile, Ninja consumes and deletes it and so on which means that this process never converges.
I don't think rustc should be including the depfile itself in the generated depfile. I'm not aware of any other tool that would do that, and tools that consume depfiles such as Ninja cannot handle this.
The text was updated successfully, but these errors were encountered:
I'd basically feel the same way as before. I'm not necessarily for or against this change but it's unfortunately a breaking change and it's one we'd want to handle carefully. If analysis is done though to realize that it'd have low impact in the wild it seems fine to do. Otherwise we should likely stabilize something to get the behavior of removing the *.d file.
Closing per the above, we're unlikely to move forward without some analysis and otherwise as a likely breaking change we wouldn't want to do it so there's no reason to keep this open. The flag to disable this behavior is already available on nightly.
rustc
generates depfiles that have the following shape:When invoking
rustc
from Ninja, it causes Ninja to rebuild the target on every invocation: Ninja consumes and deletes thecmc.d
depfile (unless-d keepdepfile
is specified) and process its content, recordingcmc.d
as an additional output of the rule that produced it. On the next invocation, Ninja notices that thecmc.d
file is missing forcing a rebuild of that rule.rustc
generates a new depfile, Ninja consumes and deletes it and so on which means that this process never converges.I don't think
rustc
should be including the depfile itself in the generated depfile. I'm not aware of any other tool that would do that, and tools that consume depfiles such as Ninja cannot handle this.The text was updated successfully, but these errors were encountered: