Skip to content

Latest commit

 

History

History
81 lines (68 loc) · 4.28 KB

CHANGELOG.md

File metadata and controls

81 lines (68 loc) · 4.28 KB

Changelog

Unreleased

24.08.30 - 2024-08-30

Fixed a bug that caused the Rust test cases to fail on Windows if the PATH environment variable was spelled Path (as is the case typically, but not in our CI environment).

24.08 - 2024-08-27

Breaking changes

We have made a number of breaking changes to make VeriFast sound with respect to the fact that C compilers perform optimizations based on a view of C as a high-level language, rather than as just a nicer syntax for assembly language:

See also the discussion at verifast#315 .

The VeriFast Tutorial has been updated.

Other changes

Many minor bug fixes and improvements, including:

  • Add support for default clauses in switch assertions and statements.
  • VeriFast IDE: Add Open Recent menu.
  • Add support for continue statements.
  • Add support for partially applied generic predicate constructors.
  • Add support for points-to chunks for bodyless structs.
  • Add support for struct expressions (a.k.a. struct literals).
  • Add basic support for multidimensional arrays.
  • Add support in the VeriFast IDE and the VSCode extension to verify just the current function.
  • Add lemma div_rem_nonneg_unique to bin/prelude.h.
  • The VSCode extension now essentially has feature parity with the IDE
  • Add the -assume_left_to_right_evaluation flag to allow postponing verification troubles that are due to C's unspecified evaluation order.
  • Add support for calloc.
  • Improved treatment of struct assignment.
  • Add support for stdarg.h, i.e. implementing varargs functions.
  • Add support for C11 _Generic expressions.

Preview features

  • VeriFast for C++: see the test cases at tests/cxx
  • VeriFast for Rust: see the test cases at tests/rust