Skip to content

Releases: apalache-mc/apalache

v0.15.1

05 Apr 00:44
Compare
Choose a tag to compare

0.15.1

Features

  • Manual: added a tutorial on the type checker Snowcat, see #689
  • Language manual: add types for the standard operators, see #547
  • Type checker: add support for type aliases,
    e.g., @typeAlias FOO = [a: Int, b: Int], see #704
  • Manual: updated the HOWTO on type annotations with type aliases

v0.15.0

29 Mar 18:04
Compare
Choose a tag to compare

0.15.0

Features

  • Model checker: receiving the types from with the type checker Snowcat, see #668 and #350
  • Model checker and type checker: Snowcat is the only way to compute types now
  • Type checker: the old Apalache type annotations are no longer supported, see #668
  • Type checker: tagging all expressions with the reconstructed types, see #608
  • Type checker: handling TLA+ labels like lab("a", "b") :: e, see #653
  • Type checker: always treating <<...>> in UNCHANGED <<...>> as a tuple, see #660
  • Type checker: handling the general case of EXCEPT, see #617
  • Preprocessing: handling the general case of EXCEPT, see #647

Changed

  • Preprocessing: massive refactoring of the passes to support types. This may have introduced unexpected bugs.
  • Model checker: translation rules for records and functions have been modified, in order to support new types. Bugs to
    be expected.
  • Intermediate representation: renamed BmcOper to ApalacheOper. Its operators have the prefix Apalache! now.

Removed

  • Unused rewriting rules and FailPredT in the model checker, see #665
  • Intermediate representation: removed non-standard operators subsetProper, supset, supseteq, see #615
  • Intermediate representation: removed TlaArithOper.{sum,prod}, as they are not standard, see #580
  • Intermediate representation: removed TlaOper.chooseIdiom

v0.11.0

01 Mar 16:05
Compare
Choose a tag to compare

0.11.0

Features

  • Type checker: supporting TLC operators, see #601

Bug fixes

  • Parser: propagating type annotations in INSTANCES, see #592 and #596

Removed

  • Type checker: removed Typing.tla, AssumeType, and ##, see #518

v0.10.1

22 Feb 11:24
Compare
Choose a tag to compare

0.10.1

Features

  • Support for FunAsSeq conversion in the type checker, see #223
  • The parser outputs annotations, see #502

Documentation

  • HOWTO on writing type annotations, see #571

Bug fixes

  • Fixed name collisions on LOCAL operators and LOCAL INSTANCE, see #576
  • Parser: a higher-order operator calling a higher-order operator, see #575
  • Type checker: support for recursive functions of multiple arguments, see #582
  • Type checker: support for tuple unpacking in recursive functions, see #583

v0.10.0

08 Feb 13:45
Compare
Choose a tag to compare

0.10.0

Features

  • integration with Java-like annotations in comments, see #504
  • support for Assume(...) in the type checker
  • new command-line option for typecheck:
    • enable inference of polymorphic types: --infer-poly
  • updates to ADR002 and the manual
  • support for parallel assignments <<x', y'>> = <<1, 2>>, see #531
  • always sorting declarations with topological sort (changes the order of the operator definitions), see #122

Bugfixes

  • Boolean values are now supported in TLC config files, see #512
  • Promoting Desugarer to run as the first preprocessing pass, see #531
  • Proper error on invalid type annotations, the parser is strengthened with Scalacheck, see #332
  • Fixed a parsing bug for strings that contain '-', see #539
  • Typechecking quantifiers over tuples, see #482

v0.9.0

01 Feb 11:29
Compare
Choose a tag to compare

0.9.0

Features

  • new sequential model checker that is using TransitionExecutor, see #467
  • new command-line options, see #467 and the manual for details:
    • choose the algorithm: --algo=(offline|incremental)
    • pre-check, whether a transition disabled, discard the disabled transitions: --discard-disabled
    • do not check for deadlocks: --no-deadlock
    • pass tuning parameters in CLI: --tune-here
  • parsing in-comment Java-like annotations, see #226
  • tracking the source of variable/constant declarations and operator
    definitions in the TLA+ Parser, see #262

Bug fixes

  • the new sequential model checker has uncovered a bug that was not found
    by the old model checker, see #467

Documentation

  • ADR004: In-comment annotations for declarations (of constants, variables, operators)

v0.8.3

28 Jan 17:08
Compare
Choose a tag to compare

0.8.3

Bug fixes

  • Fixed path of jar in ZIP distribution, reported in #500, see #506

v0.8.2

25 Jan 16:55
Compare
Choose a tag to compare

0.8.2

Bug fixes

  • handling big integers, see #450
  • better parsing of SPECIFICATION in TLC configs, see #468
  • expanding tuples in quantifiers, see #476
  • unfolding UNCHANGED for arbitrary expressions, see #471
  • unfolding UNCHANGED <<>>, see #475

Features

  • constant simplification over strings, see #197
  • propagation of primes inside expressions,
    e.g., (f[i])' becomes f'[i'] if both f and i are state variables

v0.8.1

19 Jan 21:46
Compare
Choose a tag to compare

Bug fixes

  • critical bugfix in unique renaming, see #429
  • include missing {Apalache,Typing}.tla modules in release package, see #447

Features

  • opt-in for statistics collection (shared with TLC and TLA+ Toolbox), see #288

Architecture

  • new layer of TransitionExecutor (TRex), see at.forsyte.apalache.tla.bmcmt.trex.*

Documentation

v0.8.0

05 Jan 22:12
05dfdb8
Compare
Choose a tag to compare

0.8.0 [RELEASE]

  • use openjdk-9 for deterministic Apalache Docker images, see #318
  • support for advanced syntax in TLC configs, see #208
  • random seed for z3, see docs/tuning.md and #318
  • correct translation of chained substitutions in INSTANCEs, see #143
  • friendly messages for unexpected expressions, see #303
  • better operator inlining, see #283
  • support for standard modules that are instantiated with LOCAL INSTANCE, see #295
  • support for LAMBDAs, see #285 and #289
  • bugfix in treatment of recursive operators, see #273
  • no theories in the model checker due to types, see #22
  • operators and checker caches made Serializable
  • better diagnostics for the recursive operators, see #272
  • verbose output for the config parser, see #266
  • Use a staged docker build, reducing container size ~70%, see #195
  • Use Z3-TurnKey instead of a
    bespoke Z3 build, see #219
  • Use Z3 version 4.8.7.1, see #219
  • Re-stabilized tests on recursive operators, see #344
  • Changed the assignment paradigm; solver now finds assignments without SMT, see #366