Skip to content
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

Rollup of 8 pull requests #86588

Merged
merged 22 commits into from
Jun 24, 2021
Merged

Rollup of 8 pull requests #86588

merged 22 commits into from
Jun 24, 2021

Conversation

JohnTitor
Copy link
Member

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Kmeakin and others added 22 commits June 17, 2021 20:42
Document the associativity of `Iterator::fold` and
`DoubleEndedIterator::rfold` and add examples demonstrating this.
Add links to direct users to the fold of the opposite associativity.
…r=Mark-Simulacrum

Error code cleanup and enforce checks

Fixes rust-lang#86097.

It now checks if an error code is unused, and if so, will report an error if the error code wasn't commented out in the `error_codes.rs` file. It also checks that the constant used in the tidy check is up-to-date.

r? `@Mark-Simulacrum`
…sakis

Add documentation for various THIR structs

Helps with rust-lang/project-thir-unsafeck#6.
r? `@nikomatsakis`
…, r=dtolnay

Document associativity of iterator folds.

Document the associativity of `Iterator::fold` and
`DoubleEndedIterator::rfold` and add examples demonstrating this.
Add links to direct users to the fold of the opposite associativity.
…-explain, r=petrochenkov

Support lowercase error codes in `--explain`

This enables `rustc --explain` to accept a lowercase error code. Thus, for instance, `rustc --explain e0573` would be valid after this change, where before a user would have needed to do `rustc --explain E0573`. Although the upper case form of an error code is canonical, the user may prefer the easier-to-type lowercase form, and there's nothing to be gained by forcing them to type the upper case version.

Resolves rust-lang#86518.
Update cargo

This also updates `opener` used in bootstrap (to try to keep dependencies unified).

18 commits in 44456677b5d1d82fe981c955dc5c67734b31f340..9233aa06c801801cff75df65df718d70905a235e
2021-06-12 18:00:01 +0000 to 2021-06-22 21:32:55 +0000
- Detect incorrectly named cargo.toml (rust-lang/cargo#9607)
- Unify weak and namespaced features. (rust-lang/cargo#9574)
- Change `rustc-cdylib-link-arg` error to a warning. (rust-lang/cargo#9563)
- Updates to future-incompatible reporting. (rust-lang/cargo#9606)
- Add a compatibility notice for diesel and the new resolver. (rust-lang/cargo#9602)
- Don't allow config env to modify vars set by cargo (rust-lang/cargo#9579)
- Disambiguate is_symlink. (rust-lang/cargo#9604)
- Update opener requirement from 0.4 to 0.5 (rust-lang/cargo#9583)
- Avoid quadratic complexity when splitting output into lines (rust-lang/cargo#9586)
- Bump to 0.56.0, update changelog (rust-lang/cargo#9597)
- Fix dep-info files including non-local build script paths. (rust-lang/cargo#9596)
- Relax doc collision error. (rust-lang/cargo#9595)
- Handle "jobs = 0" case in cargo config files (rust-lang/cargo#9584)
- Enhancements to testsuite error output. (rust-lang/cargo#9589)
- Fix typo (rust-lang/cargo#9590)
- Enable support for fix --edition for 2021. (rust-lang/cargo#9588)
- Add more details for installing git repository errors (rust-lang/cargo#9582)
- More information for links conflicting (rust-lang/cargo#9568)
…, r=jyn514

chore(rustdoc): Remove unused impl block
@rustbot rustbot added the rollup A PR which is a rollup label Jun 24, 2021
@JohnTitor
Copy link
Member Author

@bors r+ p=8 rollup=never

@bors
Copy link
Contributor

bors commented Jun 24, 2021

📌 Commit 64c9712 has been approved by JohnTitor

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jun 24, 2021
@bors
Copy link
Contributor

bors commented Jun 24, 2021

⌛ Testing commit 64c9712 with merge 964a81e...

@bors
Copy link
Contributor

bors commented Jun 24, 2021

☀️ Test successful - checks-actions
Approved by: JohnTitor
Pushing 964a81e to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jun 24, 2021
@bors bors merged commit 964a81e into rust-lang:master Jun 24, 2021
@rylev
Copy link
Member

rylev commented Jul 6, 2021

This rollup led to moderate regressions in deeply-nested-async and some lesser ones in a couple of other benchmarks. This rollup was largely documentation and tooling related. The only real changes in code were in MIR pretty printing and checking spans to see if Rust 2021 closure capturing should be used. Both seem rather benign. However, given the performance regression is async code (which may take more advantage of closures), perhaps the closure capture change should be investigated first.

cc @arora-aman @nikomatsakis

As part of the performance triage process, I'm marking this as a performance regression. If you believe this performance regression to be justifiable or once you have an issue or PR that addresses this regression, please mark this PR with the label perf-regression-triaged.

@rustbot label +perf-regression

@rustbot rustbot added the perf-regression Performance regression. label Jul 6, 2021
@arora-aman
Copy link
Member

arora-aman commented Jul 8, 2021

@rylev @nikomatsakis I did a perf run with all code relating to checking edition wrt disjoint capture removed. There doesn't seem to be any significant benefit of doing so for any of the benchmarks. Only bootstrap seems to be affected.

Details here: #86967 (comment)

I don't think it's 2229 being enabled by default that caused this regression

@Mark-Simulacrum
Copy link
Member

cachegrind diff for deeply-nested-async Check Full, on the published artifacts, shows:

 82,573,070 (122.9%)  ???:core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once
-13,762,254 (-20.5%)  ???:<smallvec::SmallVec<A> as core::iter::traits::collect::Extend<<A as smallvec::Array>::Item>>::extend
 -1,592,100 (-2.37%)  ???:hashbrown::map::RawEntryBuilderMut<K,V,S,A>::from_hash

This is not particularly revealing, unfortunately.

The externs Debug IncrFull benchmark also showed a regression, but its results don't point to anything obvious:

18,087,258 (97.55%)  ???:rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::read_deps
   216,000 ( 1.17%)  ???:<rustc_expand::placeholders::PlaceholderExpander as rustc_ast::mut_visit::MutVisitor>::flat_map_param
   180,000 ( 0.97%)  ???:rustc_lexer::<impl rustc_lexer::cursor::Cursor>::advance_token
  -158,998 (-0.86%)  ???:<alloc::vec::Vec<T> as rustc_data_structures::map_in_place::MapInPlace<T>>::flat_map_in_place
   135,090 ( 0.73%)  ???:core::ptr::drop_in_place<rustc_ast::ast::Path>
  -108,072 (-0.58%)  ???:core::ptr::drop_in_place<rustc_ast::ast::Attribute>
   104,230 ( 0.56%)  ???:core::ptr::drop_in_place<alloc::vec::Vec<rustc_ast::ast::PathSegment>>
    96,000 ( 0.52%)  ???:rustc_hir::intravisit::walk_qpath
   -89,575 (-0.48%)  ???:<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop
    33,227 ( 0.18%)  ???:<hashbrown::raw::RawIterHash<T,A> as core::iter::traits::iterator::Iterator>::next
    25,021 ( 0.13%)  ???:hashbrown::map::HashMap<K,V,S,A>::insert
    20,489 ( 0.11%)  ???:hashbrown::map::RawEntryBuilder<K,V,S,A>::from_key_hashed_nocheck

Ultimately these results don't point to something obvious -- it seems plausible that the changes are due to a number of factors. The added code in the executable might be hurting PGO, for example, which may be causing this. Local builds + benchmarks aren't able to reproduce any regression (rather typically show very small improvements, likely lost in the noise) as a result of this PR, though those are done without PGO.

So I'm going to say that this is small enough that I'm OK marking as triaged as-is. @rustbot label +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Sep 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.