Skip to content

Releases: epfl-lara/stainless

Stainless 0.9.3 (2022-02-25)

25 Feb 10:47
064c65c
Compare
Choose a tag to compare
Pre-release

Version 0.9.3 (2022-02-25)

GenC

  • Add cCode.noMangling annotation and split defines into header and C files
  • Propagate volatile and static keywords to struct fields
  • Avoid trimming of cCode.define functions
  • Introduce a binding to 'guard' against references created by the Referentiator (#1235)

Build

Stainless 0.9.2 (2022-01-17)

17 Jan 16:11
Compare
Choose a tag to compare
Pre-release

Version 0.9.2 (2022-01-17)

Stainless frontend, library and internals

  • Main list operations with Int instead of BigInt indices (#1225)
  • Scala 3 extraction frontend (#1216, scala-3.x branch only)
  • Adapt Coq build to 8.14.0 (#1198)
  • Improve handling of Enter key in watch mode (#1195)
  • Fix extraction of f => g style renamed imports (#1193)
  • Add sizes debug option to display size statistics after each phase (#1185)
  • Remove simplifications in VC building to avoid big slowdown (#1184)

GenC

  • Split header and C includes (#1204)
  • Better header extraction in GenC cCode.function annotation (#1203)
  • Extract header from manually defined definition in Genc (#1200)
  • Add missing assert cases in GenC deconstructors (#1199)
  • Bump sbt-assembly version, more parentheses and relax arrays checks in GenC (#1197)
  • Add support for initializing complex expressions with memset 0 (#1196)
  • Fix GenC duplicate reporting and add cCode.define annotation (#1192)
  • Fix some GenC export issues and add cCode.pack annotation (#1190)
  • Remove parentheses from dropped constants in GenC (#1189)
  • cCode.drop shouldn't always imply extern (#1188)
  • Use primitive equality for TypeDefType in GenC (#1187)
  • Fix typo in sizes debug output (#1186)

Documentation

  • Add documentation for some annotations and keywords (#1183)
  • Doc fixes (#1220)

Stainless 0.9.1 (2021-09-28)

28 Sep 12:14
5b7b3a0
Compare
Choose a tag to compare
Pre-release

Version 0.9.1 (2021-09-28)

Stainless frontend and internals

  • Add the &&& operator, which splits verification conditions.
  • Improve reporting when there are multiple require in inlined function
  • Add some benchmarks for full-imperative phase
  • Upgrade to Scala 2.13 (#1173)

GenC

  • Allow reference to old global state
  • Ignore opaque keyword in GenC inlining

Stainless 0.9.0 (2021-08-27)

27 Aug 12:21
Compare
Choose a tag to compare
Pre-release

Version 0.9.0 (2021-08-27)

Stainless frontend and internals

  • Add --full-imperative phase, for an imperative phase without aliasing restrictions (#1140)
  • Bug fixes in imperative phase (#1108, #1113, #1116, #1121, #1123)
  • Split Unchecked annotation into DropVCs and DropConjunct (#1125)
  • Fix ghost elimination for multiple parameter groups (#1138)
  • Fix timeout sometimes not being respected with non-incremental mode (no-inc: solver prefix) (#1141)
  • Bump sbt to 1.5.5 and add documentation for Windows (#1134)

GenC

  • Drop extern functions in GenC (#1114)
  • Disable mangling of fields for classes that are defined outside Stainless (#1115)
  • Add pure attribute to pure functions when compiling to C (#1119)
  • Split inline (for verification) and cCode.inline (for compilation) annotations (#1132)
  • Reorganize GenC annotations (#1129)
  • Bug fixes (#1124, #1133)

Stainless Noxt 0.8.1-1-g3c34688 (2021-07-21)

21 Jul 12:57
noxt-0.8.1-1-g3c34688
3c34688
Compare
Choose a tag to compare

Warning

The Stainless Noxt releases are custom built for the Rust Stainless project and are not meant to be used directly. Please use a standard Stainless release instead.

Stainless Noxt 0.8.1 (2021-06-23)

23 Jun 09:15
noxt-0.8.1
Compare
Choose a tag to compare
Pre-release

Warning

The Stainless Noxt releases are custom built for the Rust Stainless project and are not meant to be used directly. Please use a standard Stainless release instead.

Stainless 0.8.1 (2021-06-20)

21 Jun 14:49
Compare
Choose a tag to compare
Pre-release

Stainless frontend and internals

  • Better support for jumping to errors in IDEs (#966, #995, #996)
  • Add support for return keyword (#923, #925, #934)
  • Various fixes and changes in aliasing analysis (#915, #918, #920, #928, #965, #969, #973, #985, #1076, #1094)
  • Support for tuples with mutable types (#1064)
  • Add support for multiple requires in functions (not in ADTs) (#983)
  • Better measure inference for chain processor (#967)
  • Add more support for bitvector operations (#962, #1062)
  • Print verification progress but not all verification conditions by default (#1018)
  • Add support for swap operation for array elements (#946)
  • Add support for inlining and making opaque while loops (#1009)
  • Library cleanup (#953, #998, #999, #1000)
  • Add fresh copy primitive (#1033)
  • Improve @traceInduct and add clustering (#1052)
  • Add no-return invariants for while loops (#1079)

SMT solvers

  • Add support for CVC4 1.8 (#833)
  • Add support for Z3 4.8.10 (#1010)

GenC

  • Better support for @export annotation in GenC (#924, #1008, #1019)
  • Add StructInliningPhase to remove structs with one member in GenC (#1058, #1065)
  • Add support for fixed length arrays in GenC (#1055, #1057)
  • Add compilation of global state in GenC (#1085, #1089)

Stainless 0.8.0 (2021-02-24)

24 Feb 16:09
Compare
Choose a tag to compare
Pre-release

Version 0.8.0 (2021-02-24)

Features

  • Support for Scala 2.12.13 (#913)
  • Support for ghost fields in GenC (#904, #907)
  • Initial support for unsigned integers in GenC (#888)

Bug fixes

  • Fix issues watch mode (and add support for Enter key to reload) (#906)
  • Better support for refinement types in type-checker
  • Various bug fixes in extraction phases

Stainless 0.7.6 (2021-01-18)

19 Jan 11:50
Compare
Choose a tag to compare
Pre-release

Features

  • Add GenC component from Leon (#885)
  • Add frontend for more bitvector types and operations (#879)

Improvements

  • Inox dependency is now directly on GitHub

Bug fixes

  • Fix some issues in imperative phase (#874) and type encoding (#884)

Version 0.7.5 (2020-11-27)

28 Nov 06:28
Compare
Choose a tag to compare
Pre-release

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