diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ea9891d5a7f..c2f89cb6691 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ env: RUSTUP_WINDOWS_PATH_ADD_BIN: 1 # Change to specific Rust release to pin rust_stable: stable - rust_nightly: nightly-2025-01-25 + rust_nightly: nightly-2025-10-12 # Pin a specific miri version rust_miri_nightly: nightly-2025-06-02 rust_clippy: '1.88' @@ -494,8 +494,8 @@ jobs: target: - name: x86_64-unknown-haiku exclude_features: "taskdump" # taskdump is only available on Linux - - name: armv7-sony-vita-newlibeabihf - exclude_features: "process,signal,rt-process-signal,full,taskdump" +# - name: armv7-sony-vita-newlibeabihf +# exclude_features: "process,signal,rt-process-signal,full,taskdump" steps: - uses: actions/checkout@v5 - name: Install Rust ${{ env.rust_nightly }} @@ -646,6 +646,7 @@ jobs: cargo test --doc -Zbuild-std --target target-specs/i686-unknown-linux-gnu.json -p tokio --features $TOKIO_STABLE_FEATURES,taskdump env: RUST_TEST_THREADS: 1 + RUSTDOCFLAGS: --cfg tokio_unstable RUSTFLAGS: --cfg tokio_unstable -Dwarnings --cfg tokio_no_tuning_tests no-atomic-u64-check: diff --git a/netlify.toml b/netlify.toml index b8888b9d333..aeca95bcc81 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,15 +1,6 @@ [build] - # TODO: unfreeze toolchain - # error[E0557]: feature has been removed - # --> /opt/buildhome/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.13/src/lib.rs:89:29 - # | - # 89 | #![cfg_attr(docsrs, feature(doc_auto_cfg))] - # | ^^^^^^^^^^^^ feature has been removed - # | - # = note: removed in 1.58.0; see , } +fn display_eq(d: impl std::fmt::Display, s: &str) -> bool { + use std::fmt::Write; + + struct FormatEq<'r> { + remainder: &'r str, + unequal: bool, + } + + impl<'r> Write for FormatEq<'r> { + fn write_str(&mut self, s: &str) -> std::fmt::Result { + if !self.unequal { + if let Some(new_remainder) = self.remainder.strip_prefix(s) { + self.remainder = new_remainder; + } else { + self.unequal = true; + } + } + Ok(()) + } + } + + let mut fmt_eq = FormatEq { + remainder: s, + unequal: false, + }; + let _ = write!(fmt_eq, "{d}"); + fmt_eq.remainder.is_empty() && !fmt_eq.unequal +} + #[allow(deprecated)] fn is_rt_shutdown_err(err: &io::Error) -> bool { if let Some(inner) = err.get_ref() { - // Using `Error::description()` is more efficient than `format!("{inner}")`, - // so we use it here even if it is deprecated. err.kind() == io::ErrorKind::Other && inner.source().is_none() - && inner.description() == RUNTIME_SHUTTING_DOWN_ERROR + && display_eq(inner, RUNTIME_SHUTTING_DOWN_ERROR) } else { false }