Skip to content

Upgrade the Rust toolchain to nightly-2026-10-21 - #5042

Merged
feliperodri merged 2 commits into
model-checking:mainfrom
feliperodri:toolchain-2026-10-21
Oct 22, 2026
Merged

feliperodri merged 2 commits into
model-checking:mainfrom
feliperodri:toolchain-2026-10-21

Conversation

@feliperodri

Copy link
Copy Markdown
Member

Resolves #5009.

The automatic upgrade has been stuck at nightly-2026-10-12 since 10-13. This moves Kani to nightly-2026-10-21. Two upstream changes needed source changes, and one of them would have silently broken autoharness if a test hadn't pinned it:

  • core::bstr is now core::byte_str, behind the byte_str feature (Rename bstr module/feature to byte_str rust-lang/rust#160912). Besides the #![feature] and the ByteStr model in kani_core, Kani recognizes ByteStr for autoharness by its module name (it has no diagnostic item). Left alone, that check would have quietly stopped matching, putting &ByteStr functions back on the skipped list. cargo_autoharness_byte_str caught it, as it was written to.
  • core::ptr::Unique was removed (Nuke Unique (and ptr_internals) rust-lang/rust#164146). Kani itself doesn't use it (Box already held a BoxRaw before this range), but the vecdeque-cve test crate's copy of RawVec did. It now holds the NonNull that Unique wrapped.

The third change is mechanical: Const::from_target_usize is an inherent method again, so the ConstExt imports go.

I also read the rustc_public and core::intrinsics diffs over the range for changes that compile but behave differently. rustc_public has none, and the one new intrinsic (codeview_annotation) has a no-op fallback body and isn't called from std.

Verified locally (CBMC 6.11.0): the full kani-regression.sh and kani-llbc-regression.sh; the only failures were push_slow and cell_stub, which run out of memory under my 6 GB CBMC cap, as they do on main. Also clean: kani-fmt.sh --check, cargo clippy --workspace --tests -- -D warnings and the --cfg=kani_sysroot clippy.

FYI for verify-rust-std: kani_core's ByteStr model now names core_path::byte_str, so a verify-rust-std branch picks this Kani up together with a library that has the rename.

- Const::from_target_usize is an inherent method again, so drop the
  ConstExt imports.
- core::bstr is now core::byte_str, behind the byte_str feature
  (rust-lang/rust#160912). Update the ByteStr model, the name match
  that recognizes ByteStr for autoharness, and the autoharness test
  that pins it.

Resolves model-checking#5009.
core::ptr::Unique was removed (rust-lang/rust#164146). The test crate's
copy of RawVec held one; hold the NonNull it wrapped instead, and drop the
ptr_internals feature.
@feliperodri
feliperodri requested review from a team as code owners October 21, 2026 23:16
@github-actions github-actions Bot added Z-EndToEndBenchCI Tag a PR to run benchmark CI Z-CompilerBenchCI Tag a PR to run benchmark CI labels Oct 21, 2026
@feliperodri
feliperodri enabled auto-merge October 22, 2026 01:19

@rajath-mk rajath-mk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

@feliperodri
feliperodri added this pull request to the merge queue Oct 22, 2026
Merged via the queue into model-checking:main with commit e6c34ef Oct 22, 2026
33 checks passed
@feliperodri
feliperodri deleted the toolchain-2026-10-21 branch October 22, 2026 06:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Z-CompilerBenchCI Tag a PR to run benchmark CI Z-EndToEndBenchCI Tag a PR to run benchmark CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Toolchain upgrade to nightly-2026-10-13 failed

2 participants