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

Use dynamic dispatch for queries #108638

Merged
merged 2 commits into from
May 14, 2023
Merged

Conversation

Zoxc
Copy link
Contributor

@Zoxc Zoxc commented Mar 2, 2023

This replaces most concrete query values V with MaybeUninit<[u8; { size_of::<V>() }]> reducing the code instantiated by queries. The compile time of rustc_query_impl is reduced by 27%. It is an alternative to #107937 which uses unstable const generics while this uses a EraseType trait which maps query values to their erased variant.

This is achieved by introducing an Erased type which does sanity check with cfg(debug_assertions). The query caches gets instantiated with these erased types leaving the code in rustc_query_system unaware of them. rustc_query_system is changed to use instances of QueryConfig so that rustc_query_impl can pass in DynamicConfig which holds a pointer to a virtual table.

BenchmarkBeforeAfter
TimeTime%
🟣 clap:check1.7055s1.6949s -0.62%
🟣 hyper:check0.2547s0.2528s -0.73%
🟣 regex:check0.9590s0.9553s -0.39%
🟣 syn:check1.5457s1.5440s -0.11%
🟣 syntex_syntax:check5.9092s5.9009s -0.14%
Total10.3741s10.3479s -0.25%
Summary1.0000s0.9960s -0.40%
BenchmarkBeforeAfter
TimeTime%
🟣 clap:check:initial2.0605s2.0575s -0.15%
🟣 hyper:check:initial0.3218s0.3216s -0.07%
🟣 regex:check:initial1.1848s1.1839s -0.07%
🟣 syn:check:initial1.9409s1.9376s -0.17%
🟣 syntex_syntax:check:initial7.3105s7.2928s -0.24%
Total12.8185s12.7935s -0.20%
Summary1.0000s0.9986s -0.14%
BenchmarkBeforeAfter
TimeTime%
🟣 clap:check:unchanged0.4606s0.4617s 0.24%
🟣 hyper:check:unchanged0.1335s0.1336s 0.08%
🟣 regex:check:unchanged0.3324s0.3346s 0.65%
🟣 syn:check:unchanged0.6268s0.6307s 0.64%
🟣 syntex_syntax:check:unchanged1.8248s1.8508s💔 1.43%
Total3.3779s3.4113s 0.99%
Summary1.0000s1.0061s 0.61%

It's based on #108167.

r? @cjgillot

@rustbot rustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 2, 2023
@rustbot
Copy link
Collaborator

rustbot commented Mar 2, 2023

These commits modify the Cargo.lock file. Random changes to Cargo.lock can be introduced when switching branches and rebasing PRs.
This was probably unintentional and should be reverted before this PR is merged.

If this was intentional then you can ignore this comment.

@Zoxc
Copy link
Contributor Author

Zoxc commented Mar 2, 2023

This could use a perf run.

@Noratrieb
Copy link
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Mar 2, 2023
@bors
Copy link
Contributor

bors commented Mar 2, 2023

⌛ Trying commit 4b8bcb6bb27ac0f3fabaa33bedfd3921487100ea with merge 97d7f37551bbf61e755d3ee780318d260f4dfb64...

@bors
Copy link
Contributor

bors commented Mar 2, 2023

☀️ Try build successful - checks-actions
Build commit: 97d7f37551bbf61e755d3ee780318d260f4dfb64 (97d7f37551bbf61e755d3ee780318d260f4dfb64)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (97d7f37551bbf61e755d3ee780318d260f4dfb64): comparison URL.

Overall result: ❌ regressions - ACTION NEEDED

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please fix the regressions and do another perf run. If the next run shows neutral or positive results, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
1.1% [0.3%, 2.0%] 108
Regressions ❌
(secondary)
0.9% [0.2%, 2.0%] 69
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.4% [-0.4%, -0.4%] 1
All ❌✅ (primary) 1.1% [0.3%, 2.0%] 108

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.0% [-1.5%, -0.6%] 13
Improvements ✅
(secondary)
-3.0% [-6.2%, -1.0%] 12
All ❌✅ (primary) -1.0% [-1.5%, -0.6%] 13

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
1.3% [1.2%, 1.4%] 5
Regressions ❌
(secondary)
2.1% [2.0%, 2.1%] 2
Improvements ✅
(primary)
-2.2% [-2.2%, -2.2%] 1
Improvements ✅
(secondary)
-1.2% [-1.7%, -0.6%] 2
All ❌✅ (primary) 0.7% [-2.2%, 1.4%] 6

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Mar 2, 2023
@Zoxc
Copy link
Contributor Author

Zoxc commented Mar 2, 2023

bitmaps seems to be the largest instruction regression, runtime it's a bit lower though:

BenchmarkBeforeAfter
TimeTime%
🟣 bitmaps:check:unchanged0.3744s0.3773s 0.78%
Total0.3744s0.3773s 0.78%
Summary1.0000s1.0078s 0.78%

@Zoxc Zoxc force-pushed the erase-query-values-map branch 2 times, most recently from 061d6ef to 544955a Compare March 4, 2023 14:38
@rustbot rustbot added the A-testsuite Area: The testsuite used to check the correctness of rustc label Mar 4, 2023
@bors
Copy link
Contributor

bors commented Mar 7, 2023

☔ The latest upstream changes (presumably #108863) made this pull request unmergeable. Please resolve the merge conflicts.

Copy link
Contributor

@cjgillot cjgillot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is very complex. It will take me a few more passes to fully digest it.
Thanks you for the work (and your future patience).

The bootstrap gains are nice, but the 2% regression is a bit much.
Do you have ideas to mitigate it?

compiler/rustc_middle/src/query/erase.rs Outdated Show resolved Hide resolved
compiler/rustc_middle/src/query/erase.rs Outdated Show resolved Hide resolved
compiler/rustc_query_impl/src/lib.rs Outdated Show resolved Hide resolved
compiler/rustc_query_impl/src/lib.rs Outdated Show resolved Hide resolved
compiler/rustc_query_impl/src/lib.rs Outdated Show resolved Hide resolved
}

impl<'tcx, C: QueryCache, Anon: Bool, DepthLimit: Bool, Feedable: Bool> QueryConfig<QueryCtxt<'tcx>>
for DynamicConfig<'tcx, C, Anon, DepthLimit, Feedable>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIUC, we now have 2 (Anon) x 2 (DepthLimit) x 2 (Feedable) x 3 (types of cache) x (number of value sizes) instance of the functions in rustc_query_system.
Is there much gained by having anon/depth_limit/feedable statically, instead of plain booleans?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Anon, DepthLimit and Feedable have few instances, so the cost of specializing for them is quite low at the moment. Fully erased we reduce things to 94 instances so few additional ones isn't impactful.

compiler/rustc_query_impl/src/lib.rs Outdated Show resolved Hide resolved
compiler/rustc_query_impl/src/lib.rs Outdated Show resolved Hide resolved
mode: QueryMode,
) -> Option<query_values::$name<'tcx>> {
) -> Option<Erase<query_values::$name<'tcx>>> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could use a query_erased::$name alias for the return type.

compiler/rustc_middle/src/query/erase.rs Outdated Show resolved Hide resolved
@Zoxc
Copy link
Contributor Author

Zoxc commented Mar 9, 2023

There's 2 additional optimizations that can be done, re-merging query state and query cache and making compute call providers directly by having the provider side do erasure. I suspect these would be insufficient to offset the incremental loss though. There might also be some inlining differences causing parts of the incremental regressions. I've not yet looked at the optimized code output.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (c5ee29edea029fc90cd1b1fcf1c9701733aef5aa): comparison URL.

Overall result: ❌ regressions - ACTION NEEDED

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please fix the regressions and do another perf run. If the next run shows neutral or positive results, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.7% [0.3%, 1.0%] 92
Regressions ❌
(secondary)
0.8% [0.2%, 2.8%] 47
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.2% [-0.3%, -0.2%] 3
All ❌✅ (primary) 0.7% [0.3%, 1.0%] 92

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.9% [2.9%, 2.9%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.9% [-2.9%, -2.9%] 1
All ❌✅ (primary) - - 0

Cycles

This benchmark run did not return any relevant results for this metric.

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Apr 30, 2023
@apiraino
Copy link
Contributor

apiraino commented May 3, 2023

hello checking progress. Probably I can switch to waiting on author to comment on the latest perf. run. @Zoxc Feel free to request a review with @rustbot ready, thanks!

@rustbot author

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 3, 2023
@Zoxc
Copy link
Contributor Author

Zoxc commented May 12, 2023

I think the current state is decent enough. I did some more local testing and the incremental regressions seems to be about 0.3% on average (perf showing 0.2% for primary benchmarks on incr-unchanged + incr-patched).

The performance to compile time ratio improvement is good. For builds with 1 CGU it's a 15% reduction in the compile time of the compiler with 8 cores. This means that switching to building the compiler with 1 CGU would give us extra performance while building faster than with 16 CGUs with 8 cores (which is the highest CI uses).

@rustbot ready

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 12, 2023
@cjgillot
Copy link
Contributor

I agree, the perf effect is only visible on incr-unchanged cases, and ~1% on perf suite. Meanwhile, we get a ~20s gain on bootstrap.
@bors r+

@bors
Copy link
Contributor

bors commented May 14, 2023

📌 Commit 7aab1dd has been approved by cjgillot

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 14, 2023
@bors
Copy link
Contributor

bors commented May 14, 2023

⌛ Testing commit 7aab1dd with merge 8e8116c...

Comment on lines +10 to +11
memoffset = { version = "0.6.0", features = ["unstable_const"] }
field-offset = "0.3.5"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This creates 3 versions of memoffset (0.6, 0.7, 0.8). Is there particular reason to use 0.6 version instead of 0.7 or 0.8?

@bors
Copy link
Contributor

bors commented May 14, 2023

☀️ Test successful - checks-actions
Approved by: cjgillot
Pushing 8e8116c to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 14, 2023
@bors bors merged commit 8e8116c into rust-lang:master May 14, 2023
@rustbot rustbot added this to the 1.71.0 milestone May 14, 2023
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (8e8116c): comparison URL.

Overall result: ❌ regressions - ACTION NEEDED

Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please open an issue or create a new PR that fixes the regressions, add a comment linking to the newly created issue or PR, and then add the perf-regression-triaged label to this PR.

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.6% [0.3%, 1.0%] 74
Regressions ❌
(secondary)
0.7% [0.1%, 2.2%] 61
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.6% [0.3%, 1.0%] 74

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.2% [2.2%, 2.2%] 1
Improvements ✅
(primary)
-2.3% [-2.3%, -2.3%] 1
Improvements ✅
(secondary)
-2.2% [-3.3%, -1.0%] 9
All ❌✅ (primary) -2.3% [-2.3%, -2.3%] 1

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 659.942s -> 641.664s (-2.77%)

Comment on lines +616 to +622
pub fn dynamic_queries<'tcx>() -> DynamicQueries<'tcx> {
DynamicQueries {
$(
$name: dynamic_query::$name(),
)*
}
})*
}
Copy link
Contributor

@klensy klensy May 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And now this is top4 function by size 56kb long.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That doesn't sound right? What's the symbol name and content?

Copy link
Contributor

@klensy klensy May 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_RNvCscI0NJ2NbQrx_16rustc_query_impl15dynamic_queries() | 55826, i guess inlined dynamic_query calls? I'll try place inline(never) over it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm.. I guess they all could end up getting inlined. It should be a single basic block though, so it might not affect compile time much.

bors added a commit to rust-lang-ci/rust that referenced this pull request May 30, 2023
…lacrum

deps: bump crates

Updates few deps:

drops a lot of cxx* crates:
```console
$ cargo update -p iana-time-zone-haiku
    Updating crates.io index
    Updating cc v1.0.77 -> v1.0.79
    Removing codespan-reporting v0.11.1
    Removing cxx v1.0.94
    Removing cxx-build v1.0.94
    Removing cxxbridge-flags v1.0.94
    Removing cxxbridge-macro v1.0.94
    Updating iana-time-zone-haiku v0.1.1 -> v0.1.2
    Removing link-cplusplus v1.0.8
    Removing scratch v1.0.5
```
cc: https://github.com/rust-lang/cc-rs/releases/tag/1.0.78, https://github.com/rust-lang/cc-rs/releases/tag/1.0.79
iana-time-zone-haiku: https://github.com/strawlab/iana-time-zone/releases/tag/haiku%2Fv0.1.2

fixed crossbeam-rs/crossbeam#972 (similar fixed in rust repo rust-lang#110089)
```console
$ cargo update -p crossbeam-channel
    Updating crates.io index
    Updating crossbeam-channel v0.5.6 -> v0.5.8
```
https://github.com/crossbeam-rs/crossbeam/blob/master/crossbeam-channel/CHANGELOG.md#version-058

dedupes memoffset versions:
```console
$ cargo update -p crossbeam-epoch
    Updating crates.io index
    Updating crossbeam-epoch v0.9.13 -> v0.9.14
    Removing memoffset v0.7.1
```
https://github.com/crossbeam-rs/crossbeam/blob/master/crossbeam-epoch/CHANGELOG.md#version-0914
Gilnaa/memoffset@v0.6.5...v0.8.0
rust-lang#108638 (comment)

dedupes bstr versions
```console
$ cargo update -p ignore -p opener
    Updating crates.io index
    Removing bstr v0.2.17
    Updating globset v0.4.9 -> v0.4.10
    Updating ignore v0.4.18 -> v0.4.20
    Updating opener v0.5.0 -> v0.5.2
```

globset BurntSushi/ripgrep@ac8fecb
ignore https://github.com/BurntSushi/ripgrep/commits/master/crates/ignore hard to track, but drop dep on crossbeam-utils (BurntSushi/ripgrep@e95254a), don't stat git if require_git is false (BurntSushi/ripgrep@009dda1) and added bunch of formats to ignore list
opener Seeker14491/opener@v0.5.0...v0.5.2 nothing interesting
RalfJung pushed a commit to RalfJung/miri that referenced this pull request May 31, 2023
deps: bump crates

Updates few deps:

drops a lot of cxx* crates:
```console
$ cargo update -p iana-time-zone-haiku
    Updating crates.io index
    Updating cc v1.0.77 -> v1.0.79
    Removing codespan-reporting v0.11.1
    Removing cxx v1.0.94
    Removing cxx-build v1.0.94
    Removing cxxbridge-flags v1.0.94
    Removing cxxbridge-macro v1.0.94
    Updating iana-time-zone-haiku v0.1.1 -> v0.1.2
    Removing link-cplusplus v1.0.8
    Removing scratch v1.0.5
```
cc: https://github.com/rust-lang/cc-rs/releases/tag/1.0.78, https://github.com/rust-lang/cc-rs/releases/tag/1.0.79
iana-time-zone-haiku: https://github.com/strawlab/iana-time-zone/releases/tag/haiku%2Fv0.1.2

fixed crossbeam-rs/crossbeam#972 (similar fixed in rust repo rust-lang/rust#110089)
```console
$ cargo update -p crossbeam-channel
    Updating crates.io index
    Updating crossbeam-channel v0.5.6 -> v0.5.8
```
https://github.com/crossbeam-rs/crossbeam/blob/master/crossbeam-channel/CHANGELOG.md#version-058

dedupes memoffset versions:
```console
$ cargo update -p crossbeam-epoch
    Updating crates.io index
    Updating crossbeam-epoch v0.9.13 -> v0.9.14
    Removing memoffset v0.7.1
```
https://github.com/crossbeam-rs/crossbeam/blob/master/crossbeam-epoch/CHANGELOG.md#version-0914
Gilnaa/memoffset@v0.6.5...v0.8.0
rust-lang/rust#108638 (comment)

dedupes bstr versions
```console
$ cargo update -p ignore -p opener
    Updating crates.io index
    Removing bstr v0.2.17
    Updating globset v0.4.9 -> v0.4.10
    Updating ignore v0.4.18 -> v0.4.20
    Updating opener v0.5.0 -> v0.5.2
```

globset BurntSushi/ripgrep@ac8fecb
ignore https://github.com/BurntSushi/ripgrep/commits/master/crates/ignore hard to track, but drop dep on crossbeam-utils (BurntSushi/ripgrep@e95254a), don't stat git if require_git is false (BurntSushi/ripgrep@009dda1) and added bunch of formats to ignore list
opener Seeker14491/opener@v0.5.0...v0.5.2 nothing interesting
RalfJung pushed a commit to RalfJung/rust-analyzer that referenced this pull request Apr 20, 2024
deps: bump crates

Updates few deps:

drops a lot of cxx* crates:
```console
$ cargo update -p iana-time-zone-haiku
    Updating crates.io index
    Updating cc v1.0.77 -> v1.0.79
    Removing codespan-reporting v0.11.1
    Removing cxx v1.0.94
    Removing cxx-build v1.0.94
    Removing cxxbridge-flags v1.0.94
    Removing cxxbridge-macro v1.0.94
    Updating iana-time-zone-haiku v0.1.1 -> v0.1.2
    Removing link-cplusplus v1.0.8
    Removing scratch v1.0.5
```
cc: https://github.com/rust-lang/cc-rs/releases/tag/1.0.78, https://github.com/rust-lang/cc-rs/releases/tag/1.0.79
iana-time-zone-haiku: https://github.com/strawlab/iana-time-zone/releases/tag/haiku%2Fv0.1.2

fixed crossbeam-rs/crossbeam#972 (similar fixed in rust repo rust-lang/rust#110089)
```console
$ cargo update -p crossbeam-channel
    Updating crates.io index
    Updating crossbeam-channel v0.5.6 -> v0.5.8
```
https://github.com/crossbeam-rs/crossbeam/blob/master/crossbeam-channel/CHANGELOG.md#version-058

dedupes memoffset versions:
```console
$ cargo update -p crossbeam-epoch
    Updating crates.io index
    Updating crossbeam-epoch v0.9.13 -> v0.9.14
    Removing memoffset v0.7.1
```
https://github.com/crossbeam-rs/crossbeam/blob/master/crossbeam-epoch/CHANGELOG.md#version-0914
Gilnaa/memoffset@v0.6.5...v0.8.0
rust-lang/rust#108638 (comment)

dedupes bstr versions
```console
$ cargo update -p ignore -p opener
    Updating crates.io index
    Removing bstr v0.2.17
    Updating globset v0.4.9 -> v0.4.10
    Updating ignore v0.4.18 -> v0.4.20
    Updating opener v0.5.0 -> v0.5.2
```

globset BurntSushi/ripgrep@ac8fecb
ignore https://github.com/BurntSushi/ripgrep/commits/master/crates/ignore hard to track, but drop dep on crossbeam-utils (BurntSushi/ripgrep@e95254a), don't stat git if require_git is false (BurntSushi/ripgrep@009dda1) and added bunch of formats to ignore list
opener Seeker14491/opener@v0.5.0...v0.5.2 nothing interesting
RalfJung pushed a commit to RalfJung/rust-analyzer that referenced this pull request Apr 27, 2024
deps: bump crates

Updates few deps:

drops a lot of cxx* crates:
```console
$ cargo update -p iana-time-zone-haiku
    Updating crates.io index
    Updating cc v1.0.77 -> v1.0.79
    Removing codespan-reporting v0.11.1
    Removing cxx v1.0.94
    Removing cxx-build v1.0.94
    Removing cxxbridge-flags v1.0.94
    Removing cxxbridge-macro v1.0.94
    Updating iana-time-zone-haiku v0.1.1 -> v0.1.2
    Removing link-cplusplus v1.0.8
    Removing scratch v1.0.5
```
cc: https://github.com/rust-lang/cc-rs/releases/tag/1.0.78, https://github.com/rust-lang/cc-rs/releases/tag/1.0.79
iana-time-zone-haiku: https://github.com/strawlab/iana-time-zone/releases/tag/haiku%2Fv0.1.2

fixed crossbeam-rs/crossbeam#972 (similar fixed in rust repo rust-lang/rust#110089)
```console
$ cargo update -p crossbeam-channel
    Updating crates.io index
    Updating crossbeam-channel v0.5.6 -> v0.5.8
```
https://github.com/crossbeam-rs/crossbeam/blob/master/crossbeam-channel/CHANGELOG.md#version-058

dedupes memoffset versions:
```console
$ cargo update -p crossbeam-epoch
    Updating crates.io index
    Updating crossbeam-epoch v0.9.13 -> v0.9.14
    Removing memoffset v0.7.1
```
https://github.com/crossbeam-rs/crossbeam/blob/master/crossbeam-epoch/CHANGELOG.md#version-0914
Gilnaa/memoffset@v0.6.5...v0.8.0
rust-lang/rust#108638 (comment)

dedupes bstr versions
```console
$ cargo update -p ignore -p opener
    Updating crates.io index
    Removing bstr v0.2.17
    Updating globset v0.4.9 -> v0.4.10
    Updating ignore v0.4.18 -> v0.4.20
    Updating opener v0.5.0 -> v0.5.2
```

globset BurntSushi/ripgrep@ac8fecb
ignore https://github.com/BurntSushi/ripgrep/commits/master/crates/ignore hard to track, but drop dep on crossbeam-utils (BurntSushi/ripgrep@e95254a), don't stat git if require_git is false (BurntSushi/ripgrep@009dda1) and added bunch of formats to ignore list
opener Seeker14491/opener@v0.5.0...v0.5.2 nothing interesting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.