<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/library/core/src/cell, branch master</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=master</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-02T01:38:26+00:00</updated>
<entry>
<title>Constify conversion traits</title>
<updated>2025-09-02T01:38:26+00:00</updated>
<author>
<name>ltdk</name>
<email>usr@ltdk.xyz</email>
</author>
<published>2025-08-11T23:36:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1c64d3e6d1fe6256cb11b8dd455ccad1b5f9848c'/>
<id>urn:sha1:1c64d3e6d1fe6256cb11b8dd455ccad1b5f9848c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add poisoning documentation to `LazyCell`</title>
<updated>2025-08-03T20:57:07+00:00</updated>
<author>
<name>Connor Tsui</name>
<email>connor.tsui20@gmail.com</email>
</author>
<published>2025-08-03T20:28:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=37922fc24cd785fff543be0c31b5c8529d7339f0'/>
<id>urn:sha1:37922fc24cd785fff543be0c31b5c8529d7339f0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update version placeholders</title>
<updated>2025-07-01T17:54:33+00:00</updated>
<author>
<name>Josh Stone</name>
<email>jistone@redhat.com</email>
</author>
<published>2025-06-23T17:24:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9ce8930da62a9be15831b78b9834d91702872e15'/>
<id>urn:sha1:9ce8930da62a9be15831b78b9834d91702872e15</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #129334 - ChayimFriedman2:more-lazy-methods, r=Amanieu</title>
<updated>2025-05-10T14:26:01+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>476013+matthiaskrgr@users.noreply.github.com</email>
</author>
<published>2025-05-10T14:26:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c6b9253ad5bb95b2ef1354864654807f4fcf1049'/>
<id>urn:sha1:c6b9253ad5bb95b2ef1354864654807f4fcf1049</id>
<content type='text'>
Implement (part of) ACP 429: add `DerefMut` to `Lazy[Cell/Lock]`

`DerefMut` is instantly stable, as a trait impl. That means this needs an FCP.

``@rustbot`` label +needs-fcp

https://github.com/rust-lang/libs-team/issues/429
</content>
</entry>
<entry>
<title>OnceCell &amp; OnceLock docs: Using (un)initialized consistently</title>
<updated>2025-02-03T12:18:39+00:00</updated>
<author>
<name>Pyrode</name>
<email>pyrode.01@gmail.com</email>
</author>
<published>2025-02-03T12:18:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f8b01b3d19a362f2b2416bf14773c54aa5f07324'/>
<id>urn:sha1:f8b01b3d19a362f2b2416bf14773c54aa5f07324</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Less unwrap() in documentation</title>
<updated>2024-12-21T01:26:47+00:00</updated>
<author>
<name>Kornel</name>
<email>kornel@geekhood.net</email>
</author>
<published>2024-12-20T17:02:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7b42bc0c7935e9f5fefd017249041d64f27bb583'/>
<id>urn:sha1:7b42bc0c7935e9f5fefd017249041d64f27bb583</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(LazyCell): documentation of get[_mut] was wrong</title>
<updated>2024-12-18T08:43:02+00:00</updated>
<author>
<name>Jalil David Salamé Messina</name>
<email>jalil.salame@gmail.com</email>
</author>
<published>2024-12-18T08:37:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=20bff638bf45990b7d71cdc330b4f68bd4b4bc73'/>
<id>urn:sha1:20bff638bf45990b7d71cdc330b4f68bd4b4bc73</id>
<content type='text'>
- `LazyCell::get`: said it was returning a **mutable** reference.
- `LazyCell::get_mut`: said it was returning a reference (the mutable
  was missing).
</content>
</entry>
<entry>
<title>Add `DerefMut` for `Lazy[Cell/Lock]` that delegates to the unstable `force_mut()`</title>
<updated>2024-11-16T20:23:19+00:00</updated>
<author>
<name>Chayim Refael Friedman</name>
<email>chayimfr@gmail.com</email>
</author>
<published>2024-11-16T20:23:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b208706b6e2d7b2a218347e4311a05fe3a022d52'/>
<id>urn:sha1:b208706b6e2d7b2a218347e4311a05fe3a022d52</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Re-do recursive const stability checks</title>
<updated>2024-10-25T18:31:40+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2024-10-06T17:59:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a0215d8e46aab41219dea0bb1cbaaf97dafe2f89'/>
<id>urn:sha1:a0215d8e46aab41219dea0bb1cbaaf97dafe2f89</id>
<content type='text'>
Fundamentally, we have *three* disjoint categories of functions:
1. const-stable functions
2. private/unstable functions that are meant to be callable from const-stable functions
3. functions that can make use of unstable const features

This PR implements the following system:
- `#[rustc_const_stable]` puts functions in the first category. It may only be applied to `#[stable]` functions.
- `#[rustc_const_unstable]` by default puts functions in the third category. The new attribute `#[rustc_const_stable_indirect]` can be added to such a function to move it into the second category.
- `const fn` without a const stability marker are in the second category if they are still unstable. They automatically inherit the feature gate for regular calls, it can now also be used for const-calls.

Also, several holes in recursive const stability checking are being closed.
There's still one potential hole that is hard to avoid, which is when MIR
building automatically inserts calls to a particular function in stable
functions -- which happens in the panic machinery. Those need to *not* be
`rustc_const_unstable` (or manually get a `rustc_const_stable_indirect`) to be
sure they follow recursive const stability. But that's a fairly rare and special
case so IMO it's fine.

The net effect of this is that a `#[unstable]` or unmarked function can be
constified simply by marking it as `const fn`, and it will then be
const-callable from stable `const fn` and subject to recursive const stability
requirements. If it is publicly reachable (which implies it cannot be unmarked),
it will be const-unstable under the same feature gate. Only if the function ever
becomes `#[stable]` does it need a `#[rustc_const_unstable]` or
`#[rustc_const_stable]` marker to decide if this should also imply
const-stability.

Adding `#[rustc_const_unstable]` is only needed for (a) functions that need to
use unstable const lang features (including intrinsics), or (b) `#[stable]`
functions that are not yet intended to be const-stable. Adding
`#[rustc_const_stable]` is only needed for functions that are actually meant to
be directly callable from stable const code. `#[rustc_const_stable_indirect]` is
used to mark intrinsics as const-callable and for `#[rustc_const_unstable]`
functions that are actually called from other, exposed-on-stable `const fn`. No
other attributes are required.
</content>
</entry>
<entry>
<title>Auto merge of #131767 - cuviper:bump-stage0, r=Mark-Simulacrum</title>
<updated>2024-10-16T14:40:08+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2024-10-16T14:40:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bed75e7c21e8d18bd536a0f7c9e479d2f6707db3'/>
<id>urn:sha1:bed75e7c21e8d18bd536a0f7c9e479d2f6707db3</id>
<content type='text'>
Bump bootstrap compiler to 1.83.0-beta.1

https://forge.rust-lang.org/release/process.html#master-bootstrap-update-tuesday
</content>
</entry>
</feed>
