-
Notifications
You must be signed in to change notification settings - Fork 98
Comparing changes
Open a pull request
base repository: model-checking/kani
base: kani-0.37.0
head repository: model-checking/kani
compare: kani-0.38.0
- 13 commits
- 87 files changed
- 7 contributors
Commits on Sep 25, 2023
-
Co-authored-by: Felipe R. Monteiro <rms.felipe@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for e95a7bb - Browse repository at this point
Copy the full SHA e95a7bbView commit details -
Auto label PRs that may require extra checks (#2785)
Add a new workflow that automatically adds the label "Z-BenchCI" to PRs that touch compiler, toolchain, dependencies and driver files that invoke our dependencies. I also removed the label from the toolchain update job since this workflow will add the label once the PR is created.
Configuration menu - View commit details
-
Copy full SHA for 6b1a09d - Browse repository at this point
Copy the full SHA 6b1a09dView commit details
Commits on Sep 26, 2023
-
Deprecate kani::slice::any_slice in Kani 0.38.0 (and the related AnySlice struct), and remove it in a later version. Motivation: The Kani library's `slice::any_slice` API is doing more harm than benefit: it is meant to provide a convenient way for users to generate non-deterministic slices, but its current implementation aims to avoid any unsoundness by making sure that for the non-deterministic slice returned by the API, accessing memory beyond the slice length is flagged as an out-of-bounds access (see #1009 for details). However, in practical scenarios, using it ends up causing memory to blowup for CBMC. Given that users may not care about this type of unsoundness, which is only possible through using a pointer dereference inside an unsafe block (see discussion in #2634). Thus, we should leave it to the user to decide the suitable method for generating slices that fits their verification needs. For example, they can use Kani's alternative API, `any_slice_of_array` that extracts a slice of a non-deterministic start and end from a given array.
Configuration menu - View commit details
-
Copy full SHA for 8480dc6 - Browse repository at this point
Copy the full SHA 8480dc6View commit details
Commits on Sep 27, 2023
-
Simple Stubbing with Contracts (#2746)
### Description of changes: Expands the contract features introduced in #2655 by completing the checking with stubbing/replacement capabilities. ### Resolved issues: Resolves #2621 ### Related RFC: [0009 Function Contracts](https://model-checking.github.io/kani/rfc/rfcs/0009-function-contracts.html) By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses. --------- Co-authored-by: Celina G. Val <celinval@amazon.com> Co-authored-by: Felipe R. Monteiro <rms.felipe@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for dba1674 - Browse repository at this point
Copy the full SHA dba1674View commit details
Commits on Sep 29, 2023
-
Avoid mismatch when generating structs that represent scalar data but…
… also include ZSTs (#2794) This change considers another case for the code generation of scalar data. In particular, when the expected type is an ADT, we previously considered two cases: either there is no field or there is one. But in cases where the ADT includes a ZST, the ADT will contain multiple fields: one associated to the scalar data, and other fields associated to the ZSTs. In those cases, we ended up crashing as in #2680: ```rust error: internal compiler error: Kani unexpectedly panicked at panicked at cprover_bindings/src/goto_program/expr.rs:804:9: assertion failed: `(left == right)` left: `2`, right: `1`: Error in struct_expr; mismatch in number of fields and values. StructTag("tag-_161424092592971241517604180463813633314") [Expr { value: IntConstant(0), typ: Unsignedbv { width: 8 }, location: None, size_of_annotation: None }]. thread 'rustc' panicked at cprover_bindings/src/goto_program/expr.rs:804:9: assertion failed: `(left == right)` left: `2`, right: `1`: Error in struct_expr; mismatch in number of fields and values. StructTag("tag-_161424092592971241517604180463813633314") [Expr { value: IntConstant(0), typ: Unsignedbv { width: 8 }, location: None, size_of_annotation: None }] ``` With the changes in this PR, that's no longer the case. Resolves #2364 Resolves #2680
Configuration menu - View commit details
-
Copy full SHA for a20437a - Browse repository at this point
Copy the full SHA a20437aView commit details -
Change the template to be more concise to address the team's concern that the template was too verbose. The new template is also cleaner since we are now using the PR description as the base for the commit message. --------- Co-authored-by: Michael Tautschnig <tautschn@amazon.com> Co-authored-by: Zyad Hassan <88045115+zhassan-aws@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for ed671fc - Browse repository at this point
Copy the full SHA ed671fcView commit details -
Upgrade CBMC version to latest (5.93.0). Resolves #2650
Configuration menu - View commit details
-
Copy full SHA for 964f986 - Browse repository at this point
Copy the full SHA 964f986View commit details
Commits on Oct 2, 2023
-
Updated via `cargo update`. No further (manual) updates were suggested by `cargo outdated --workspace`.
Configuration menu - View commit details
-
Copy full SHA for ed2df13 - Browse repository at this point
Copy the full SHA ed2df13View commit details
Commits on Oct 3, 2023
-
Prevent kani crash during setup for first time (#2799)
> Please ensure your PR description includes the following: > 1. A description of how your changes improve Kani. > 2. Some context on the problem you are solving. > 3. A list of issues that are resolved by this PR. > 4. If you had to perform any manual test, please describe them. > > **Make sure you remove this list from the final PR description.** By using the `tar` file as a lock mechanism, we can detect incomplete setups i.e when both `kani's` working directory and the tar file present before setup, we can simply use the local bundle to start setup again. Resolves #1545 By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.
Configuration menu - View commit details
-
Copy full SHA for 62f136c - Browse repository at this point
Copy the full SHA 62f136cView commit details
Commits on Oct 4, 2023
-
Create concrete playback temp files in source directory (#2804)
Concrete playback seeks to generate unit tests in the original source file. An intermediate temporary file is used to reduce the risk of corrupting original source files. Once the temporary file has been completely written to, it is to be atomically moved to replace the source file. This can only be done on the same file system. We now create the temporary file in the same source directory as the original source file to ensure we are on the same file system. The implementation uses NamedTempFile from the tempfile crate, which renders our own tempfile implementation redundant. Tested on Ubuntu 20.04 with /tmp on a different partition (where our regression tests would previously fail). Resolves: #2705
Configuration menu - View commit details
-
Copy full SHA for fb08f3e - Browse repository at this point
Copy the full SHA fb08f3eView commit details -
Address clippy warnings (#2807)
Versions of clippy that come with newer toolchains report a large number of needless_borrows_for_generic_args. We can address these now so that we don't have to make these changes as part of a toolchain update.
Configuration menu - View commit details
-
Copy full SHA for fece7ee - Browse repository at this point
Copy the full SHA fece7eeView commit details
Commits on Oct 5, 2023
-
Update Rust toolchain to 2023-09-23 (#2806)
Source changes required by the following upstream commits: * rust-lang/rust@5a0a1ff0cd move ConstValue into mir * rust-lang/rust@ea22adbabd adjust constValue::Slice to work for arbitrary slice types * rust-lang/rust@c94410c145 rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const Fixes: #2784
Configuration menu - View commit details
-
Copy full SHA for 7bf5a6d - Browse repository at this point
Copy the full SHA 7bf5a6dView commit details -
Bump Kani version to 0.38.0 (#2798)
Next Kani release. Also includes fixes to changelog formatting.
Configuration menu - View commit details
-
Copy full SHA for 6d9575e - Browse repository at this point
Copy the full SHA 6d9575eView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff kani-0.37.0...kani-0.38.0