Skip to content
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

Add block granularity progress indication #262

Draft
wants to merge 99 commits into
base: master
Choose a base branch
from

Conversation

trktby
Copy link

@trktby trktby commented Sep 3, 2024

This PR is part of a practical work supervised by @Aurel300. It is based on a previous work's PR.
The main changes are:

  • Adding new block-level gutter decorators, inspired by Dafny. Their purpose is to be able to track verification progress with a higher granularity than before. This includes a current block decorator to see on which basic block a program might be hanging during verification.
  • Persisting partial results of a verification across selective verification runs - selectively verifying a method no longer wipes the results of the other, unmodified ones (they are marked as stale however).
  • Refactoring of the storage of decorators. They are now stored and generated per method. Mainly for ease of organization of block-based decorators.

cedihegi and others added 30 commits October 23, 2022 14:15
…or crate

and codelenses only updating after reloading a file or editing it.
verifying different files or crates, not just the info
of the most recent one is stored.
Not yet actually depending on the verification's result.
…s. However the textual decorators just stack in subsequent verifications so they will have to be removed at some point
cedihegi and others added 30 commits March 5, 2023 16:55
This includes:
- retaining information between selective runs
- overhaul of the decorator related storage structure
- processing of block messages
- some bug fixes
Before, the current block may have been misleading. In the case of all
paths through all methods currently being verified being stuck on a
block, and those last block messages not having triggered the UI update
(i.e. if they all arrived within the update interval), the last
displayed blocks are not actually the hanging ones. Now anothe
configurable interval forces an update.
A new option for passing extra silicon arguments is added. In
particular, when reporting block messages, the
`--numberOfErrorsToReport` option is set to 0 by default.
- extra silicon args is an array now
- keep providing code lens if the file is not dirty (mainly for tab changes)
- simplify verification result parsing (since the filename prefix seems to not be useful)
- mark verification results of methods as stale if they were not selected for the last verification run
- only force update when there has been data and take tab changes into account
The ranges extracted from the line masks were off.
Also some inputs to the extractor function were wrong.
Path results that are "Unreachable" are treated as success for now.
- First range of a bitmasks was always interpreted as 0
- Information retention had some edge cases mishandled
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants