Repository navigation
Rollup of 11 pull requests - #164479
Rollup of 11 pull requests#164479
Conversation
…en unsupported. This eliminates the portability hazard (and inconsistent linting of `clippy::drop_non_drop`) of types having destructors on some platforms and not others. It is arguably a breaking change, but a breaking change that would also be required if any of these platforms later gains filesystem support. An alternative to this change would be to implement `Drop` on the `std::fs` types instead of the `std::sys` types. That would be more reliable, but would be more of a public API change since `T: Drop` bounds are unfortunately possible.
On the SOLID platform, `sockaddr_storage` was 16 bytes large while `sockaddr_in6` is 28 bytes. std's socket address conversion helpers store `SocketAddrV6` values in a stack-allocated `sockaddr_storage`, so creating or receiving an IPv6 socket address on SOLID targets wrote past the end of the buffer, causing memory corruption. Add a third data field to `sockaddr_storage` so it can hold IPv6 addresses, and add a compile-time assertion on its size relative to `sockaddr_in6` to prevent this from regressing.
The line did not seem to get updated when the example was likely copy-pasted from the `likely()` one. Thus fix it. Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
There's some inconsistent formatting, and also patterns in the wrong column when the columns are intended to be * Has sign/zero extension attribute, versus * No sign/zero extension attribute. This is a precursor commit to make things less confusing. The test is still weak for return attributes.
The patterns in
`tests/codegen-llvm/some-abis-do-extend-params-to-32-bits.rs` were
previously too weak as they matched a substring.
Previously, the test uses a pattern like
```
i32 @c_ret_u32()
```
with the intention to check for absence of `zeroext` or `signext` when
the attribute is not expected. However, this is a substring pattern
match, so the pattern would actually match
```
zeroext i32 @c_ret_u32()
```
which is the very attribute the test wants to check the *absence* of.
To fix this, use a stronger pattern
```
define {{(dso_local )?}}i32 @c_ret_u32()
```
that will not match against the presence of `zeroext`/`signext` return
attributes.
…st-lang#94678) * Add methods to TCP and UDP sockets to modify hop limit * Use IPv6 addresses in hop_limit_v6 docs * Update tracking issue to 139166 * Update docs according to PR review * Fix unused_variables * fix: add cfg guards on unsupported wasi p2 and p3 targets * fix: tidy PAL and unsafe blocks CI failure * fix: tidy CI * fix: port tests to new TCP testing framework * Trigger CI * Fix TCP hop limit doctest indentation * Use cfg_select for socket hop limit methods * fix: UEFI IPv6 hop-limit stubs return unsupported Co-authored-by: David Tolnay <dtolnay@gmail.com> Co-authored-by: Luca Cominardi <luca.cominardi@datadoghq.com>
…li-obk Remap local def ids for deterministic metadata encoding Remaps local def ids that are allocated after `Definitions::commit_end_of_determinism` was called. Fixes rust-lang#162202, fixes rust-lang#162203. cc [#t-compiler/const-eval > DefId reproducibility with the parallel frontend](https://rust-lang.zulipchat.com/#narrow/channel/146212-t-compiler.2Fconst-eval/topic/DefId.20reproducibility.20with.20the.20parallel.20frontend/with/623202802) cc [#t-compiler/gpgpu-backend > Deterministic encoding of offload manifest](https://rust-lang.zulipchat.com/#narrow/channel/422870-t-compiler.2Fgpgpu-backend/topic/Deterministic.20encoding.20of.20offload.20manifest/with/631708893) r? @petrochenkov
Canonicalize operands for commutative binary ops Fixes rust-lang#162220
…saethlin Tighten (absence of) return attribute checks in `some-abis-do-extend-params-to-32-bits.rs` Follow-up to rust-lang#163917. * Fix some misplaced patterns in extending vs non-extending columns. * Tighten return attribute patterns to actually reject unexpected `zeroext`/`signext` attributes. * See rust-lang#163917 (comment) r? @saethlin (or compiler)
…orage-ipv6, r=kawadakk,joboet std: make SOLID `sockaddr_storage` large enough for IPv6 On the `*-kmc-solid_*` targets, `sockaddr_storage` (16 bytes) is smaller than `sockaddr_in6` (28 bytes). std's socket address conversion helpers store `SocketAddrV6` values in a stack-allocated `sockaddr_storage`, so IPv6 socket address use overflows the buffer and corrupts the stack. Enlarge the struct by 12 bytes and add a compile-time size assertion against `sockaddr_in6` so this cannot regress. r? @kawadakk Fixes rust-lang#164251
diagnostic: skip wrong loops when explaining borrow errors Adresss rust-lang#164169 When dealing with loops, restrict the search to the specific loop where the conflict occurs. r? @estebank
…=jhpratt Add methods to TCP and UDP sockets to modify hop limit rust-lang#94678 was closed because of time constraints of the original author (@kckeiks). This PR is a refresh of rust-lang#94678 where the original proposed changes are ported to the current status of the standard library. In addition, this PR: - implements the change suggested in rust-lang#94678 (comment) - defines `set_multicast_hop_limit_v6` and `multicast_hop_limit_v6 ` only for UDP sockets and not for TCP sockets as originally proposed Issue: rust-lang#139166
Make `std::fs::{File, ReadDir, DirEntry}` always `needs_drop` even when unsupported.
This eliminates the portability hazard (and inconsistent linting of `clippy::drop_non_drop`) of types having destructors on some platforms and not others.
It is arguably a breaking change, but a breaking change that would also be required if any of these platforms later gains filesystem support.
An alternative to this change would be to implement `Drop` on the `std::fs` types instead of the `std::sys` types. That would be more reliable, but would be more of a public API change since `T: Drop` bounds are unfortunately possible.
…dead Collect all limit attributes during TyCtxt creation This avoids some custom logic to make *just* the recursion limit attr parsed at expansion time. Now everything can access the limits at any stage in rustc.
…itor make the safety documentation consistent in task::LocalWaker This PR only contains a doc-only modification: To make the format of safety documentation consistent in `taks::LocalWaker`. As a member of [safer-rust](https://github.com/safer-rust), we continue to improve the quality of safety doc in Rust std. We has a [Rust goal](rust-lang/goals#511) to push us to work. Thank you for your review and looking for your suggestion!
Add missing full stop
core: hint: fix `unlikely`'s example polarity typo The line did not seem to get updated when the example was likely copy-pasted from the `likely()` one. Thus fix it.
This comment has been minimized.
This comment has been minimized.
Rollup of 11 pull requests try-job: dist-various-1 try-job: test-various try-job: test-x86_64-gnu-aux try-job: test-x86_64-msvc-1 try-job: test-aarch64-apple-1 try-job: test-aarch64-apple-2 try-job: test-x86_64-mingw-1 try-job: test-i686-msvc try-job: test-armhf-gnu try-job: test-x86_64-gnu-llvm-22-3
This comment has been minimized.
This comment has been minimized.
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing 2834d57 (parent) -> 8006091 (this PR) Test differencesShow 125 test diffsStage 1
Stage 2
Additionally, 116 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 8006091eb71ae7d9e9bccb66c6122c9d68af4466 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
📌 Perf builds for each rolled up PR:
parent commit: 2834d57549 In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: |
|
Finished benchmarking commit (8006091): comparison URL. Overall result: ❌ regressions - please read:Our benchmarks found a performance regression caused by this PR. Next Steps:
@rustbot label: +perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (secondary 3.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -6.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary -0.0%, secondary -0.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 489.187s -> 491.611s (0.50%) |
|
@rust-timer triage all |
Running triage with 3 benchmarksTriage only executes the benchmarks on rollup members, that were changed significantly on the rollup.
#162809 99a24ac Remap local def ids for deterministic metadata encodingInstruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)This perf run didn't have relevant results for this metric. CyclesThis perf run didn't have relevant results for this metric. Binary sizeThis perf run didn't have relevant results for this metric. #163373 73ff8a6 Canonicalize operands for commutative binary opsInstruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)This perf run didn't have relevant results for this metric. CyclesResults (secondary -7.9%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. #164016 a618bd5 Tighten (absence of) return attribute checks in
|
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
0.1% | [0.0%, 0.1%] | 2 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
-0.1% | [-0.1%, -0.1%] | 2 |
| All ❌✅ (primary) | - | - | 0 |
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
Results (secondary -1.8%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
6.3% | [5.9%, 6.8%] | 3 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
-6.6% | [-9.4%, -3.8%] | 5 |
| All ❌✅ (primary) | - | - | 0 |
Binary size
This perf run didn't have relevant results for this metric.
#164259 b18bda7 std: make SOLID sockaddr_storage large enough for IPv6
Instruction count
Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
0.1% | [0.1%, 0.1%] | 1 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | - | - | 0 |
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
Results (secondary -7.8%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
-7.8% | [-11.7%, -5.0%] | 5 |
| All ❌✅ (primary) | - | - | 0 |
Binary size
This perf run didn't have relevant results for this metric.
#164424 4c0bb02 diagnostic: skip wrong loops when explaining borrow errors
This perf run didn't have relevant results for the `instruction count` metric.
Instruction count
This perf run didn't have relevant results for this metric.
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
This perf run didn't have relevant results for this metric.
Binary size
This perf run didn't have relevant results for this metric.
#138744 fce2a2b Add methods to TCP and UDP sockets to modify hop limit
This perf run didn't have relevant results for the `instruction count` metric.
Instruction count
This perf run didn't have relevant results for this metric.
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
This perf run didn't have relevant results for this metric.
Binary size
This perf run didn't have relevant results for this metric.
#162444 af05837 Make std::fs::{File, ReadDir, DirEntry} always needs_drop even when unsupported.
This perf run didn't have relevant results for the `instruction count` metric.
Instruction count
This perf run didn't have relevant results for this metric.
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
This perf run didn't have relevant results for this metric.
Binary size
This perf run didn't have relevant results for this metric.
#163862 5266265 Collect all limit attributes during TyCtxt creation
Instruction count
Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
0.1% | [0.1%, 0.1%] | 1 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | - | - | 0 |
Max RSS (memory usage)
Results (secondary -3.6%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
-3.6% | [-3.6%, -3.6%] | 1 |
| All ❌✅ (primary) | - | - | 0 |
Cycles
Results (secondary -7.7%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
-7.7% | [-11.6%, -4.6%] | 5 |
| All ❌✅ (primary) | - | - | 0 |
Binary size
This perf run didn't have relevant results for this metric.
#164213 cee12f4 make the safety documentation consistent in task::LocalWaker
Instruction count
Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
0.1% | [0.1%, 0.1%] | 1 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | - | - | 0 |
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
Results (secondary -6.2%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
2.3% | [2.3%, 2.3%] | 1 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
-7.9% | [-11.3%, -4.9%] | 5 |
| All ❌✅ (primary) | - | - | 0 |
Binary size
This perf run didn't have relevant results for this metric.
#164356 7df4527 Add missing full stop
Instruction count
Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
0.1% | [0.1%, 0.1%] | 1 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | - | - | 0 |
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
Results (secondary -7.7%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
-7.7% | [-11.8%, -5.0%] | 5 |
| All ❌✅ (primary) | - | - | 0 |
Binary size
This perf run didn't have relevant results for this metric.
#164374 5f98bc3 core: hint: fix unlikely's example polarity typo
Instruction count
Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
0.1% | [0.1%, 0.1%] | 1 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | - | - | 0 |
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
Results (secondary -7.8%)
A less reliable metric. May be of interest, but not used to determine the overall result above.
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
- | - | 0 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
-7.8% | [-12.0%, -4.7%] | 5 |
| All ❌✅ (primary) | - | - | 0 |
Binary size
This perf run didn't have relevant results for this metric.
Successful merges:
some-abis-do-extend-params-to-32-bits.rs#164016 (Tighten (absence of) return attribute checks insome-abis-do-extend-params-to-32-bits.rs)sockaddr_storagelarge enough for IPv6 #164259 (std: make SOLIDsockaddr_storagelarge enough for IPv6)std::fs::{File, ReadDir, DirEntry}alwaysneeds_dropeven when unsupported. #162444 (Makestd::fs::{File, ReadDir, DirEntry}alwaysneeds_dropeven when unsupported.)unlikely's example polarity typo #164374 (core: hint: fixunlikely's example polarity typo)r? @ghost
Create a similar rollup