Releases: apalache-mc/apalache
Releases · apalache-mc/apalache
v0.15.1
0.15.1
Features
v0.15.0
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
<<...>>
inUNCHANGED <<...>>
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
v0.10.1
v0.10.0
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
- enable inference of polymorphic types:
- 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
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
- choose the algorithm:
- 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
v0.8.2
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
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
- Compile the manuals into a static
site using
mdBook, see #400 - Description of top-level user operators, see #419
- ADR003: Architecture of TransitionExecutor
v0.8.0
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