Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes the
verus!
macro's default behavior be to erase ghost code and requires a new configuration flag,verus_macro_keep_ghost
, when ghost code should be kept for verification.verus_macro_keep_ghost
replaces usage of the old flagverus_macro_erase_ghost
.With this PR, it is now possible to use
cargo run
orcargo build
without any additional flags on a crate that uses theverus!
macro to build or run an executable. There are some limitations and TODOs before this will work with anything beyond extremely basic Verus code -- most notably, sincevstd
is not a crate that can be used as a dependency, the crate being built can't use anything fromvstd
. I plan to look into this next.I also plan to write up some documentation about how to use
cargo
to build/run Verus code; for now, the main things to know are:builtin_macros
must be included as a dependency in the target crate'sCargo.toml
file.builtin
) should be marked with#[cfg(verus_macro_keep_ghost)]
.