Skip to content

v4.4.2 (August 2024 release)

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 11 Sep 18:38
6395b51

Release 2024.8

Date 31/08/24

Changes in Viper Language

  • Domain axioms can now refer to functions that have decreases clauses (but no preconditions) viperproject/silver#802

API Changes and Internal Improvements

Bug Fixes

Backend-specific Upgrades/Changes

Symbolic Execution Backend (Silicon)

  • Added experimental support for (command line) verification debugging. With the new option --enableDebugging, users can see the state (store, heap, branch conditions and assumptions) in a format that that can be understood on the Viper level (avoiding internal Silicon concepts) at the point where a verification error occurs, locally assert or assume expressions to debug the error, and change SMT solver options. viperproject/silicon#863
  • Soundness fixes:
  • Completeness improvements:
  • Performance improvements:
    • Improved snapshot map caching for quantified permissions (also improves completeness) viperproject/silicon#846
    • Avoiding creating new snapshot maps for quantified resources when unnecessary viperproject/silicon#839
    • Eagerly assuming non-aliasing for quantified field chunks viperproject/silicon#835
    • More efficient function axiomatization for functions with many branches viperproject/silicon#808
    • Flexible path joining options:
      • With command line argument --moreJoins=1, Silicon joins only branches stemming from impure implications (immediately after branching). With --moreJoins=2 it joins all branches, including branches stemming from program control flow, at the earliest possible point. viperproject/silicon#823
      • The new annotation @moreJoins(n), with n bein 1 or 2 as just described, can be used to enable path joining on a per-method level viperproject/silicon#823
    • More flexible state consolidation:
  • Other improvements:

Verification Condition Generation Backend (Carbon)

Based on