<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_span, branch auto</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=auto</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=auto'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-30T01:37:50+00:00</updated>
<entry>
<title>Rollup merge of #146457 - alexcrichton:wasm-no-exn-instructions, r=bjorn3</title>
<updated>2025-09-30T01:37:50+00:00</updated>
<author>
<name>Jacob Pratt</name>
<email>jacob@jhpratt.dev</email>
</author>
<published>2025-09-30T01:37:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b310eb91ab6fcf5619112a560f4266f42fe46c66'/>
<id>urn:sha1:b310eb91ab6fcf5619112a560f4266f42fe46c66</id>
<content type='text'>
Skip cleanups on unsupported targets

This commit is an update to the `AbortUnwindingCalls` MIR pass in the compiler. Specifically a new boolean is added for "can this target possibly unwind" and if that's `false` then terminators are all adjusted to be unreachable/not present. The end result is that this fixes rust-lang/rust#140293 for wasm targets.

The motivation for this PR is that currently on WebAssembly targets the usage of the `C-unwind` ABI can lead LLVM to either (a) emit exception-handling instructions or (b) hit a LLVM-ICE-style codegen error. WebAssembly as a base instruction set does not support unwinding at all, and a later proposal to WebAssembly, the exception-handling proposal, was what enabled this. This means that the current intent of WebAssembly targets is that they maintain the baseline of "don't emit exception-handling instructions unless enabled". The commit here is intended to restore this behavior by skipping these instructions even when `C-unwind` is present.

Exception-handling is a relatively tricky and also murky topic in WebAssembly, however. There are two sets of instructions LLVM can emit for WebAssembly exceptions, Rust's Emscripten target supports exceptions, WASI targets do not, the LLVM flags to enable this are not always obvious, and additionally this all touches on "changing exception-handling behavior should be a target-level concern, not a feature". Effectively WebAssembly's exception-handling integration into Rust is not finalized at this time. The best idea at this time is that a parallel set of targets will eventually be added which support exceptions, but it's not clear if/when to do this. In the meantime the goal is to keep existing targets working while still enabling experimentation with exception-handling with `-Zbuild-std` and various permutations of LLVM flags.

To that extent this commit does not blanket disable these landing pads and cleanup routines for WebAssembly but instead checks to see if panic=unwind is enabled or if `+exception-handling` is enabled. Tests are updated here as well to account for this where, by default, using a `C-unwind` ABI won't affect Rust codegen at all. If `+exception-handling` is enabled, however, then Rust codegen will look like native platforms where exceptions are caught and the program aborts. More-or-less I've done my best to keep exceptions working on wasm where it's possible to have them work, but turned them off where they're not supposed to be emitted.

Closes rust-lang/rust#140293
</content>
</entry>
<entry>
<title>Rollup merge of #147113 - heiher:src-analysis-lsx, r=lqd</title>
<updated>2025-09-28T16:13:12+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>476013+matthiaskrgr@users.noreply.github.com</email>
</author>
<published>2025-09-28T16:13:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=aa6bd559488a3ad7b6eeff1eb4c75a6e2c6e2632'/>
<id>urn:sha1:aa6bd559488a3ad7b6eeff1eb4c75a6e2c6e2632</id>
<content type='text'>
Reland "Add LSX accelerated implementation for source file analysis"

This patch introduces an LSX-optimized version of `analyze_source_file` for the `loongarch64` target. Similar to existing SSE2 implementation for x86, this version:

- Processes 16-byte chunks at a time using LSX vector intrinsics.
- Quickly identifies newlines in ASCII-only chunks.
- Falls back to the generic implementation when multi-byte UTF-8 characters are detected or in the tail portion.

Reland rust-lang/rust#145963

r? ``@lqd``
</content>
</entry>
<entry>
<title>Add LSX accelerated implementation for source file analysis</title>
<updated>2025-09-28T01:35:07+00:00</updated>
<author>
<name>WANG Rui</name>
<email>wangrui@loongson.cn</email>
</author>
<published>2025-08-28T15:31:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c1259aa26fead9a9d365c4436d5ceb00cad88bbe'/>
<id>urn:sha1:c1259aa26fead9a9d365c4436d5ceb00cad88bbe</id>
<content type='text'>
This patch introduces an LSX-optimized version of `analyze_source_file`
for the `loongarch64` target. Similar to existing SSE2 implementation
for x86, this version:

- Processes 16-byte chunks at a time using LSX vector intrinsics.
- Quickly identifies newlines in ASCII-only chunks.
- Falls back to the generic implementation when multi-byte UTF-8
  characters are detected or in the tail portion.
</content>
</entry>
<entry>
<title>Rollup merge of #146037 - aapoalas:reborrow-lang-experiment, r=tmandry</title>
<updated>2025-09-27T19:25:56+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>476013+matthiaskrgr@users.noreply.github.com</email>
</author>
<published>2025-09-27T19:25:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=01c17f83cf9c129e2d4d27cb432cd5039ea86779'/>
<id>urn:sha1:01c17f83cf9c129e2d4d27cb432cd5039ea86779</id>
<content type='text'>
Introduce CoerceShared lang item and trait, and basic Reborrow tests

Part of rust-lang/rust#145612: This introduces the `CoerceShared` trait which is the `Reborrow` equivalent of a `&amp;mut T` -&gt; `&amp;T` coercion. The trait has a `Target` GAT which makes this (currently) unique in the `core/src/marker.rs`; I'm not sure if this can be considered problematic. Maybe this is not the way such things should be done at the marker trait level? Or maybe it is fine.

Improtantly, this PR introduces a battery of basic `Reborrow` and `CoerceShared` tests. These test the very basics of the feature; custom marker types intended to have exclusive semantics (`Custom&lt;'a&gt;(PhantomData&lt;&amp;'a mut ()&gt;)`), custom exclusive reference wrappers, and standard library exclusive reference wrappers (`Pin&lt;&amp;mut T&gt;` and `Option&lt;&amp;mut T&gt;`). None of these of course work since the implementation for `Reborrow` and `CoerceShared` is entirely missing, but this is the first step towards making these work.

Future PRs will introduce more tests, such as "recursive" reborrowing (ie. reborrowing structs that contain multiple reborrowable fields) and checks around the lifetime semantics of reborrowing ie. that a reborrow produces a new type with the same lifetime as the original.
</content>
</entry>
<entry>
<title>Improve code and fix typo</title>
<updated>2025-09-27T09:29:50+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2025-09-25T09:33:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9362ab549f87e535eeba12c5d42f584ff55ff886'/>
<id>urn:sha1:9362ab549f87e535eeba12c5d42f584ff55ff886</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Apply first review round suggestions</title>
<updated>2025-09-27T09:29:50+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2025-09-22T11:58:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=653e1036ed5a343a7be7b2a73096c138efc51523'/>
<id>urn:sha1:653e1036ed5a343a7be7b2a73096c138efc51523</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove `doc_cfg_hide` feature</title>
<updated>2025-09-27T09:29:49+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2025-05-29T19:54:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fccba2c341b65b62f513c0b7ee8842f134f3cbcd'/>
<id>urn:sha1:fccba2c341b65b62f513c0b7ee8842f134f3cbcd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve code and better check `doc(cfg(...))` attributes</title>
<updated>2025-09-27T09:29:49+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2025-05-29T16:39:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=553308b11503eafac6341b82f345bd62b09ba317'/>
<id>urn:sha1:553308b11503eafac6341b82f345bd62b09ba317</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement RFC 3631</title>
<updated>2025-09-27T09:29:48+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2025-03-28T23:53:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7c00bccd3b3eb6717e3c801123107962e671e48f'/>
<id>urn:sha1:7c00bccd3b3eb6717e3c801123107962e671e48f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Apply cfg(bootstrap) replacement</title>
<updated>2025-09-26T23:09:23+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2025-09-16T02:01:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=201f299ef6039886042ad8dd7c76a4fbd1a77a3f'/>
<id>urn:sha1:201f299ef6039886042ad8dd7c76a4fbd1a77a3f</id>
<content type='text'>
</content>
</entry>
</feed>
