Stabilize atomic_try_updateand deprecate fetch_update starting 1.99.0#148590
Conversation
|
I would suggest splitting out the lint change into a separate PR. It would be useful even before stabilization, I don't think it requires its own FCP, and it'll make the API stabilization itself a bit easier to review. That's especially important since the simultaneous deprecation makes it a big and tricky diff by stabilization standards! |
02e586c to
67b2e92
Compare
|
Good idea! Done: #148601 |
…ng, r=Kivooeo `invalid_atomic_ordering`: also lint `update` & `try_update` Split from rust-lang#148590 Tracking issue for `update` and `try_update`: rust-lang#135894
…ng, r=Kivooeo `invalid_atomic_ordering`: also lint `update` & `try_update` Split from rust-lang#148590 Tracking issue for `update` and `try_update`: rust-lang#135894
…ng, r=Kivooeo `invalid_atomic_ordering`: also lint `update` & `try_update` Split from rust-lang#148590 Tracking issue for `update` and `try_update`: rust-lang#135894
67b2e92 to
7ffe34e
Compare
…ooeo `invalid_atomic_ordering`: also lint `update` & `try_update` Split from rust-lang/rust#148590 Tracking issue for `update` and `try_update`: rust-lang/rust#135894
…ooeo `invalid_atomic_ordering`: also lint `update` & `try_update` Split from rust-lang/rust#148590 Tracking issue for `update` and `try_update`: rust-lang/rust#135894
…ng, r=Kivooeo `invalid_atomic_ordering`: also lint `update` & `try_update` Split from rust-lang#148590 Tracking issue for `update` and `try_update`: rust-lang#135894
…ooeo `invalid_atomic_ordering`: also lint `update` & `try_update` Split from rust-lang/rust#148590 Tracking issue for `update` and `try_update`: rust-lang/rust#135894
|
☔ The latest upstream changes (presumably #149222) made this pull request unmergeable. Please resolve the merge conflicts. |
7ffe34e to
9a0eb78
Compare
This comment has been minimized.
This comment has been minimized.
9a0eb78 to
0733988
Compare
This comment has been minimized.
This comment has been minimized.
|
@rustbot label -S-waiting-on-FCP RIP |
0733988 to
65e453c
Compare
…jhpratt Stabilize `atomic_try_update`and deprecate `fetch_update` starting 1.99.0 Tracking issue: rust-lang#135894 FCP completed: rust-lang#135894 (comment) ~1.96.0 was chosen because I don't think the remaining month until 1.93.0 becomes beta is enough for the FCP to finish and this to get merged, so 1.94.0 + a couple of versions of leeway: rust-lang#135894 (comment) 1.99 suggested in rust-lang#148590 (comment) Closes rust-lang#135894
…jhpratt Stabilize `atomic_try_update`and deprecate `fetch_update` starting 1.99.0 Tracking issue: rust-lang#135894 FCP completed: rust-lang#135894 (comment) ~1.96.0 was chosen because I don't think the remaining month until 1.93.0 becomes beta is enough for the FCP to finish and this to get merged, so 1.94.0 + a couple of versions of leeway: rust-lang#135894 (comment) 1.99 suggested in rust-lang#148590 (comment) Closes rust-lang#135894
|
⌛ Testing commit 3a48b9f with merge 83d71ef... Workflow: https://github.com/rust-lang/rust/actions/runs/21779822668 |
Stabilize `atomic_try_update`and deprecate `fetch_update` starting 1.99.0 Tracking issue: #135894 FCP completed: #135894 (comment) ~1.96.0 was chosen because I don't think the remaining month until 1.93.0 becomes beta is enough for the FCP to finish and this to get merged, so 1.94.0 + a couple of versions of leeway: #135894 (comment) 1.99 suggested in #148590 (comment) Closes #135894
|
@bors yield |
|
Auto build cancelled. Cancelled workflows: The next pull request likely to be tested is #152282. |
…uwer Rollup of 8 pull requests Successful merges: - #148590 (Stabilize `atomic_try_update`and deprecate `fetch_update` starting 1.99.0) - #150522 (Stabilize new inclusive range type and iterator type) - #152235 (Convert to inline diagnostics in `rustc_parse`) - #152267 (feat: Implement `int_from_ascii` for `NonZero<T>`) - #151576 (Stabilize `core::hint::cold_path`) - #151933 (Linker-plugin-based LTO: give an explanation how to use linker-plugin-lto with full LTO) - #152010 (Ignore all debuginfo tests for LLDB that we do not run in CI) - #152199 (Move `rustc_query_system::cache`.)
Rollup merge of #148590 - GrigorenkoPV:atomic_try_update, r=jhpratt Stabilize `atomic_try_update`and deprecate `fetch_update` starting 1.99.0 Tracking issue: #135894 FCP completed: #135894 (comment) ~1.96.0 was chosen because I don't think the remaining month until 1.93.0 becomes beta is enough for the FCP to finish and this to get merged, so 1.94.0 + a couple of versions of leeway: #135894 (comment) 1.99 suggested in #148590 (comment) Closes #135894
- Rename `bigint_helper_methods` feature gate to `widening_mul` in `kernel/src/lib.rs` [rust-lang/rust#152018](rust-lang/rust#152018) - Remove stabilized `atomic_try_update` feature gate from `common/src/lib.rs` [rust-lang/rust#148590](rust-lang/rust#148590) --------- Co-authored-by: Yuhan Deng <yhdeng@stanford.edu>
…ooeo `invalid_atomic_ordering`: also lint `update` & `try_update` Split from rust-lang/rust#148590 Tracking issue for `update` and `try_update`: rust-lang/rust#135894
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Starting with Rust 1.99.0 (expected 2026-10-01), the
`Atomic*::fetch_update` method is deprecated, with the compiler suggesting
the `try_update` alias instead:
error: use of deprecated method `core::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
--> rust/kernel/block/mq/request.rs:206:22
|
206 | let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
| ^^^^^^^^^^^^
|
= note: `-D deprecated` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(deprecated)]`
help: replace the use of the deprecated method
|
206 - let old = target.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
206 + let old = target.try_update(Ordering::Relaxed, Ordering::Relaxed, |x| Some(op(x)));
|
The deprecation was added in Rust 1.95.0 [1], but only triggers starting
with Rust 1.99.0.
However, we cannot use the alias since our minimum in 6.12.y is Rust
1.78.0 -- `try_update` was added in Rust 1.86.0 [2].
Thus just allow the lint.
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Boqun Feng <boqun@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Link: rust-lang/rust#148590 [1]
Link: rust-lang/rust#133829 [2]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
View all comments
Tracking issue: #135894
FCP completed: #135894 (comment)
1.96.0 was chosen because I don't think the remaining month until 1.93.0 becomes beta is enough for the FCP to finish and this to get merged, so 1.94.0 + a couple of versions of leeway: #135894 (comment)1.99 suggested in #148590 (comment)
Closes #135894