forked from viperproject/prusti-dev
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Report block-level verification progress, port Prusti Assistant changes #57
Draft
trktby
wants to merge
54
commits into
Aurel300:rewrite-2023
Choose a base branch
from
trktby:rewrite-2023-assistant-features
base: rewrite-2023
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Report block-level verification progress, port Prusti Assistant changes #57
trktby
wants to merge
54
commits into
Aurel300:rewrite-2023
from
trktby:rewrite-2023-assistant-features
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Also comment out a line that crashes when not run from the same directory. This was problematic for working with Prusti Assistant.
Ported change from PR viperproject#1334
Port basic functionality for the new prusti-server work flow according to PR viperproject#1334 .
Querying signatures, spans of call contract collection and call finding does not work yet. PR: viperproject#1334
Defpath only verification does not work since test_entrypoint currently just puts the entire program into the request regardless of the verification tasks at hand. Update the flags in the documentation. PR: viperproject#1334
Requires the viperserver backend to support these messages too.
Every body owner function that is not passed to be verified explicitly acts as though it were pure and trusted to skip the encoding of their bodies. Additionally, VERIFY_ONLY_DEFPATH now takes a vector of String instead of just a string.
`SpanOfCallContracts` now has a vector as it's `call_spans` field so only one object is created per function definition rather than one per call. `CallSpanFinder` now also collects local functions for call contract span emission. Functions that are never called need not be emitted.
A main goal here is that the vir-viper translation happens on the same thread that encodes the program in the local verification case. This should happen so the allocated arena, which is thread local, can be used. Additionally, the JVM reliant bits are a bit more hidden from the general procedure.
* Impure generics * Fixed bug due to type parameters not being encoded * Remove fractional perm * mk_bool doesn't need extra typarams
* domain fields don't need a full encoding of their type yet * type alias for do_encode_full result * parameterise TaskEncoderDependencies by the owning encoder * remove some dependency unwraps * remove 'tcx lifetime, use 'vir * check for cycles when requesting dependencies or emitting output ref * add try operators for some emit output refs
Move backtranslation to where server messages are processed. Move `EncodingInfo` to encoder crate.
- The viper program is now sent using a `GlobalRef`, so it actually compiles. - Cache usage no longer involves the `VerificationRequestProcessing` object. - The cache is now lazy, therefore only loads if the `ENABLE_CACHE` flag is set. - The `VerificationRequestProcessing` object is no longer constructed when all the requests are cache hits. The thread it holds is also not spawned as a result.
Also change backtranslation of viper identifiers. Note that caching may not work properly for now if the `GENERATE_VIPER_MESSAGES` flag is set. Fixing this is a WIP.
… rewrite-2023-assistant-features Also clean up some imports.
The same error with different positions used to produce the same hashes (generated using java's `hashCode` function).
This previously made it impossible to selectively verify in single file programs. It still does not work when running through x.py.
This reverts commit f3cf4ef.
Aurel300
changed the title
Add block messages and port old PR to rewrite
Report block-level verification progress, port Prusti Assistant changes
Oct 9, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 is part of a practical work supervised by @Aurel300. It is based on a previous work's PR.
The main changes are: