Skip to content

kani-0.68.0

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Sep 03:43
· 75 commits to main since this release
0d2328a

Kani Rust verifier release bundle version 0.68.0.

What's Changed

New Features

  • Add #[kani::loop_decreases] for proving loop termination by @feliperodri in #4564
  • Add --export-json for structured verification results by @yimingyinqwqq in #4472
  • Emit SARIF output for Code Scanning by @mizuki0x in #4547
  • Add progress indicator and log file output for concise terminal output by @tautschnig in #4528
  • Add git revision and rustc version info to verbose version output by @tautschnig in #4466
  • Warn when the CBMC on PATH does not match the pinned version by @ivmat in #4723
  • Force-load the kani crate so no_std crates work out of the box by @tautschnig in #4682
  • Add --no-assert-overrides escape hatch for macro-override conflicts by @tautschnig in #4687
  • Keep completed results when --fail-fast aborts a run by @ivmat in #4744
  • Fail a zero-match harness filter before codegen and export by @ivmat in #4743

Stubbing

Contracts and Quantifiers

Autoharness

Intrinsics and Arbitrary

  • Add support for volatile_copy_memory, volatile_copy_nonoverlapping_memory and volatile_set_memory by @ivmat in #4672
  • Add support for unaligned_volatile_load and unaligned_volatile_store by @ivmat in #4673
  • Implement Arbitrary for Rc<T> and Arc<T> by @tautschnig in #4697
  • Implement BoundedArbitrary for BTreeMap and BTreeSet by @hz2 in #4626

Performance

Major Bug Fixes

Soundness

Contracts

  • Fix the bug of moving (instead of cloning) the expression inside old of function contract by @thanhnguyen-aws in #4513
  • Do not assert dependency contracts for calls made by contract clauses by @tautschnig in #4710
  • Dispatch clause-context calls to the check target to the original body by @tautschnig in #4709
  • Elide vacuous pointer checks on contract-closure capture loads by @tautschnig in #4715
  • Fix loop-contract transform for post-#145513 deref temporaries by @tautschnig in #4659
  • Skip ZST targets in loop_modifies assigns clause by @feliperodri in #4792
  • Fix compiler crash on slice-modifies verified stubs by @feliperodri in #4749
  • Fix stubbing bugs: FFI name resolution and generic parameter validation by @feliperodri in #4565

Crashes and ICEs

  • Fix codegen panic for calls through a function pointer returning ! by @MavenRain in #4647
  • Fix ICE on ConstantIndex projection of DST trailing slice field by @tautschnig in #4681
  • Fix ICE on non-literal cover/assert/check message expressions by @ivmat in #4711
  • Fix three constructor-discovery ICEs from the crates.io sweep by @tautschnig in #4725
  • Degrade constant fat pointers to unsupported DSTs instead of crashing by @tautschnig in #4704
  • Codegen single-non-ZST-field constants with name-keyed struct fields by @tautschnig in #4724
  • Fix CBMC output parser panic when using SMT solvers by @tautschnig in #4540
  • Emit a diagnostic for a misapplied checked size/align intrinsic marker by @MavenRain in #4648

Dependency Bumps

  • Automatic upgrade of CBMC dependency to 6.11.0 in #4754
  • Upgrade Rust toolchain to nightly-2026-08-21 by @feliperodri in #4768

New Contributors

Full Changelog: kani-0.67.0...kani-0.68.0