Skip to content

Rollup of 9 pull requests - #138595

Merged
bors merged 40 commits into
rust-lang:masterfrom
jhpratt:rollup-09pvfzu
Mar 17, 2025
Merged

Rollup of 9 pull requests#138595
bors merged 40 commits into
rust-lang:masterfrom
jhpratt:rollup-09pvfzu

Conversation

@jhpratt

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

GuillaumeGomezand others added 30 commits February 10, 2025 10:38
Signed-off-by: Ookiineko <chiisaineko@protonmail.com>
Signed-off-by: Ookiineko <chiisaineko@protonmail.com>
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
Signed-off-by: onur-ozkan <work@onurozkan.dev>
…r=joshtriplett
Stablize anonymous pipe
Since rust-lang#135822 is staled, I create this PR to stablise anonymous pipe
Closesrust-lang#127154
try-job: test-various
std: Mention clone-on-write mutation in Arc<T>
Fixesrust-lang#138322
r? libs
…re, r=oli-obk
Improve upvar analysis for deref of child capture
Two fixes to the heuristic I implemented in rust-lang#123660. As I noted in the code:
> Luckily, if this function is not correct, then the program is not unsound, since we still borrowck and validate the choices made from this function -- the only side-effect is that the user may receive unnecessary borrowck errors.
This indeed fixes unnecessary borrowck errors.
r? oli-obk
---
The heuristic is only valid if we deref a `&T`, not a `&mut T` or `Box<T>`, so make sure to check the type. This fixes:
```rust
struct Foo { precise: i32 }
fn mut_ref_inside_mut(f: &mut Foo) {
let x: impl AsyncFn() = async move || {
let y = &f.precise;
};
}
```
Since the capture from `f` to `&f.precise` needs to be treated as a lending borrow from the parent coroutine-closure to the child coroutine.
---
The heuristic is also valid if *any* deref projection in the child capture's projections is a `&T`, but we were only looking at the last one. This ensures that this function is considered not to be lending:
```rust
struct Foo { precise: i32 }
fn ref_inside_mut(f: &mut &Foo) {
let x: impl Fn() -> _ = async move || {
let y = &f.precise;
};
}
```
(Specifically, checking that `impl Fn() -> _` is satisfied is exercising that the coroutine is not considered to be lending.)
Update Rust Foundation links in Readme
The Rust Foundation links in the Readme are outdated. I'm not sure if this is the best wording to use in place of the media guide, that can be changed if need be.
@rustbotrustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-tidy Area: The tidy tool O-unix Operating system: Unix-like O-windows Operating system: Windows S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Mar 17, 2025
@jhpratt

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Mar 17, 2025

Copy link
Copy Markdown
Collaborator

📌 Commit 87b87b1 has been approved by jhpratt

It is now in the queue for this repository.

@borsbors 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 Mar 17, 2025
@bors

bors commented Mar 17, 2025

Copy link
Copy Markdown
Collaborator

⌛ Testing commit 87b87b1 with merge 9c67cec...

@bors

bors commented Mar 17, 2025

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: jhpratt
Pushing 9c67cec to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Mar 17, 2025
@bors
bors merged commit 9c67cec into rust-lang:masterMar 17, 2025
@rustbotrustbot added this to the 1.87.0 milestone Mar 17, 2025
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web)(plain)

Click to see the possible cause of the failure (guessed by this bot)
 Compiling glob-match v0.2.1
Compiling ureq v3.0.8
Compiling citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)
Finished `release` profile [optimized] target(s) in 34.38s
Running `target/release/citool post-merge-report 9bad8ac498985707f29b0bdc0293cc0457a3ab38 9c67cecd12d79f1bbc00a74f70e7ef9fff086a5a`
Downloading metrics of job aarch64-gnu
Downloading metrics of job aarch64-gnu-debug
Downloading metrics of job arm-android
Downloading metrics of job armhf-gnu
Downloading metrics of job dist-aarch64-linux
Downloading metrics of job dist-android
Downloading metrics of job dist-arm-linux
Downloading metrics of job dist-armhf-linux
Downloading metrics of job dist-armv7-linux
Downloading metrics of job dist-i586-gnu-i586-i686-musl
Downloading metrics of job dist-i686-linux
Downloading metrics of job dist-loongarch64-linux
Downloading metrics of job dist-loongarch64-musl
Downloading metrics of job dist-ohos
Downloading metrics of job dist-powerpc-linux
Downloading metrics of job dist-powerpc64-linux
Downloading metrics of job dist-powerpc64le-linux
Downloading metrics of job dist-riscv64-linux
Downloading metrics of job dist-s390x-linux
Downloading metrics of job dist-various-1
Downloading metrics of job dist-various-2
Downloading metrics of job dist-x86_64-freebsd
Downloading metrics of job dist-x86_64-illumos
Downloading metrics of job dist-x86_64-linux
Downloading metrics of job dist-x86_64-linux-alt
Downloading metrics of job dist-x86_64-musl
Downloading metrics of job dist-x86_64-netbsd
Downloading metrics of job i686-gnu-1
Downloading metrics of job i686-gnu-2
Downloading metrics of job i686-gnu-nopt-1
Downloading metrics of job i686-gnu-nopt-2
Downloading metrics of job mingw-check
Downloading metrics of job test-various
Downloading metrics of job x86_64-fuchsia
Downloading metrics of job x86_64-rust-for-linux
Downloading metrics of job x86_64-gnu
Downloading metrics of job x86_64-gnu-stable
Downloading metrics of job x86_64-gnu-aux
Downloading metrics of job x86_64-gnu-debug
Downloading metrics of job x86_64-gnu-distcheck
Downloading metrics of job x86_64-gnu-llvm-19-1
Downloading metrics of job x86_64-gnu-llvm-19-2
Downloading metrics of job x86_64-gnu-llvm-19-3
Downloading metrics of job x86_64-gnu-llvm-18-1
Downloading metrics of job x86_64-gnu-llvm-18-2
Downloading metrics of job x86_64-gnu-llvm-18-3
Downloading metrics of job x86_64-gnu-nopt
Downloading metrics of job x86_64-gnu-tools
Downloading metrics of job dist-x86_64-apple
Downloading metrics of job dist-apple-various
Downloading metrics of job x86_64-apple-1
Downloading metrics of job x86_64-apple-2
Downloading metrics of job dist-aarch64-apple
Downloading metrics of job aarch64-apple
Downloading metrics of job x86_64-msvc-1
Downloading metrics of job x86_64-msvc-2
Downloading metrics of job i686-msvc-1
Downloading metrics of job i686-msvc-2
Downloading metrics of job x86_64-msvc-ext1
Downloading metrics of job x86_64-msvc-ext2
Downloading metrics of job x86_64-msvc-ext3
Downloading metrics of job i686-mingw-1
Downloading metrics of job i686-mingw-2
Downloading metrics of job i686-mingw-3
Downloading metrics of job x86_64-mingw-1
Downloading metrics of job x86_64-mingw-2
Downloading metrics of job dist-x86_64-msvc
Downloading metrics of job dist-i686-msvc
Downloading metrics of job dist-aarch64-msvc
Downloading metrics of job dist-i686-mingw
Downloading metrics of job dist-x86_64-mingw
Downloading metrics of job dist-x86_64-msvc-alt
*This is an experimental post-merge analysis report. You can ignore it.*
<details>
<summary>Post-merge report</summary>
Comparing 9bad8ac498985707f29b0bdc0293cc0457a3ab38 (base) -> 9c67cecd12d79f1bbc00a74f70e7ef9fff086a5a (this PR)
## Test differences
- `[ui] tests/ui/async-await/async-closures/imm-deref-lending.rs`: [missing] -> pass (**J0**)
- `[ui] tests/ui/async-await/async-closures/imm-deref-not-lending.rs`: [missing] -> pass (**J0**)
- `[ui] tests/ui/feature-gates/literal-escaper.rs`: [missing] -> pass (**J0**)
- `[ui] tests/ui/tool-attributes/crate-attr.rs`: [missing] -> pass (**J0**)
- `[ui] tests/ui/tool-attributes/multiple-registered.rs`: [missing] -> pass (**J0**)
- `[ui] tests/ui/tool-attributes/nested-disallowed.rs`: [missing] -> pass (**J0**)
- `tests::test_unescape_byte_bad`: [missing] -> pass (**J1**)
- `tests::test_unescape_byte_good`: [missing] -> pass (**J1**)
- `tests::test_unescape_byte_str_good`: [missing] -> pass (**J1**)
- `tests::test_unescape_char_bad`: [missing] -> pass (**J1**)
- `tests::test_unescape_char_good`: [missing] -> pass (**J1**)
- `tests::test_unescape_raw_byte_str`: [missing] -> pass (**J1**)
- `tests::test_unescape_raw_str`: [missing] -> pass (**J1**)
- `tests::test_unescape_str_good`: [missing] -> pass (**J1**)
- `tests::test_unescape_str_warn`: [missing] -> pass (**J1**)
- `unescape::tests::test_unescape_byte_bad`: pass -> [missing] (**J2**)
- `unescape::tests::test_unescape_byte_good`: pass -> [missing] (**J2**)
- `unescape::tests::test_unescape_byte_str_good`: pass -> [missing] (**J2**)
- `unescape::tests::test_unescape_char_bad`: pass -> [missing] (**J2**)
- `unescape::tests::test_unescape_char_good`: pass -> [missing] (**J2**)
- `unescape::tests::test_unescape_raw_byte_str`: pass -> [missing] (**J2**)
- `unescape::tests::test_unescape_raw_str`: pass -> [missing] (**J2**)
- `unescape::tests::test_unescape_str_good`: pass -> [missing] (**J2**)
- `unescape::tests::test_unescape_str_warn`: pass -> [missing] (**J2**)
Additionally, 371 doctest diffs were found. These are ignored, as they are noisy.
**Job group index**
- **J0**: `aarch64-apple`, `aarch64-gnu`, `arm-android`, `armhf-gnu`, `dist-i586-gnu-i586-i686-musl`, `i686-gnu-1`, `i686-gnu-nopt-1`, `i686-msvc-1`, `test-various`, `x86_64-apple-2`, `x86_64-gnu`, `x86_64-gnu-llvm-18-1`, `x86_64-gnu-llvm-18-2`, `x86_64-gnu-llvm-18-3`, `x86_64-gnu-llvm-19-1`, `x86_64-gnu-llvm-19-2`, `x86_64-gnu-llvm-19-3`, `x86_64-gnu-nopt`, `x86_64-gnu-stable`, `x86_64-mingw-1`, `x86_64-msvc-1`
- **J1**: `aarch64-apple`, `aarch64-gnu`, `arm-android`, `armhf-gnu`, `dist-i586-gnu-i586-i686-musl`, `i686-gnu-1`, `i686-gnu-2`, `i686-gnu-nopt-1`, `i686-gnu-nopt-2`, `i686-mingw-2`, `i686-mingw-3`, `i686-msvc-1`, `i686-msvc-2`, `test-various`, `x86_64-apple-1`, `x86_64-gnu`, `x86_64-gnu-llvm-18-1`, `x86_64-gnu-llvm-18-2`, `x86_64-gnu-llvm-18-3`, `x86_64-gnu-llvm-19-1`, `x86_64-gnu-llvm-19-2`, `x86_64-gnu-llvm-19-3`, `x86_64-gnu-nopt`, `x86_64-gnu-stable`, `x86_64-mingw-1`, `x86_64-mingw-2`, `x86_64-msvc-1`, `x86_64-msvc-2`
- **J2**: `aarch64-apple`, `aarch64-gnu`, `i686-gnu-2`, `i686-gnu-nopt-2`, `i686-mingw-2`, `i686-mingw-3`, `i686-msvc-2`, `x86_64-apple-1`, `x86_64-gnu`, `x86_64-gnu-llvm-18-3`, `x86_64-gnu-llvm-19-3`, `x86_64-gnu-nopt`, `x86_64-gnu-stable`, `x86_64-mingw-2`, `x86_64-msvc-2`
</details>
no pull requests found for branch "master"
##[error]Process completed with exit code 1.
Post job cleanup.

@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR#MessagePerf Build Sha
#136355Add *_value methods to proc_macro lib0a9ad6c0d61f7f7aedf8ef11564cd6c5ba46fae9 (link)
#137621Add std support to cygwin target1efbe7f5815f8fa1f89ced88e3f93cf7a920bb70 (link)
#137793Stablize anonymous pipe858ec722fa2c41bb210f2d7f7d1f2ab36cadfcea (link)
#138341std: Mention clone-on-write mutation in Arcb04b807d1dce1b21dff2ee0aca7d5319912af73f (link)
#138517Improve upvar analysis for deref of child capture1921f4e7491320b44fd4faf5beb0d31405455b9b (link)
#138584Update Rust Foundation links in Readme777e0ab650223d1c920fa87810f04d09d1b0efed (link)
#138586Document #![register_tool]fcd734f5bc6c925abe98caf4540b84fcf0d305a3 (link)
#138590Flatten and simplify some control flow 🫓66485756bee90a191b4677344a16a70265d40cf6 (link)
#138592update change entry for #1371472dda47fd8d1e4531fe4a9352ad25457d058593e2 (link)

previous master: 9bad8ac498

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (9c67cec): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.2%[0.2%, 0.2%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.3%[-0.3%, -0.3%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (secondary 1.5%)

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.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
1.5%[1.5%, 1.5%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Cycles

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

Binary size

Results (primary 0.5%, secondary 0.3%)

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.

meanrangecount
Regressions ❌
(primary)
0.5%[0.4%, 0.5%]4
Regressions ❌
(secondary)
0.3%[0.0%, 1.0%]12
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.5%[0.4%, 0.5%]4

Bootstrap: 776.387s -> 774.895s (-0.19%)
Artifact size: 365.11 MiB -> 365.10 MiB (-0.00%)

@jhpratt
jhpratt deleted the rollup-09pvfzu branch March 17, 2025 18:05
@jhprattjhpratt mentioned this pull request Mar 18, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-metaArea: Issues & PRs about the rust-lang/rust repository itselfA-tidyArea: The tidy toolmerged-by-borsThis PR was explicitly merged by bors.O-unixOperating system: Unix-likeO-windowsOperating system: WindowsrollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

15 participants

@jhpratt@bors@rust-log-analyzer@rust-timer@edwinguillermoarroyogarcia-tech@rustbot@GuillaumeGomez@Berrysoft@xizheyin@NobodyXu@compiler-errors@atouchet@jyn514@onur-ozkan@yotamofek