<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_feature, branch beta</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=beta</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=beta'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-25T14:36:51+00:00</updated>
<entry>
<title>Revert "Auto merge of #144086 - clubby789:alloc-zeroed, r=nikic"</title>
<updated>2025-09-25T14:36:51+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-09-25T14:36:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=186d91daf73188357d569b41906aa5f44a55dfba'/>
<id>urn:sha1:186d91daf73188357d569b41906aa5f44a55dfba</id>
<content type='text'>
This reverts commit 040a98af70f0a7da03f3d5356531b28a2a7a77e4, reversing
changes made to e8a792daf500b5ff8097896ddb6cc037abe92487.
</content>
</entry>
<entry>
<title>Update CURRENT_RUSTC_VERSION post-bump</title>
<updated>2025-09-14T18:43:32+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2025-09-14T14:30:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=03265b459f0fb0138c8197377ea3eba279989709'/>
<id>urn:sha1:03265b459f0fb0138c8197377ea3eba279989709</id>
<content type='text'>
</content>
</entry>
<entry>
<title>allow `#[rustc_align_static(N)]` on `static`s</title>
<updated>2025-09-09T19:54:54+00:00</updated>
<author>
<name>Folkert de Vries</name>
<email>folkert@folkertdev.nl</email>
</author>
<published>2025-06-07T20:56:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cbacd00f106778830803ad2e2364518f06ff9078'/>
<id>urn:sha1:cbacd00f106778830803ad2e2364518f06ff9078</id>
<content type='text'>
We need a different attribute than `rustc_align` because unstable attributes are
tied to their feature (we can't have two unstable features use the same
unstable attribute). Otherwise this uses all of the same infrastructure
as `#[rustc_align]`.
</content>
</entry>
<entry>
<title>Rollup merge of #145932 - JamieCunliffe:target-feature-inlining, r=jackh726</title>
<updated>2025-09-04T00:01:55+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-09-04T00:01:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f90cc353b808d9a1a1e6cc9748dc10e7a20ee211'/>
<id>urn:sha1:f90cc353b808d9a1a1e6cc9748dc10e7a20ee211</id>
<content type='text'>
Allow `inline(always)` with a target feature behind a unstable feature `target_feature_inline_always`.

Rather than adding the inline always attribute to the function definition, we add it to the callsite. We can then check that the target features match and that the call would be safe to inline. If the function isn't inlined due to a mismatch, we emit a warning informing the user that the function can't be inlined due to the target feature mismatch.

See tracking issue rust-lang/rust#145574
</content>
</entry>
<entry>
<title>stabilize extended_varargs_abi_support</title>
<updated>2025-09-02T06:48:12+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2025-08-28T10:03:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f6d55aea2c2cc014f8bb105325ef4c21d2c3d185'/>
<id>urn:sha1:f6d55aea2c2cc014f8bb105325ef4c21d2c3d185</id>
<content type='text'>
</content>
</entry>
<entry>
<title>inline at the callsite &amp; warn when target features mismatch</title>
<updated>2025-08-27T13:45:01+00:00</updated>
<author>
<name>James Barford-Evans</name>
<email>james.barford-evans@arm.com</email>
</author>
<published>2025-08-21T13:32:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bcfc9b5073a92bbb4b1e4db2eab535357d8973ad'/>
<id>urn:sha1:bcfc9b5073a92bbb4b1e4db2eab535357d8973ad</id>
<content type='text'>
Co-authored-by: Jamie Cunliffe &lt;Jamie.Cunliffe@arm.com&gt;
</content>
</entry>
<entry>
<title>Rollup merge of #145726 - aapoalas:reborrow-lang-experiment, r=petrochenkov</title>
<updated>2025-08-23T02:00:55+00:00</updated>
<author>
<name>Jacob Pratt</name>
<email>jacob@jhpratt.dev</email>
</author>
<published>2025-08-23T02:00:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=566c13c88e790b96997c689ce9a0f067b9f0d6cf'/>
<id>urn:sha1:566c13c88e790b96997c689ce9a0f067b9f0d6cf</id>
<content type='text'>
Experiment: Reborrow trait

Tracking issue: rust-lang/rust#145612

Starting off really small here: just introduce the unstable feature and the feature gate, and one of the two traits that the Reborrow experiment deals with.

### Cliff-notes explanation

The `Reborrow` trait is conceptually a close cousin of `Copy` with the exception that it disables the source (`self`) for the lifetime of the target / result of the reborrow action. It can be viewed as a method of `fn reborrow(self: Self&lt;'a&gt;) -&gt; Self&lt;'a&gt;` with the compiler adding tracking of the resulting `Self&lt;'a&gt;` (or any value derived from it that retains the `'a` lifetime) to keep the `self` disabled for reads and writes.

No method is planned to be surfaced to the user, however, as reborrowing cannot be seen in code (except for method calls [`a.foo()` reborrows `a`] and explicit reborrows [`&amp;*a`]) and thus triggering user-code in it could be viewed as "spooky action at a distance". Furthermore, the added compiler tracking cannot be seen on the method itself, violating the Golden Rule. Note that the userland "reborrow" method is not True Reborrowing, but rather a form of a "Fancy Deref":
```rust
fn reborrow(&amp;'short self: Self&lt;'long&gt;) -&gt; Self&lt;'short&gt;;
```
The lifetime shortening is the issue here: a reborrowed `Self` or any value derived from it is bound to the method that called `reborrow`, since `&amp;'short` is effectively a local variable. True Reborrowing does not shorten the lifetime of the result.

To avoid having to introduce new kinds of references, new kinds of lifetime annotations, or a blessed trait method, no method will be introduced at all. Instead, the `Reborrow` trait is intended to be a derived trait that effectively reborrows each field individually; `Copy` fields end up just copying, while fields that themselves `Reborrow` get disabled in the source, usually leading to the source itself being disabled (some differences may appear with structs that contain multiple reborrowable fields). The goal of the experiment is to determine how the actual implementation here will shape out, and what the "bottom case" for the recursive / deriving `Reborrow` is.

`Reborrow` has a friend trait, `CoerceShared`, which is equivalent to a `&amp;'a mut T -&gt; &amp;'a T` conversion. This is needed as a different trait and different operation due to the different semantics it enforces on the source: a `CoerceShared` operation only disables the source for writes / exclusive access for the lifetime of the result. That trait is not yet introduced in this PR, though there is no particular reason why it could not be introduced.
</content>
</entry>
<entry>
<title>Add an experimental unsafe(force_target_feature) attribute.</title>
<updated>2025-08-21T23:26:26+00:00</updated>
<author>
<name>Luca Versari</name>
<email>veluca@google.com</email>
</author>
<published>2025-08-18T13:09:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=291da71b2ae2e5d313739a7d6a8ffa634f408db5'/>
<id>urn:sha1:291da71b2ae2e5d313739a7d6a8ffa634f408db5</id>
<content type='text'>
This uses the feature gate for
https://github.com/rust-lang/rust/issues/143352, but is described in
https://github.com/rust-lang/rfcs/pull/3820 which is strongly tied to
the experiment.
</content>
</entry>
<entry>
<title>Introduce Reborrow lang item and trait</title>
<updated>2025-08-21T20:53:25+00:00</updated>
<author>
<name>Aapo Alasuutari</name>
<email>aapo.alasuutari@gmail.com</email>
</author>
<published>2025-08-21T20:42:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5af359162e5ebf6c9ad318e7e45ac2f2b47b4b74'/>
<id>urn:sha1:5af359162e5ebf6c9ad318e7e45ac2f2b47b4b74</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Introduce reborrow unstable feature</title>
<updated>2025-08-21T20:38:20+00:00</updated>
<author>
<name>Aapo Alasuutari</name>
<email>aapo.alasuutari@gmail.com</email>
</author>
<published>2025-08-21T20:36:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=719880dd2a3081ca69fd41eac82f45d84b90bb06'/>
<id>urn:sha1:719880dd2a3081ca69fd41eac82f45d84b90bb06</id>
<content type='text'>
</content>
</entry>
</feed>
