Releases: model-checking/kani
Releases · model-checking/kani
kani-0.8.0
Kani Rust verifier release bundle version 0.8.0.
Breaking Changes
- Users previously implementing the Kani
Invariant
trait should switch to usingArbitrary
. The tutorial has been updated with the new recommended approach.
What's Changed
- Replace CBMC output parser by @adpaco-aws in #1433
- Replace struct impl of
Invariant
byArbitrary
by @celinval in #1401 - Deprecate
any_raw
andInvariant
by @celinval in #1415 - Add basic support for
async
/.await
by @fzaiser in #1414 - Add a
kani::futures
library containingblock_on
by @fzaiser in #1427 - Support
ThreadLocalRef
by @fzaiser in #1452 - Use
#[kani::proof]
for both sync and async functions by @fzaiser in #1471 - Cargo kani now uses the workspace's
target
directory by @YoshikiTakashima in #1421 - Disable
--slice-formula
when generating traces and add a flag by @jaisnan in #1479 - Fix kani's overridding of print macros by @zhassan-aws in #1446
- (Optimization) Use CBMC's arithmetic operators that return both the result and whether it overflowed by @zhassan-aws in #1426
- (Improve trace quality) Cleanup
rvalue_repeat
by @danielsn in #1458 - (Improve trace quality) Cleanup
TagEncoding::Direct
by @danielsn in #1457 - Bump CBMC Viewer to 3.6 by @tedinski in #1405
- Bump CBMC to 5.63.0 by @zhassan-aws in #1463
Full Changelog: kani-0.7.0...kani-0.8.0
kani-0.7.0
Kani Rust verifier release bundle version 0.7.0.
What's Changed
- Add additional workaround for Ubuntu 18.04 by @tedinski in #1371
- Remove PtrWrite hook by @danielsn in #1176
- Remove ReadPtr hook by @danielsn in #1189
- Produce more pretty names by @fzaiser in #1310
- Fix
unreachable!()
override macro + new tests by @celinval in #1372 - Fix static variable malformed symbol by @celinval in #1380
- Fix codegen of skipped functions by @celinval in #1382
- Add option to run CBMC sanity checks + set is_param for function parameters by @celinval in #1387
- Implement support for generators by @fzaiser in #1378
- Fix compilation of panic!() when the arg is another macro. by @celinval in #1407
- Update toolchain to nightly-2022-07-19 by @celinval in #1399
Full Changelog: kani-0.6.0...kani-0.7.0
kani-0.6.0
Kani Rust verifier release bundle version 0.6.0.
What's Changed
- Get Kani to run on Apple M1 by @ssoudan in #1323
- Implements
any_vec::<LENGTH, T>()
by @YoshikiTakashima in #1319 - Add support to all object-safe receiver types by @celinval in #1326
- Add support for
volatile_load
intrinsic by @adpaco-aws in #1347 - Fix bug that affected closures by @fzaiser in #1338
- Update kani's std library to use rust 2021 by @celinval in #1352
- Update toolchain to 2022-07-05 by @celinval in #1340
- Bump to CBMC 5.61 by @tedinski in #1357
Full Changelog: kani-0.5.0...kani-0.6.0
kani-0.5.0
Kani Rust verifier release bundle version 0.5.0.
What's Changed
- Detect VSCode Remote-SSH when using --visualize and recommend its port-forwarding feature by @tedinski in #1292
- Add support for installing on NixOS by @tedinski in #1298
- Bump to CBMC 5.60 by @tedinski in #1305
Full Changelog: kani-0.4.0...kani-0.5.0
kani-0.4.0
Kani Rust verifier release bundle version 0.4.0.
What's Changed
- Enable CBMC's equation-level slicer by @zhassan-aws in #1252
- Report CBMC verification time by @zhassan-aws in #1247
- Support crate-type=bin and --tests with dependencies by @tedinski in #1260
- Bump CBMC version to 5.59.0 by @adpaco-aws in #1270
- Bump CBMC viewer version to 3.5 by @zhassan-aws in #1261
- Update Rust Toolchain to 2022-06-09 by @tedinski in #1272
Full Changelog: kani-0.3.0...kani-0.4.0
kani-0.3.0
Kani Rust verifier release bundle version 0.3.0.
What's Changed
- Add support for Ubuntu 18.04 to installer by @tedinski in #1231
- Fix how we handle niche optimization with ZST by @celinval in #1205
- Add support for
atomic_min*
andatomic_umin*
intrinsics by @adpaco-aws in #1212 - Add support for
atomic_max*
andatomic_umax*
intinsics by @adpaco-aws in #1232 - Bump CBMC version to 5.58.1 by @zhassan-aws in #1229
- Update rust toolchain to 2022-05-17 by @celinval in #1209
Full Changelog: kani-0.2.0...kani-0.3.0
kani-0.2.0
Kani 0.2 (2022-05-17)
Kani now installs on Ubuntu 18.04 without needing a newer version of Python.(Minimum requirement reduced to Python 3.6, thanks to updating to cbmc-viewer 3.2.) #1171 (There may be a new issue installing on Ubuntu 18.04 besides the need for a newer Python.)- Fixed the bug that prevented Kani from building crates with a
build.rs
. #1187 cargo kani --version
now works outside of a crate. #1192- The version of Rust nightly Kani uses is now
nightly-2022-05-03
. #1181 cargo kani setup
will work even if it has already been performed. #1193- Kani now supports comparing pointers to slices and flags code that relies on unstable vtable comparison. #1195
kani-0.1.0
Kani 0.1 (2022-05-03)
- First release!
- Supported features:
- Proof harnesses (
#[kani::proof]
) - Unwind annotations (
#[kani::unwind(3)]
) - Assume statements (
kani::assume(boolean-expr)
) - Symbolic values (
kani::any::<T>()
andkani::AnySlice
) - Arbitrary and Invariant types (
kani::Arbitrary
andkani::Invariant
) - Counterexample extraction (
--visualize
) - Cargo integration (
cargo kani
) - Reachability check
- Proof harnesses (