Uh oh!
There was an error while loading. Please reload this page.
Enforce that query results implement Debug - #80692
Conversation
rust-highfive
commented
Jan 4, 2021
r? @estebank (rust-highfive has picked a reviewer for you, use r? to override) |
Aaron1011
commented
Jan 4, 2021
@bors try @rust-timer queue |
rust-timer
commented
Jan 4, 2021
Awaiting bors try build completion. |
bors
commented
Jan 4, 2021
⌛ Trying commit 6294e9c904fa3c14aa1935385037f58ec8ec7793 with merge 3bf0928529d2653a392113783e402c573c81c8a8... |
bors
commented
Jan 4, 2021
☀️ Try build successful - checks-actions |
rust-timer
commented
Jan 4, 2021
Queued 3bf0928529d2653a392113783e402c573c81c8a8 with parent 6163bfd, future comparison URL. @rustbot label: +S-waiting-on-perf |
rust-timer
commented
Jan 4, 2021
Finished benchmarking try commit (3bf0928529d2653a392113783e402c573c81c8a8): comparison url. Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up. @bors rollup=never |
Aaron1011
commented
Jan 4, 2021
The debug formatting of the value should only run when the assertion fails, which is never. I have no idea how adding a bunch of |
cjgillot
commented
Jan 5, 2021
Putting the bound on |
cjgillot
commented
Jan 5, 2021
Changes in rustc_query_system tend to have an absurdly high impact, but those perf results take it to a whole new level. |
estebank
commented
Jan 8, 2021
I love how the regressions are all for incremental runs with no code changes (except externs-debug where it affects only full runs). 🙃 |
estebank
commented
Jan 8, 2021
I'm unopposed to the change itself, but share the concern of compiling rustc timing after the change. |
tgnottingham
commented
Jan 8, 2021
If it's CGU partitioning, which seems plausible, you might rebase and see if you're luckier the next time around. |
Aaron1011
commented
Jan 13, 2021
Let's see if things are any different with the latest master: @bors try @rust-timer queue |
rust-timer
commented
Jan 13, 2021
Awaiting bors try build completion. |
bors
commented
Jan 13, 2021
⌛ Trying commit 6294e9c904fa3c14aa1935385037f58ec8ec7793 with merge 3e5e3a74a65f250eef3d36243bbcdf15bcbc454a... |
bors
commented
Jan 13, 2021
💔 Test failed - checks-actions |
rust-log-analyzer
commented
Jan 13, 2021
The job Click to see the possible cause of the failure (guessed by this bot) |
| pub trait QueryStorage: Default { | ||
| type Value; | ||
| type Value: Debug; |
There was a problem hiding this comment.
Are bounds in this file necessary? Putting them on QueryConfig::Value should be enough.
rust-timer
commented
Jan 17, 2021
Finished benchmarking try commit (c23f8d7d27456bf28becd5d64f41bcab2259a949): comparison url. Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up. @bors rollup=never |
Aaron1011
commented
Jan 17, 2021
@bors try @rust-timer queue |
rust-timer
commented
Jan 17, 2021
Awaiting bors try build completion. |
bors
commented
Jan 17, 2021
⌛ Trying commit 056fbbf with merge 5fae81261f5ea323985073465c301d8fa35e7d93... |
Aaron1011
commented
Jan 17, 2021
#79100 (comment) showed that the cold path of an |
bors
commented
Jan 17, 2021
☀️ Try build successful - checks-actions |
rust-timer
commented
Jan 17, 2021
Queued 5fae81261f5ea323985073465c301d8fa35e7d93 with parent 2e46cb3, future comparison URL. @rustbot label: +S-waiting-on-perf |
rust-timer
commented
Jan 17, 2021
Finished benchmarking try commit (5fae81261f5ea323985073465c301d8fa35e7d93): comparison url. Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up. @bors rollup=never |
Aaron1011
commented
Jan 17, 2021
There's still some perf changes, but they're much smaller, and hopefully just noise. |
estebank
commented
Jan 26, 2021
@bors r+ |
bors
commented
Jan 26, 2021
📌 Commit 056fbbf has been approved by |
bors
commented
Jan 26, 2021
bors
commented
Jan 26, 2021
☀️ Test successful - checks-actions |
Debug-print result when an unstable fingerprint is detected Helps with issues like rust-lang#83311 I had previously tried to do this in rust-lang#80692, but it had a significant performance impact (even though the code was never actually run). Hopefully, this will be better now that rust-lang#79100 has been merged.
Currently, we require that query keys implement
Debug, but we do not do the same for query values. This can make incremental compilation bugs difficult to debug - there isn't a good place to print out the result loaded from disk.This PR adds
Debugbounds to several query-related functions, allowing us to debug-print the query value when an 'unstable fingerprint' error occurs. This required adding#[derive(Debug)]to a fairly large number of types - hopefully, this doesn't have much of an impact on compiler bootstrapping times.