-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Precompute ancestors when checking privacy #81574
Conversation
Precompute ancestors of the old error node set so that check for private types and traits in public interfaces can in constant time determine if the current item has any descendants in the old error set. No functional changes intended.
r? @oli-obk (rust-highfive has picked a reviewer for you, use r? to override) |
@bors try @rust-timer queue |
Awaiting bors try build completion. |
⌛ Trying commit b01976a with merge 1e3fee80c53fecef512bac75b0b96f4e90484bbe... |
☀️ Try build successful - checks-actions |
Queued 1e3fee80c53fecef512bac75b0b96f4e90484bbe with parent fd20a8b, future comparison URL. @rustbot label: +S-waiting-on-perf |
Finished benchmarking try commit (1e3fee80c53fecef512bac75b0b96f4e90484bbe): 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 |
@bors try @rust-timer queue |
Awaiting bors try build completion. |
⌛ Trying commit 712bb1c15a6a987c4feb8d4f64a6f573c33c9e31 with merge 7aa7d821ffc49849236e46d009860941d8106fac... |
☀️ Try build successful - checks-actions |
Queued 7aa7d821ffc49849236e46d009860941d8106fac with parent 04caa63, future comparison URL. @rustbot label: +S-waiting-on-perf |
Finished benchmarking try commit (7aa7d821ffc49849236e46d009860941d8106fac): 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 |
There was an extra commit that attempted an additional micro optimization, but it is far from clear if it has any benefits so I removed it. There is a large regression for deeply-nested-async. The old error set is empty for this benchmark. Using artifiacts from CI, the regression is reproducible but instruction count differences are in unrelated area of privacy checking. The cause appears to be different codegen partitioning of rustc-privacy as far as I can see. |
The regression can potentially be fixed by adding some targeted @bors r+ |
📌 Commit b01976a has been approved by |
⌛ Testing commit b01976a with merge 3e1d74b413edb132708fb24af1ed3ddc29e9dfcc... |
💥 Test timed out |
@bors retry |
Opened #82221 to track test hang which caused time out. It seems to be happening quite a bit, although I haven't encountered one locally. |
☀️ Test successful - checks-actions |
A job failed! Check out the build log: (web) (plain) Click to see the possible cause of the failure (guessed by this bot)
|
Precompute ancestors of the old error node set so that check for private
types and traits in public interfaces can in constant time determine if
the current item has any descendants in the old error set.
This removes disparity in compilation time between public and private type
aliases reported in #50614 (from 30 s to 5 s, in an example making extensive use
of private type aliases).
No functional changes intended.