Skip to content

Release 0.3.33#3024

Merged
taiki-e merged 24 commits into
0.3from
0.3-next
Jul 18, 2026
Merged

Release 0.3.33#3024
taiki-e merged 24 commits into
0.3from
0.3-next

Conversation

@taiki-e

@taiki-e taiki-e commented Jul 18, 2026

Copy link
Copy Markdown
Member

taiki-e and others added 22 commits July 18, 2026 20:13
```
error: feature `test` is declared but not used
 --> futures-util/benches/bilock.rs:1:12
  |
1 | #![feature(test)]
  |            ^^^^
  |
  = note: `-D unused-features` implied by `-D warnings`
  = help: to override `-D warnings` add `#[allow(unused_features)]`
```
`IterPinRef` yields `Pin<&Fut>` (shared references), so sending it
across threads requires `Fut: Sync`, not `Fut: Send`. The previous
bound allowed a data race when a `Send + !Sync` type (e.g. `Cell`)
was shared via iterators on two threads simultaneously.
Updates the requirements on spin to permit the latest version.

---
updated-dependencies:
- dependency-name: spin
  dependency-version: 0.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
`IntoIter::next` advanced `head_all` past consumed tasks without
reclaiming the `Arc<Task>` reference created by `link()`. This leaked
the task allocation when the task was not in the ready-to-run queue.
fetch_update was renamed to try_update in rust 1.95.0, and the old
name (probably) gets deprecated in 1.99.0; MSRV is 1.71.
Miri complains:

> Undefined Behavior: trying to retag [...] for SharedReadWrite
> permission [...], but that tag only grants SharedReadOnly permission for
> this location

in the UnsafeNotify01::drop_raw implementation for NotifyWaker.

drop_raw should receive a `*mut Self`, but that isn't dyn compatible; it
receives `&Self` instead (as documented by futures01
UnsafeNotify::drop_raw).

Wrap in and access through UnsafeCell to fix the undefined behavior.
```
error: `crate::stream::repeat` is both a function and a module
  --> futures-util/src/stream/repeat_with.rs:47:30
   |
47 | /// the [`stream::repeat()`](crate::stream::repeat) function.
   |                              ^^^^^^^^^^^^^^^^^^^^^ ambiguous link
   |
help: to link to the function, add parentheses
   |
47 | /// the [`stream::repeat()`](crate::stream::repeat()) function.
   |                                                   ++
help: to link to the module, prefix with `mod@`
   |
47 | /// the [`stream::repeat()`](mod@crate::stream::repeat) function.
   |                              ++++

error: `crate::stream::select` is both a function and a module
   --> futures-util/src/stream/select_with_strategy.rs:115:63
    |
115 | /// Note: this special case is provided by [`stream::select`](crate::stream::select).
    |                                                               ^^^^^^^^^^^^^^^^^^^^^ ambiguous link
    |
help: to link to the function, add parentheses
    |
115 | /// Note: this special case is provided by [`stream::select`](crate::stream::select()).
    |                                                                                    ++
help: to link to the module, prefix with `mod@`
    |
115 | /// Note: this special case is provided by [`stream::select`](mod@crate::stream::select).
    |                                                               ++++
```
```
error: unresolved link to `super::waker`
  --> futures-util/src/stream/futures_unordered/task.rs:23:17
   |
23 | /// * [`waker`](super::waker()) converts `Arc<impl ArcWake>` into [`Waker`].
   |                 ^^^^^^^^^^^^^^ no item named `waker` in module `futures_unordered`
   |
   = note: `-D rustdoc::broken-intra-doc-links` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(rustdoc::broken_intra_doc_links)]`

error: unresolved link to `super::waker_ref`
  --> futures-util/src/stream/futures_unordered/task.rs:24:21
   |
24 | /// * [`waker_ref`](super::waker_ref()) converts `&Arc<impl ArcWake>` into [`WakerRef`] that
   |                     ^^^^^^^^^^^^^^^^^^ no item named `waker_ref` in module `futures_unordered`

error: unresolved link to `super::WakerRef`
  --> futures-util/src/stream/futures_unordered/task.rs:28:19
   |
28 | /// [`WakerRef`]: super::WakerRef
   |                   ^^^^^^^^^^^^^^^ no item named `WakerRef` in module `futures_unordered`
```
@taiki-e taiki-e added the futures-0.3 Issue related to the 0.3 versions of futures label Jul 18, 2026
@rustbot rustbot added A-channel Area: futures::channel A-compat Area: futures::compat A-executor Area: futures::executor A-future Area: futures::future A-io Area: futures::io A-lock Area: futures::lock A-macro Area: macro related labels Jul 18, 2026
@rustbot rustbot added A-stream Area: futures::stream A-task Area: futures::task S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 18, 2026
@rustbot

rustbot commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator

⚠️ Warning ⚠️

  • Pull requests are usually filed against the master branch for this repo, but this one is against 0.3. Please double check that you specified the right target!

@taiki-e
taiki-e merged commit 89cc254 into 0.3 Jul 18, 2026
24 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 18, 2026
@taiki-e
taiki-e deleted the 0.3-next branch July 18, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-channel Area: futures::channel A-compat Area: futures::compat A-executor Area: futures::executor A-future Area: futures::future A-io Area: futures::io A-lock Area: futures::lock A-macro Area: macro related A-stream Area: futures::stream A-task Area: futures::task futures-0.3 Issue related to the 0.3 versions of futures

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants