4.7.0-SNAPSHOT Release
Pre-release
Pre-release
This is the snapshot release of the upcoming 4.7.0 release of VDMJ.
Note: the release removes the classes and methods deprecated in the 4.5.0 release.
VDMUnitlibraries now include@NoPOGannotations- The POG view is corrected so that dynamic changes to the specification are visible to QuickCheck
- The
vsix.shscript allows a patch to change the version of VDMJ artifacts - More operation POs are now analysable by QuickCheck
- A new code lens has been added for launching PO counterexamples "inline"
- The QC timeout is now in milliseconds - remember to update your
.vscode/quickcheck.json MAYBEQC results now check for PO variables that may not have been reasoned about, as a warning.- The
MAYBEheuristic above is added to a "reasons" strategy for QC - A new "constants" QC strategy uses PO constants to bias counterexample searching.
- VSCode stack traces now correctly show location of lower frames, and hidden variables are displayed correctly.
- Operation POs are now considerably improved, generating multiple POs for alternative paths.
- A new
@LoopInvariantobligation produces POs for while loops. - Operation postcondition POs are now handled correctly, with old/new state values.
- A new
lsp.noIgnoreWarningsproperty has been added to suppress ignored file warnings from LSP. - Corrected non-deterministic statement POContext handling.
- Improved support for
@LoopInvariantannotation and POs. - Extended "undefined" boolean handling to cover
forallandexistsexpressions. - Improved POG coverage of various loop types.
- Added
@LoopGhostannotation for for-all and for-pattern loop statements. - Added
@TypeBindannotation for manually instrumentingforallandexistsexpressions, as QC does for POs. - Added
@LoopMeasureannotation for loop termination checks. - Added a
pogcommand to the VDM-VSCode console, for convenience. - Added a
remoteexample project for theRemoteControlinterface, based on the Conway GUI. - Added
MATH'defined: ? +> boolto help with undefined booleans. - Updated POG to replace (some) op call ambiguous cases with
forallcontexts. - Fixed bug #76
- Updated POG to cover most op calls with
forallcontexts. - Increased the POG GUI timeout to 5s, to allow for longer operation PO checking.
- Tolerate various QC exceptions in VDM++/RT and treat as
MAYBEresults. - Added
@MaximalTypesand@SetPropertyannotations. - Fixed bug #77 - to rationalise the quoting convention for toStrings throughout.
- Added a "Free Variables" scope in the stack display of lambda value executions.
- Removed
@LoopGhostand allow other loop annotations to pass a ghost name. - Corrected loop POs to include a path where the loop is not entered.
- Calculate transitive closure of operations' updates to state to generate better POs.
- Better POG support for specification statements
- Limit POG path expansion for very complex operations
- Fixed QC of implicit function calls and some PP/RT constructor cases
- Added
@OperationMeasureannotation - Support mutual recursive loops with
@OperationMeasure - Added a more detailed display of counterexample steps
- Interleave counterexample analysis with PO source after QC.
- Add
pogdepcommand to display POs dependent on a constraint symbol - POG generation has progress and cancel button in VSCode
- New
Dep POscode lens to filter POG to the POs that are dependent on constraints - New button for opening POG directly
- The source of POs can now be copied in VSCode
- Various changes to support VSCode POG improvements