Skip to content

Conversation

@Zalathar
Copy link
Member

@Zalathar Zalathar commented Nov 9, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Walnut356 and others added 30 commits October 2, 2025 04:23
This adds to the existing proxy impl for &T.
lld is a great choice for a default linker.
This patch enables the std locking functions on AIX by including AIX on the list
of supported targets for the locking functions. Excluding AIX from the std
locking functions results to compilation errors such as: ("try_lock() not supported").
Updated email addresses for several contributors in the mailmap.
…=BoxyUwU

Add `overflow_checks` intrinsic

This adds an intrinsic which allows code in a pre-built library to inherit the overflow checks option from a crate depending on it. This enables code in the standard library to explicitly change behavior based on whether `overflow_checks` are enabled, regardless of the setting used when standard library was compiled.

This is very similar to the `ub_checks` intrinsic, and refactors the two to use a common mechanism.

The primary use case for this is to allow the new `RangeFrom` iterator to yield the maximum element before overflowing, as requested [here](rust-lang#125687 (comment)). This PR includes a working `IterRangeFrom` implementation based on this new intrinsic that exhibits the desired behavior.

[Prior discussion on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/Ability.20to.20select.20code.20based.20on.20.60overflow_checks.60.3F)
…f, r=JonathanBrouwer

Add correct suggestion for multi-references for self type in method

Currently the suggestion for this code

```rust
fn main() {}

struct A {
    field: i32,
}

impl A {
    fn f(&&self) {}
}
```

looks like this, which is incorrect and missleading

```rust
   Compiling playground v0.0.1 (/playground)
error: expected one of `!`, `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `)`
 --> src/main.rs:8:16
  |
8 |     fn f(&&self) {}
  |                ^ expected one of 9 possible tokens
  |
  = note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
help: explicitly ignore the parameter name
  |
8 |     fn f(_: &&self) {}
  |          ++
```

So this fixes it and make more correct suggestions

```rust
error: expected one of `!`, `(`, `...`, `..=`, `..`, `::`, `:`, `{`, or `|`, found `)`
 --> /home/gh-Kivooeo/test_/src/main.rs:8:16
  |
8 |     fn f(&&self) {}
  |                ^ expected one of 9 possible tokens
  |
help: `self` should be `self`, `&self` or `&mut self`, please remove extra references
  |
8 -     fn f(&&self) {}
8 +     fn f(&self) {}
```

Implementation is pretty self-documenting, but if you have suggestions on how to improve this (according to current test, which may be not fully covering all cases, this is works very well) or have some funny edge cases to show, I would appreciate it

r? compiler
…Simulacrum

[DebugInfo] Fix container types failing to find template args

This is a less pervasive (but also less powerful) alternative to rust-lang#144394.

This change *only* provides benefits to container types on MSVC. The TL;DR is that nodes that don't populate/aren't discoverable in the PDB for various reasons are given an alternate lookup path that generates the nodes by acquiring the base-type via some gross string manipulation and then asking clang for the node it wants (e.g. `"ref$<i32>"` -> `"i32"` -> `target.FindFirstType("i32").GetPointerType()` -> `i32 *`, which is a valid type for the container to use)

The before/afters are the same as in the above PR's `*-msvc` LLDB screenshots. This works as a stopgap while the above PR is evaluated, but I think that PR is still a much better solution.
…Jung

Show packed field alignment in mir_transform_unaligned_packed_ref

Fixes rust-lang#147528

I left the expected padding for the field out of the error message so the message would be the same on all platforms. It also isn't always possible to know the expected alignment, so this makes the message simpler.
Rename `downcast_[ref|mut]_unchecked` -> `downcast_unchecked_[ref|mut]`

## Intent

Renames `downcast_[ref|mut]_unchecked` to `downcast_unchecked_[ref|mut]` because we want to emphasise that it is the downcast that is unsafe, not the aliasing per:

rust-lang#90850 (comment)

## Tracking Issue: rust-lang#90850 (comment)

cc `@marc0246`
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (20f1c04): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

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

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.8% [0.8%, 0.8%] 2
Regressions ❌
(secondary)
0.2% [0.0%, 0.3%] 5
Improvements ✅
(primary)
-0.2% [-0.3%, -0.1%] 2
Improvements ✅
(secondary)
-0.5% [-0.8%, -0.2%] 2
All ❌✅ (primary) 0.3% [-0.3%, 0.8%] 4

Max RSS (memory usage)

Results (primary -2.4%, secondary -3.5%)

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.9% [2.9%, 2.9%] 1
Improvements ✅
(primary)
-2.4% [-2.4%, -2.4%] 1
Improvements ✅
(secondary)
-4.0% [-5.7%, -1.7%] 13
All ❌✅ (primary) -2.4% [-2.4%, -2.4%] 1

Cycles

Results (secondary -6.9%)

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)
-6.9% [-12.5%, -2.4%] 5
All ❌✅ (primary) - - 0

Binary size

Results (primary -0.1%, secondary -0.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.1%, 0.1%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.2% [-0.3%, -0.0%] 10
Improvements ✅
(secondary)
-0.2% [-0.3%, -0.1%] 41
All ❌✅ (primary) -0.1% [-0.3%, 0.1%] 11

Bootstrap: 474.157s -> 477.048s (0.61%)
Artifact size: 390.96 MiB -> 391.28 MiB (0.08%)

@Zalathar
Copy link
Member Author

Zalathar commented Nov 9, 2025

@rust-timer

This comment has been minimized.

@rust-timer

This comment was marked as resolved.

makai410 pushed a commit to makai410/rust that referenced this pull request Nov 10, 2025
Rollup of 22 pull requests

Successful merges:

 - rust-lang#128666 (Add `overflow_checks` intrinsic)
 - rust-lang#146305 (Add correct suggestion for multi-references for self type in method)
 - rust-lang#147179 ([DebugInfo] Fix container types failing to find template args)
 - rust-lang#147743 (Show packed field alignment in mir_transform_unaligned_packed_ref)
 - rust-lang#148079 (Rename `downcast_[ref|mut]_unchecked` -> `downcast_unchecked_[ref|mut]`)
 - rust-lang#148084 (Optimize path components iteration on platforms that don't have prefixes)
 - rust-lang#148126 (Fix rust stdlib build failing for VxWorks)
 - rust-lang#148204 (Modify contributor email entries in .mailmap)
 - rust-lang#148279 (rustc_builtin_macros: rename bench parameter to avoid collisions with user-defined function names)
 - rust-lang#148333 (constify result unwrap unchecked)
 - rust-lang#148539 (Add Allocator proxy impls for Box, Rc, and Arc)
 - rust-lang#148601 (`invalid_atomic_ordering`: also lint `update` & `try_update`)
 - rust-lang#148612 (Add note for identifier with attempted hygiene violation)
 - rust-lang#148613 (Switch hexagon targets to rust-lld)
 - rust-lang#148619 (Enable std locking functions on AIX)
 - rust-lang#148644 ([bootstrap] Make `--open` option work with `doc src/tools/error_index_generator`)
 - rust-lang#148649 (don't completely reset `HeadUsages`)
 - rust-lang#148673 (Remove a remnant of `dyn*` from the parser)
 - rust-lang#148675 (Remove eslint-js from npm dependencies)
 - rust-lang#148680 (Recover `[T: N]` as `[T; N]`)
 - rust-lang#148688 (Remove unused argument `features` from `eval_config_entry`)
 - rust-lang#148711 (Use the current lint note id when parsing `cfg!()`)

r? `@ghost`
`@rustbot` modify labels: rollup
@Zalathar
Copy link
Member Author

@rust-timer

This comment has been minimized.

@rust-timer

This comment was marked as resolved.

@Zalathar
Copy link
Member Author

@rust-timer

This comment has been minimized.

@rust-timer

This comment was marked as resolved.

@Zalathar
Copy link
Member Author

I've been trying to find the source of the ripgrep/cargo regression, because it might be interesting, but I haven't located it so far.

@Zalathar
Copy link
Member Author

@rust-timer

This comment has been minimized.

@rust-timer

This comment was marked as resolved.

@Zalathar
Copy link
Member Author

@rust-timer

This comment has been minimized.

@rust-timer

This comment was marked as resolved.

@Zalathar
Copy link
Member Author

@rust-timer

This comment has been minimized.

@rust-timer

This comment was marked as resolved.

@Zalathar
Copy link
Member Author

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (190039d): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

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.9% [0.8%, 0.9%] 2
Regressions ❌
(secondary)
0.1% [0.0%, 0.1%] 3
Improvements ✅
(primary)
-0.2% [-0.3%, -0.1%] 4
Improvements ✅
(secondary)
-0.6% [-0.9%, -0.3%] 2
All ❌✅ (primary) 0.2% [-0.3%, 0.9%] 6

Max RSS (memory usage)

Results (primary -2.4%, secondary -3.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.0% [1.1%, 3.0%] 2
Improvements ✅
(primary)
-2.4% [-2.4%, -2.4%] 1
Improvements ✅
(secondary)
-4.1% [-5.8%, -1.9%] 12
All ❌✅ (primary) -2.4% [-2.4%, -2.4%] 1

Cycles

Results (primary 2.2%, 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)
2.2% [2.2%, 2.2%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-6.2% [-12.6%, -2.3%] 6
All ❌✅ (primary) 2.2% [2.2%, 2.2%] 2

Binary size

Results (primary -0.1%, secondary -0.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.1%, 0.1%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.2% [-0.3%, -0.0%] 10
Improvements ✅
(secondary)
-0.2% [-0.3%, -0.1%] 41
All ❌✅ (primary) -0.1% [-0.3%, 0.1%] 11

Bootstrap: 474.157s -> 478.47s (0.91%)
Artifact size: 390.96 MiB -> 391.25 MiB (0.07%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-meta Area: Issues & PRs about the rust-lang/rust repository itself merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. 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. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.