Releases: epfl-lara/stainless
Releases · epfl-lara/stainless
Version 0.7.5 (2020-11-27)
Version 0.7.5 (2020-11-27)
Features
- Add
admit-vcs
option to generate VCs without sending them to the solver - Add support for indexed types in scalac frontend
Improvements
- Generalize specification helpers (#828)
Bug fixes
- Remove unsound type-checking rule for function types, and add subtying rules instead
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)