Releases: epfl-lara/stainless
Releases · epfl-lara/stainless
Version 0.7.4 (2020-10-02)
Version 0.7.4 (2020-10-02)
Bug fixes
- Fix unapplyAccessor not instantiating with refinement type (#841)
- Remove duplicate serializations
Version 0.7.3 (2020-09-08)
Improvements
- Remove check that measure has good type at call site (this was making arguments of recursive functions being type-checked twice, and thus duplicating VCs)
- Instead, add check that mutually recursive functions have the same measure type
SplitCallBack
now processes mutually recursive functions together- Improve HTML output for type-checking derivation
Version 0.7.2 (31-08-2020)
Features
- Add
ListMap
implementation (associative list) (#794)
Improvements
- Remove type-checking tuple rule that was duplicating VCs (#792)
- Improve documentation on check/assert (#815)
- Add documentation for contracts on abstract functions (#825)
Bug fixes
- Fix
@induct
transformation for bounded-size integers (#804) - Add checks to reject programs not supported by Stainless (#810, #814)
- Fix type encoding translation error (#818)
- Fix issues on
@inlineInvariant
feature (#820) - Fix bug where Stainless could make an infinite loop in
isMutableClassType
(#824) - Fix "missing field" error in watch mode (#829)
- Fix bug in watch mode where errors from previous runs kept getting reported (#830)
- Fix bug in watch mode that made the verification report incomplete (#831)
Version 0.7.1 (17-06-2020)
Features
- Add
ListOps.noDuplicate
, and a contract forSet#toList
(#746) - Check match exhaustiveness in type checker (#737)
Improvements
- Rearrange debugging options (#781)
- Change StdOut print functions to handle Any (#761)
- Improve error reporting (#756)
- Add
@inlineInvariant
flag to ADT invariant dispatch method (#744) - Use static checks for
SetOps
methods (#742) - Recommend using Z3 4.8.6 instead of 4.7.1 (#741)
Bug fixes
- Fix
List#toScala
method (#778)
Version 0.7.0 (07-02-2020)
Features
- Enable
--type-checker
by default (#721) - Rework the termination checker to infer measures for recursive functions (#721)
Improvements
- Relax mutual recursion check for functions/ADTs enough for TypeEncoding (#721)
- Add
List#toScala
andList.fromScala
to the library (#708) - Add methods
map
,withFilter
,toList
, andtoScala
toSet
(#708) - Add methods
keys
,values
,toList
andtoScala
toMap
(#708)
Bug fixes
Version 0.6.2 (16-01-2020)
- Ensures invariants of ancestors cannot be weakened
- Limit parallelism when running stainless-actors tests
- Fix broken benchmark in TypeCheckerSuite
- Update Docker packaging script
Version 0.6.1 (13-11-2019)
Improvements
- Modularize Dockerfile and automate Docker image release process
- Specify version of extra deps when extracting sources from JAR
- Change name of target directory for extracted sources
Bug fixes
- Add missing @library annotation to stainless-algebra. Bump to 0.1.1
- Fix missing import in stainless-algebra. Bump to 0.1.2
Version 0.6.0 (07-11-2019)
Features
- Enable strict arithmetic by default (#608)
- Introduce
stainless.math.wrapping
method to opt-out of overflow checks (#608) - Add
@wrapping
annotation for function definitions (#608) - Add ability to resolve extra source dependencies via Coursier (#715)
- Erase values classes (#712)
- Expose
@invariant
flag to user-land (#712) - Lift invariants of value classes to a refinement type (#712)
- Implement
Map#--
for finite maps (#705) - Add
List.empty
method
Improvements
- Enforce overriding of abstract vals with constructor params (#712)
- Ensure soundness of invariants in TreeSanitizer (#712)
- Lift refinements in lets into assertions (#712)
- Update ScalaZ3 to its latest release (bundling Z3 4.7.1) (#707)
- Disallow defining classes within a class body (#697)
- Document type aliases and type members (#686)
- Ensure type parameters with non-trivial bounds are properly encoded (#685)
Bug fixes
Version 0.5.1 (12-09-2019)
Version 0.5.0 (12-09-2019)
Features
- Bump Scala version to 2.12.9 and update sbt to 1.3.0 (#629, #591)
- Add support for removing elements from Map (#688)
- Setting
stainlessEnabled := false
keeps both library sources and ghost elimination (#684) - Include Stainless library sources even when verification is disabled in sbt plugin (#680)
- Add --config-file option to specify or disable configuration file (#648)
Improvements
- Document type aliases and type members support (#686)
- Add Cont monad benchmark to model exceptions (#675)
- Make qed be of unit type with post-condition (#669)
- Do not consider built-in classes in override chain (#661)
- Induct flag only adds decreases check if type checker is enabled (#657)
- Improve position reporting for postconditions (#656)
- Remove warnings for asserts in extern functions (#651)
- Propagate @ghost annotation to variables introduced by calls to default copy getter (#643)