You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Documentation/docs/developer/VERIFICATION.md
+17-9Lines changed: 17 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,9 +31,18 @@ Run the following commands to install Verus tools.
31
31
32
32
```shell
33
33
cd svsm
34
-
./scripts/vinstall.sh
34
+
./scripts/vinstall.sh --use-prebuilt
35
35
```
36
36
37
+
The script skips installation if a matching version of Verus is already installed.
38
+
To force reinstallation (e.g., some verus-related tools are missing), add the --force flag.
39
+
To build both Verus and Z3 from source instead of using prebuilt binaries, omit the --use-prebuilt flag. Building from source is required for CI.
40
+
41
+
> Can I use latest Verus toolchain?
42
+
>> The `vinstall.sh` script and our Cargo dependencies are pinned to a specific
43
+
Verus version, but newer releases may work as well. Verus runs cross-project CI
44
+
to check whether new Verus changes remain compatible with Coconut SVSM.
45
+
37
46
> Why am I using a different Rust toolchain?
38
47
>> Verus requires a specific version of Rust (e.g., 1.88.0) because it depends
39
48
on the compiler’s internal libraries for verification. Thanks to Rust’s strong
@@ -50,29 +59,28 @@ cd svsm/kernel
50
59
cargo verify
51
60
```
52
61
53
-
By default, it only verifies the current crate (`cargo verify` is an alias of `cargo v --features verus`), while using spec/proof from external crates. To verify all external crates, run `cargo v --features verusall`
54
-
55
-
62
+
By default, `cargo verify` verifies only the current crate. It is an alias for
63
+
`cargo verus focus --features verus` and uses specifications and proofs from
64
+
dependency crates without re-verifying them. To verify dependency crates as
65
+
well, run `cargo verus verify --features verus`.
56
66
57
67
### Pass verus arguments for verification
58
68
59
69
For debugging purposes, it is helpful to pass additional Verus arguments.
60
-
You can specify extra arguments using the environmental variable
61
-
{crate}_{lib/bin}_VERUS_ARGS for a specific crate
62
-
{crate} or VERUS_ARGS for all crates.
70
+
You can specify extra arguments using `cargo verify -- $extra_verus_args`
63
71
64
72
**Examples**
65
73
66
74
* Compiles a crate without verifying svsm crate using verus compilation:
67
75
68
76
```shell
69
-
svsm_lib_VERUS_ARGS="--no-verify" cargo verify
77
+
cargo verify -- --no-verify
70
78
```
71
79
72
80
* Compiles a crate while only verifying address module in svsm crate:
0 commit comments