Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
98a27df
Introduce native rmc / cargo-rmc
tedinski Jan 8, 2022
aac1f63
merge origin/main
tedinski Jan 18, 2022
2dfa3d2
rename to cargo-kani (not yet working, must account for #722 yet)
tedinski Jan 18, 2022
eb1f190
adapt to new kani-compiler
tedinski Jan 20, 2022
4744016
Merge remote-tracking branch 'origin/main' into native-rmc
tedinski Jan 20, 2022
095e8ce
merge origin/main
tedinski Jan 28, 2022
fe77718
add support for various output modifier flags
tedinski Feb 3, 2022
7573df5
add enable/disable flags for cbmc checks
tedinski Feb 3, 2022
023ecfa
implement more flags
tedinski Feb 5, 2022
f1654f9
add cbmc arguments
tedinski Feb 5, 2022
7fa5510
Merge remote-tracking branch 'origin/main' into native-rmc
tedinski Feb 5, 2022
1cb4295
add gen-c
tedinski Feb 8, 2022
54ab877
add output-format
tedinski Feb 8, 2022
4e13da7
support use-abs and abs-type
tedinski Feb 8, 2022
a7c3e9d
merge origin/main
tedinski Feb 8, 2022
044478d
update debug flag mechanism
tedinski Feb 8, 2022
03afcc6
add vtable restrictions code
tedinski Feb 9, 2022
8cb97de
Merge remote-tracking branch 'origin/main' into native-rmc
tedinski Feb 9, 2022
a05a163
Switch to native, delete the python
tedinski Feb 15, 2022
a934769
Merge remote-tracking branch 'origin/main' into native-rmc
tedinski Feb 15, 2022
2767f4a
Merge remote-tracking branch 'origin/main' into native-rmc
tedinski Feb 15, 2022
912dfdf
add symbol mangling, stratify arguments
tedinski Feb 15, 2022
c2b7ddb
use python3
tedinski Feb 15, 2022
2b672ae
use correct build triple
tedinski Feb 15, 2022
636e4c7
clean up some comments
tedinski Feb 15, 2022
c69c2ff
Rename KaniContext -> KaniSession
tedinski Feb 15, 2022
e0e0895
merge origin/main
tedinski Feb 15, 2022
0e83e2d
update default format to regular
tedinski Feb 15, 2022
652b0e9
merge origin/main
tedinski Feb 16, 2022
cc8afa5
add new assertion-reach-checks
tedinski Feb 16, 2022
a64e156
Update src/cargo-kani/Cargo.toml
tedinski Feb 16, 2022
1dd557b
Update src/cargo-kani/src/args.rs
tedinski Feb 16, 2022
940912b
Update src/cargo-kani/src/args.rs
tedinski Feb 16, 2022
a566ee8
refactor calls to goto instrument a bit
tedinski Feb 16, 2022
f3755f0
cargo-kani should write reports to target/report by default
tedinski Feb 16, 2022
d0ea90a
cbmc_formatter renamed display_results
tedinski Feb 17, 2022
85e7579
Merge remote-tracking branch 'origin/main' into native-rmc
tedinski Feb 17, 2022
b40aca2
correct old rmc name
tedinski Feb 18, 2022
15f4aa4
fail based on 'formatter' result alone. Accomodates the reachability …
tedinski Feb 18, 2022
79c1e0c
move toml code to its own file, it didn't belong where it was
tedinski Feb 18, 2022
1704c54
merge origin/main
tedinski Feb 21, 2022
bd7de7b
pathbuf and error checks
tedinski Feb 21, 2022
5acf2e4
introduce aggregate return type for kani outputs
tedinski Feb 22, 2022
8e3ea09
introduce aggregate return type for cargo-kani outputs
tedinski Feb 22, 2022
bd73faf
Merge remote-tracking branch 'origin/main' into native-rmc
tedinski Feb 22, 2022
42491ef
rename descend to get_table
tedinski Feb 24, 2022
931e804
Merge remote-tracking branch 'origin/main' into native-rmc
tedinski Feb 24, 2022
b00eb42
allow repeated arguments
tedinski Feb 24, 2022
526a666
Detect verification failure and exit appropriately without an additio…
tedinski Feb 24, 2022
cc01c3f
Merge branch 'main' into native-rmc
tedinski Feb 24, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,19 @@ dependencies = [
"walkdir",
]

[[package]]
name = "cargo-kani"
version = "0.1.0"
dependencies = [
"anyhow",
"clap",
"glob",
"serde",
"serde_json",
"structopt",
"toml",
]

[[package]]
name = "cfg-if"
version = "1.0.0"
Expand Down Expand Up @@ -350,6 +363,15 @@ dependencies = [
"ahash",
]

[[package]]
name = "heck"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
dependencies = [
"unicode-segmentation",
]

[[package]]
name = "hermit-abi"
version = "0.1.19"
Expand Down Expand Up @@ -688,6 +710,30 @@ version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"

[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"syn",
"version_check",
]

[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]

[[package]]
name = "proc-macro2"
version = "1.0.36"
Expand Down Expand Up @@ -1007,6 +1053,30 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"

[[package]]
name = "structopt"
version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
dependencies = [
"clap",
"lazy_static",
"structopt-derive",
]

[[package]]
name = "structopt-derive"
version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
dependencies = [
"heck",
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]

[[package]]
name = "syn"
version = "1.0.86"
Expand Down Expand Up @@ -1157,6 +1227,12 @@ dependencies = [
"version_check",
]

[[package]]
name = "unicode-segmentation"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"

[[package]]
name = "unicode-width"
version = "0.1.9"
Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ members = [
"tools/bookrunner",
"tools/compiletest",
"tools/kani-link-restrictions",
"src/cargo-kani",
"src/kani-compiler",
# `librustdoc` is still needed by bookrunner.
"tools/bookrunner/librustdoc",
Expand Down
2 changes: 0 additions & 2 deletions docs/src/cargo-kani.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ Cargo kani supports the kani standalone arguments described in the [Kani single

**`--config-toml`** Location of a configuration file in toml format for your project. This defaults to the crate's Cargo.toml.

**`--no-config-toml`** Do not use any configuration TOML file.

**`--build-target`** Build for the target triple.

# Package configuration
Expand Down
3 changes: 0 additions & 3 deletions docs/src/tutorial/loops-unwinding/main.expected
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
[initialize_prefix.unwind.0] line 11 unwinding assertion loop 0: FAILURE
VERIFICATION FAILED
[Kani] info: Verification output shows one or more unwinding failures.
[Kani] tip: Consider increasing the unwinding value or disabling
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.

This tip is useful, but I was thinking of moving it to the CBMC output parser here:

3. TODO: Change results from "SUCCESS" to "UNDETERMINED" if an unwinding

while updating the results to UNDETERMINED.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Awesome TODO. Yeah, I think that output parsing code is the better approach.

`--unwinding-assertions`.
Loading