-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
resolve: Collapse macro_rules
scope chains on the fly
#78826
Conversation
Some changes occurred in intra-doc-links. cc @jyn514 |
r? @estebank (rust_highfive has picked a reviewer for you, use r? to override) |
@bors try @rust-timer queue |
Awaiting bors try build completion |
⌛ Trying commit 9221079 with merge 2f473715c794d9062bd0439b02d25f098de6acb5... |
☀️ Try build successful - checks-actions |
Queued 2f473715c794d9062bd0439b02d25f098de6acb5 with parent a601302, future comparison URL. |
Finished benchmarking try commit (2f473715c794d9062bd0439b02d25f098de6acb5): 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 |
Looking over the implementation, I believe it is similar to the "path compression" optimization for union-find (collapsing redirects in a chain, i.e. replacing Here the chain is that of lexical (can only be seen "below" the definition, like Unlike union-find, however, this optimization is done eagerly (on every expansion), as opposed to lazily (when traversing these chains). I'm trusting @petrochenkov that this is more efficient, even though it might be clearer as an optimization to lazily cache-in-place during traversal, the way union-find "path compression" tends to work. Either way, I trust I can: @bors r+ |
📌 Commit 9221079 has been approved by |
@eddyb |
⌛ Testing commit 9221079 with merge 4cf4348857446540c82e56139dc70301730d7dae... |
💔 Test failed - checks-actions |
Network error (rust-lang/cargo#8517). @bors retry |
⌛ Testing commit 9221079 with merge 50589431d4b535b1edc7925f9d726652c213c3e5... |
💔 Test failed - checks-actions |
Same error :/ @ehuss mentioned in rust-lang/cargo#8517 (comment) that this happens more during GitHub outages and YouTube went down for a bit around an hour ago, so maybe that's the issue? Going to avoid retrying for now. |
It's not related to outages, it's just a case of bad luck. The pack files in the git repositories are in flux as they are constantly updated (each time a crate is published) and periodically recompressed. If it happens to recompress the pack file in such a way that it hits an edge condition, then it will fail. The only options are to run again and hope that the load balancer picks a different server that packed it differently, or to wait for the affected server to rebuild its pack files (which seems to happen every hour or two? I'm not sure) and hope it doesn't hit the edge case again. |
@bors retry A PR has been successfully merged, assuming the error has been fixed. |
⌛ Testing commit 9221079 with merge 4eb07ca60aff0364d21f2be1d080dce86e3b2ec5... |
💔 Test failed - checks-actions |
@bors retry |
☀️ Test successful - checks-actions |
Otherwise they grow too long and you have to endlessly walk through them when resolving macros or imports.
Addresses https://rust-lang.zulipchat.com/#narrow/stream/247081-t-compiler.2Fperformance/topic/Slow.20Builtin.20Derives/near/215750815