Skip to content

unable to compile futures v0.3.31 with unstable write-all-vectored feature enabled with Rust < 1.81 with RUSTC_BOOTSTRAP=1 #2892

Closed as not planned
@decathorpe

Description

@decathorpe

I'm trying to update futures-rs crates in Fedora Linux to version 0.3.31, but I'm hitting a problem that I can't compile them with Rust 1.75 (for EPEL on RHEL 9). futures v0.3.30 with the same features enabled compiles fine on Rust 1.75 and 1.79, but v0.3.31 now fails with:

error[E0658]: use of unstable library feature 'io_slice_advance'
  --> /usr/share/cargo/registry/futures-util-0.3.31/src/io/write_all_vectored.rs:22:9
   |
22 |         IoSlice::advance_slices(&mut bufs, 0);
   |         ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #62726 <https://github.com/rust-lang/rust/issues/62726> for more information
   = help: add `#![feature(io_slice_advance)]` to the crate attributes to enable

error[E0658]: use of unstable library feature 'io_slice_advance'
  --> /usr/share/cargo/registry/futures-util-0.3.31/src/io/write_all_vectored.rs:37:17
   |
37 |                 IoSlice::advance_slices(&mut this.bufs, n);
   |                 ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #62726 <https://github.com/rust-lang/rust/issues/62726> for more information
   = help: add `#![feature(io_slice_advance)]` to the crate attributes to enable

As far as I can tell, the code in futures_util hasn't changed since v0.3.30, and IoSlice in futures_io::IoSlice is a reexport of std::io::IoSlice in both v0.3.30 and v0.3.31, so I have no idea why this would suddenly break (or why it previously worked? the IoSlice::advance_slices method was unstable for years and this worked...)

And, well, I can't reproduce this "upstream" with crates from crates.io, because futures-util v0.3.30 was yanked from crates.io, and cargo won't let me pick that version to compare with.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions