Skip to content

Add block granularity progress indication - #262

Closed
trktby wants to merge 99 commits into
viperproject:masterfrom
trktby:quantifiers_and_selective
Closed

Add block granularity progress indication#262
trktby wants to merge 99 commits into
viperproject:masterfrom
trktby:quantifiers_and_selective

Conversation

@trktby

@trktby trktby commented Sep 3, 2024

Copy link
Copy Markdown

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.

Cedric 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
hegglinc and others added 26 commits March 6, 2023 10:23
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
@Aurel300

Aurel300 commented Apr 4, 2026

Copy link
Copy Markdown
Member

Superseded by #264.

@Aurel300 Aurel300 closed this Apr 4, 2026
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