-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Utilize -Zbinary-dep-depinfo in rustbuild #63470
Conversation
To be clear this is not intended to land as-is since it won't actually work as-is since the rustc needs to be overridden -- the currently nightly can't bootstrap successfully I believe due to MaybeUninit changes -- I'm using 2b78e10 as the base commit via rustup-toolchain-install-master locally and we shouldn't couple the depdep changes to cfg(bootstrap). |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's an impressive list of fixed issues!
This may also want to apply https://gist.github.com/alexcrichton/e0840447982f93cb22bbd98878d2c205 to get colors back in error messages and fix the progress bar with pipelining
e4f7726
to
0be63bd
Compare
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
c034578
to
cecdcdb
Compare
Just force pushed what should hopefully be a fix for the cfg(bootstrap) bit; with stage0.txt modified to the beta scheduled to be released Tuesday we can likely land this PR in one go to avoid wasting two cycles. |
5739811
to
beab7fb
Compare
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
beab7fb
to
cc0bdab
Compare
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
cc0bdab
to
9bec456
Compare
9bec456
to
40da969
Compare
40da969
to
417f9ea
Compare
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
(This PR has dropped the necessary bootstrap update, by splitting it into #63534). |
Your PR failed (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
💔 Test failed - checks-azure |
@bors retry spurious |
⌛ Testing commit 417f9ea with merge 445fdfde3204773574bead82363e4e82b2d06a57... |
💥 Test timed out |
@bors retry Pretty sure literally every builder passed and homu just didn't get the notification (cc @pietroalbini - does that look similar to #63513?) |
No, GitHub was correctly updated. Let me see if there are any errors on homu's side. |
Oh this is a legit timeout: the build took 4 hours and 6 seconds, which is more than the 4 hour timeout... |
Longest builder took just under 4 hours (https://dev.azure.com/rust-lang/rust/_build/results?buildId=6037&view=logs) AFAICT, and it looks like that builder is taking 3h45m or so in other auto builds so presumably this is not unexpected. We should try and move some things around as the partner i686-mingw-1 builder is only taking 3 hours (so we have an hour or so to split across two builders, in theory). |
Yeah, but in the summary the recorded build time was 4 hours and 6 seconds, which is when the final check suite was updated.
I'll look into this. |
Some of the text in the OP still sounds like it comes from an alternative universe where this landed before the beta cutoff? |
Thanks for the reminder, I had forgotten to remove that text. Should be all down to just this PR now. |
Utilize -Zbinary-dep-depinfo in rustbuild We no longer utilize stamp-file mtimes at all inside rustbuild, and a future PR may be able to entirely eliminate them by eagerly copying to the appropriate sysroot. The only mtime-based dependency tracking left is for documentation because we lie to Cargo about the rustdoc binary, so Cargo does not track changes to the real binary, and codegen-backends because binary-dep-depinfo does not emit that information into the depfiles. Both of these are fixable in the longer term but this existing patch gives us the following benefits: * We no longer delete Cargo target directories manually within a stage. Cross-stage, changes to codegen backends will still clear out target directories. This means that incremental state persists across individual steps (e.g., rebuilding libstd does not clear out librustc incremental state). Fixes #54712. * Dependency tracking across steps within a given stage is now fully precise. We will not clear out all codegen backend dependencies due to changes in librustc_driver, for example, only deleting the final librustc_codegen_llvm crate. Fixes #54008, fixes #50481. * We properly track codegen backends as a dependency (equivalent to rustc) across changes. Fixes #53284, and fixes #52719. * Cross-stage dependency tracking of crates is also much more accurate and reliable. Most likely fixes #49979 (but no reproduction steps in that issue). Fixes #59105. cc #63012
☀️ Test successful - checks-azure |
Thank you a ton! PRs like these are huge but are not the ones getting all the attention, for obvious reasons. This PR will make the lives of almost all people working on this repo a lot better! While the fixed issues sound like minor inconveniences, they made working on the compiler very annoying at times. I almost gave up on compiler-hacking twice just for annoyances like these! Reducing frustrations with the build-system goes a long way in attracting and keeping more people hacking on this repo. Please excuse my ramblings, but I just had to express my gratitude for PRs like this. Thanks again! |
We no longer utilize stamp-file mtimes at all inside rustbuild, and a future PR may be able to entirely eliminate them by eagerly copying to the appropriate sysroot. The only mtime-based dependency tracking left is for documentation because we lie to Cargo about the rustdoc binary, so Cargo does not track changes to the real binary, and codegen-backends because binary-dep-depinfo does not emit that information into the depfiles.
Both of these are fixable in the longer term but this existing patch gives us the following benefits:
std
whichrand
depends on" #50481.std
whichcc
depends on" while building rustc #49979 (but no reproduction steps in that issue). Fixes Incremental compilation error building rustc (-i --keep-stage 0
) #59105.cc #63012