<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/tests, branch perf-tmp</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=perf-tmp'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-10-04T09:31:00+00:00</updated>
<entry>
<title>Unrolled build for #147245</title>
<updated>2025-10-04T09:31:00+00:00</updated>
<author>
<name>Rust timing bot</name>
<email>rust-timer@users.noreply.github.com</email>
</author>
<published>2025-10-04T09:31:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=823632bbfbb2941cdc3c69130f19b39ea565a7aa'/>
<id>urn:sha1:823632bbfbb2941cdc3c69130f19b39ea565a7aa</id>
<content type='text'>
Rollup merge of #147245 - karolzwolak:only-replace-intended-bar-not-all-in-pattern, r=lcnr

only replace the intended comma in pattern suggestions

Only suggest to replace the intended comma, not all bars in the pattern.
Fixes rust-lang/rust#143330.
This continues rust-lang/rust#143331, the credit for making the fix goes to `@A4-Tacks.` I just blessed tests and added a regression test.
</content>
</entry>
<entry>
<title>Auto merge of #147299 - compiler-errors:hr-norm, r=jackh726</title>
<updated>2025-10-04T00:02:26+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-10-04T00:02:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7950f244e7ef55b61a83d12f4662be643cd182d6'/>
<id>urn:sha1:7950f244e7ef55b61a83d12f4662be643cd182d6</id>
<content type='text'>
Don't normalize higher-ranked assumptions if they're not used

See the comment in the code.

Normalizing these assumptions may cause us to register things like new placeholder outlives obligations that cause higher-ranked lifetime errors, and this is problematic if we're not even using these assumptions in borrowck.

Fixes rust-lang/rust#147244
Fixes rust-lang/rust#147285
</content>
</entry>
<entry>
<title>Auto merge of #143613 - Enselic:panic-abort-uwtables, r=petrochenkov</title>
<updated>2025-10-03T15:02:37+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-10-03T15:02:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f437c86ef829e43c6aa27641f53040a999a092af'/>
<id>urn:sha1:f437c86ef829e43c6aa27641f53040a999a092af</id>
<content type='text'>
Fix backtraces with `-C panic=abort` on linux; emit unwind tables by default

The linux backtrace unwinder relies on unwind tables to work properly, and generating and printing a backtrace is done by for example the default panic hook.

Begin emitting unwind tables by default again with `-C panic=abort` (see history below) so that backtraces work.

Closes https://github.com/rust-lang/rust/issues/81902 which is **regression-from-stable-to-stable**
Closes https://github.com/rust-lang/rust/issues/94815

### History

Backtraces with `-C panic=abort` used to work in Rust 1.22 but broke in Rust 1.23, because in 1.23 we stopped emitting unwind tables with `-C panic=abort` (see https://github.com/rust-lang/rust/pull/45031 and https://github.com/rust-lang/rust/issues/81902#issuecomment-3046487084).

In 1.45 a workaround in the form of `-C force-unwind-tables=yes` was added (see https://github.com/rust-lang/rust/pull/69984).

`-C panic=abort` was added in [Rust 1.10](https://blog.rust-lang.org/2016/07/07/Rust-1.10/#what-s-in-1-10-stable) and the motivation was binary size and compile time. But given how confusing that behavior has turned out to be, it is better to make binary size optimization opt-in with `-C force-unwind-tables=no` rather than default since the current default breaks backtraces.

Besides, if binary size is a primary concern, there are many other tricks that can be used that has a higher impact.

# Release Note Entry Draft:

## Compatibility Notes

* [Fix backtraces with `-C panic=abort` on Linux by generating unwind tables by default](https://github.com/rust-lang/rust/pull/143613). Build with `-C force-unwind-tables=no` to keep omitting unwind tables.

try-job: aarch64-apple
try-job: armhf-gnu
try-job: aarch64-msvc-1
</content>
</entry>
<entry>
<title>Don't normalize higher-ranked assumptions if they're not used</title>
<updated>2025-10-03T14:32:23+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2025-10-03T14:32:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e3f104608c0ad26e80b1ebedef2ab8a748189e52'/>
<id>urn:sha1:e3f104608c0ad26e80b1ebedef2ab8a748189e52</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #142771 - dianqk:mir-stmt-debuginfo, r=cjgillot</title>
<updated>2025-10-03T11:49:42+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-10-03T11:49:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8b6b15b877fbceb1ee5d9a5a4746e7515901574a'/>
<id>urn:sha1:8b6b15b877fbceb1ee5d9a5a4746e7515901574a</id>
<content type='text'>
Introduce debuginfo to statements in MIR

The PR introduces support for debug information within dead statements. Currently, only the reference statement is supported, which is sufficient to fix rust-lang/rust#128081.

I don't modify Stable MIR, as I don't think we need debug information when using it.

This PR represents the debug information for the dead reference statement via `#dbg_value`. For example, `let _foo_b = &amp;foo.b` becomes `#dbg_value(ptr %foo, !22, !DIExpression(DW_OP_plus_uconst, 4, DW_OP_stack_value), !26)`. You can see this here: https://rust.godbolt.org/z/d43js6adv.

The general principle for handling debug information is to never provide less debug information than the optimized LLVM IR.

The current rules for dropping debug information in this PR are:

- If the LLVM IR cannot represent a reference address, it's replaced with poison or simply dropped. For example, see: https://rust.godbolt.org/z/shGqPec8W. I'm using poison in all such cases now.
- All debuginfos is dropped when merging multiple successor BBs. An example is available here: https://rust.godbolt.org/z/TE1q3Wq6M.

I doesn't drop debuginfos in `MatchBranchSimplification`, because LLVM also pick one branch for it.
</content>
</entry>
<entry>
<title>Auto merge of #145898 - lolbinarycat:rustdoc-search-trait-parent, r=GuillaumeGomez,notriddle</title>
<updated>2025-10-03T08:43:43+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-10-03T08:43:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dd091003ace19d9556c647d87f7a9cd1e8dcc17e'/>
<id>urn:sha1:dd091003ace19d9556c647d87f7a9cd1e8dcc17e</id>
<content type='text'>
If a trait item appears in rustdoc search, hide the corrosponding impl items

fixes rust-lang/rust#138251

cc `@notriddle`
</content>
</entry>
<entry>
<title>debuginfo: Use `LocalRef` to simplify reference debuginfos</title>
<updated>2025-10-03T00:08:22+00:00</updated>
<author>
<name>dianqk</name>
<email>dianqk@dianqk.net</email>
</author>
<published>2025-09-21T12:58:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c2a03cefd8899941032940df0c6be3b364de0ed0'/>
<id>urn:sha1:c2a03cefd8899941032940df0c6be3b364de0ed0</id>
<content type='text'>
If the `LocalRef` is `LocalRef::Place`, we can refer to it directly,
because the local of place is an indirect pointer.
Such a statement is `_1 = &amp;(_2.1)`.
If the `LocalRef` is `LocalRef::Operand`,
the `OperandRef` should provide the pointer of the reference.
Such a statement is `_1 = &amp;((*_2).1)`.

But there is a special case that hasn't been handled, scalar pairs like `(&amp;[i32; 16], i32)`.
</content>
</entry>
<entry>
<title>Auto merge of #147231 - CrooseGit:dev/reucru01/extend_rustc_force_inline, r=saethlin</title>
<updated>2025-10-02T21:43:10+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-10-02T21:43:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8d603ef2879fd263f8e9aea340b4c035ed7973db'/>
<id>urn:sha1:8d603ef2879fd263f8e9aea340b4c035ed7973db</id>
<content type='text'>
Extending `#[rustc_force_inline]` to be applicable to inherent methods

`#[rustc_force_inline]` is an internal-only attribute similar to `#[inline(always)]` but which emits an error if inlining cannot occur. rustc_force_inline uses the MIR inliner to do this and has limitations on where it can be applied to ensure that an error is always emitted if inlining can't happen (e.g. it can't be applied to trait methods because calls to those can't always be resolved).

`#[rustc_force_inline]` is motivated by AArch64 pointer authentication intrinsics where it is vital for the security properties of these intrinsics that they do not exist in standalone functions that could be used as gadgets in an exploit (if they could, then you could sign whatever pointers you want, for example, which is bad, but if you force inlining, then you can't jump to a reusable function containing only these instructions).

Since its initial implementation, `#[rustc_force_inline]` could only be applied to free functions. This can be relaxed to also allow inherent methods while still preserving the desired properties. In a work-in-progress patch for manual pointer authentication intrinsics, it is useful to introduce types with inherent methods that would need to be force inlined.

r? `@saethlin`
</content>
</entry>
<entry>
<title>rustdoc: add testcase for traitParent deduplication</title>
<updated>2025-10-02T20:29:22+00:00</updated>
<author>
<name>binarycat</name>
<email>binarycat@envs.net</email>
</author>
<published>2025-09-21T21:42:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d0dc603c3992cc4903bb77f949b0b9bebf1ea7a8'/>
<id>urn:sha1:d0dc603c3992cc4903bb77f949b0b9bebf1ea7a8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix rustdoc tests broke by trait item filtering</title>
<updated>2025-10-02T20:28:00+00:00</updated>
<author>
<name>binarycat</name>
<email>binarycat@envs.net</email>
</author>
<published>2025-09-02T16:41:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2dd00d3391b82dd0928f50589eb37f6fbbe32980'/>
<id>urn:sha1:2dd00d3391b82dd0928f50589eb37f6fbbe32980</id>
<content type='text'>
</content>
</entry>
</feed>
