Skip to content

Releases: AdaCore/RecordFlux

v0.26.0

19 Dec 17:04
Compare
Choose a tag to compare

Added

  • Style check for unsigned integer syntax (eng/recordflux/RecordFlux#1775)
  • Support for SPARK Pro 25.0 (eng/recordflux/RecordFlux#1823)
  • Support for GNAT Pro 25.0 (eng/recordflux/RecordFlux#1823)
  • rflx doc subcommand to open packaged HTML documentation (eng/recordflux/RecordFlux#1822)

Fixed

  • Keyword highlighting in GNAT Studio and VS Code (eng/recordflux/RecordFlux#1815)

v0.25.0

05 Nov 12:53
Compare
Choose a tag to compare

Added

  • Support for Python 3.12 (eng/recordflux/RecordFlux#1806)

Removed

  • Support for Python 3.8 (eng/recordflux/RecordFlux#1359)

Fixed

  • Rejection of invalid parameter types and return types in function declarations (#977, eng/recordflux/RecordFlux#977)
  • Consequential errors caused by undefined variables in binary expressions (eng/recordflux/RecordFlux#1672)
  • Rejection of variable declarations with type Opaque (#633, eng/recordflux/RecordFlux#633)
  • Fatal error caused by variable in case expression (eng/recordflux/RecordFlux#1800)
  • Simplification of expressions with a unary minus operator (eng/recordflux/RecordFlux#1595, eng/recordflux/RecordFlux#1797)
  • Evaluation of unary minus applied to binary expressions (eng/recordflux/RecordFlux#1797)
  • Fatal errors caused by missing locations (eng/recordflux/RecordFlux#1785)

Changed

  • Remove unused Buffer arguments in generated code (eng/recordflux/RecordFlux#1802)
  • Remove unnecessary part of Valid_Context predicate (eng/recordflux/RecordFlux#1802)

v0.24.0

12 Sep 15:49
Compare
Choose a tag to compare

Added

  • Vim and Neovim syntax highlighting support (eng/recordflux/RecordFlux#1749)
  • Project file support in code optimizer (eng/recordflux/RecordFlux#1766)

Changed

  • CLI subcommand rflx optimize expects project file instead of directory containing generated code (eng/recordflux/RecordFlux#1766)
  • Improve generation of predicate for single-field messages (eng/recordflux/RecordFlux#1761)
  • Rename Session to State Machine in documentation (eng/recordflux/RecordFlux#1772)
  • Rename session keyword to machine in specifications (eng/recordflux/RecordFlux#1772)
  • Rename Session keyword to Machine in integration files (eng/recordflux/RecordFlux#1772)
  • Rename *_Functions.Context to *_Environment.State to prevent confusions (eng/recordflux/RecordFlux#1769)
  • Exception transitions are required in more cases as result of fixing missing checks in state machine (eng/recordflux/RecordFlux#1704)

Removed

  • CLI flag --optimize of rflx generate subcommand (eng/recordflux/RecordFlux#1766)
  • CLI option --timeout of rflx generate and rflx optimize subcommands (eng/recordflux/RecordFlux#1766)
  • Initialize and Finalize functions for session functions context (eng/recordflux/RecordFlux#1768)

Fixed

  • Generation of uncompilable code for messages with variable as field condition (eng/recordflux/RecordFlux#1762)
  • Missing checks in state machine to improve provability (eng/recordflux/RecordFlux#1704)
  • Copying of sequence fields for external IO buffers (eng/recordflux/RecordFlux#1704)
  • Syntax highlighting for identifiers with numbers or keywords (#1301, eng/recordflux/RecordFlux#1776)
  • Fatal errors caused by missing locations after proof timeouts (eng/recordflux/RecordFlux#1782)
  • Fatal errors when generating code for list comprehensions without condition or True condition (#1302, eng/recordflux/RecordFlux#1786)

v0.23.0

23 Aug 10:16
Compare
Choose a tag to compare

Changed

  • Enhance diagnostics when a message parameter is not a scalar (eng/recordflux/RecordFlux#1740)
  • Improve diagnostics phrasing (eng/recordflux/RecordFlux#1714)
  • Enhance diagnostics when a message field and its type have a size aspect (eng/recordflux/RecordFlux#1746)

Fixed

  • Generic setters for opaque fields
  • Separation of externally defined functions from state machine (#1032, eng/recordflux/RecordFlux#1032)
  • Missing checks in state machine to improve provability (eng/recordflux/RecordFlux#1704)

v0.22.0

18 Jul 11:20
Compare
Choose a tag to compare

Added

  • Support for FSF GNAT 14.1 (eng/recordflux/RecordFlux#1679)
  • New error message format (eng/recordflux/RecordFlux#1582)
  • CLI flag --legacy-errors to restore previous error message format (eng/recordflux/RecordFlux#1685)
  • Info message for skipped verifications (eng/recordflux/RecordFlux#1723)
  • Possibility to use externally defined IO buffers in state machines (eng/recordflux/RecordFlux#1496)

Changed

  • Display message fields involved in a cycle (#256, eng/recordflux/RecordFlux#256)
  • Software license from AGPL-3.0 to Apache-2.0 (eng/recordflux/RecordFlux#1671)
  • LLVM exception in addition to Apache-2.0 for generated code (eng/recordflux/RecordFlux#1671)
  • Cache directory from $HOME/.cache/RecordFlux to $PWD/.rflx_cache (eng/recordflux/RecordFlux#1723)
  • Severities of error messages (eng/recordflux/RecordFlux#1698, eng/recordflux/RecordFlux#1685, eng/recordflux/RecordFlux#1701)
  • Improve suggestions when a package name is not correct (eng/recordflux/RecordFlux#1611)
  • Improve several error messages (eng/recordflux/RecordFlux#1638, eng/recordflux/RecordFlux#1648, eng/recordflux/RecordFlux#1660, eng/recordflux/RecordFlux#1661, eng/recordflux/RecordFlux#1662, eng/recordflux/RecordFlux#1663, eng/recordflux/RecordFlux#1681, eng/recordflux/RecordFlux#1703, eng/recordflux/RecordFlux#1708, eng/recordflux/RecordFlux#1713, eng/recordflux/RecordFlux#1720, eng/recordflux/RecordFlux#1721)
  • Improve implementation of Field_First_Internal function (eng/recordflux/RecordFlux#1707, eng/recordflux/RecordFlux#1706)

Fixed

  • Bug box for aspect without expression (eng/recordflux/RecordFlux#1555, eng/recordflux/RecordFlux#1559)
  • Bug box for division and modulo by 0 in numeric expression (eng/recordflux/RecordFlux#1556)
  • Bug box for unary - preceding unary + in expression (eng/recordflux/RecordFlux#1558)
  • Bug box for missing operand (eng/recordflux/RecordFlux#1560)
  • Bug box for negated expressions (eng/recordflux/RecordFlux#1561, eng/recordflux/RecordFlux#1569)
  • Bug box for duplicated operator (eng/recordflux/RecordFlux#1562)
  • Bug box for link to missing field (eng/recordflux/RecordFlux#1566)
  • Show bug box on fatal errors in the language server (eng/recordflux/RecordFlux#1666)
  • Infinite recursion for duplicate declaration (eng/recordflux/RecordFlux#1557)
  • Corruption of verification cache (eng/recordflux/RecordFlux#1655, eng/recordflux/RecordFlux#1718)

v0.21.0

24 Apr 14:19
Compare
Choose a tag to compare

Changed

  • Improve error messages for type refinements of non-message types (#383, eng/recordflux/RecordFlux#383)

Fixed

  • Generation of uncompilable code in the presence of some Boolean conditions (eng/recordflux/RecordFlux#1365)
  • Exception when checking specification in GNAT Studio (eng/recordflux/RecordFlux#1492)

v0.20.0

26 Mar 17:06
Compare
Choose a tag to compare

Added

  • Possibility to use multiple initial links in messages to allow the first message field to be defined by parameter values (#764, eng/recordflux/RecordFlux#764)

Changed

  • Improve performance of code optimizer (requires SPARK 25; eng/recordflux/RecordFlux#1533)

Fixed

  • Parsing of messages that depend on fraction comparisons in PyRFLX (#981, eng/recordflux/RecordFlux#981)
  • Installation of VS Code extension (eng/recordflux/RecordFlux#1544)

v0.19.0

29 Feb 16:25
Compare
Choose a tag to compare

Added

  • Prevent different casings for same entity (#563, eng/recordflux/RecordFlux#563)
  • Code optimizer that removes unnecessary checks in generated state machine code (eng/recordflux/RecordFlux#1525)

Fixed

  • Unexpected errors when using different casings for same entity (#562, eng/recordflux/RecordFlux#1506)

v0.18.0

30 Jan 10:37
Compare
Choose a tag to compare

Added

  • Pragma marking all generated files as Ada 2012 (#1293, eng/recordflux/RecordFlux#1509)
  • --no-caching option to rflx (eng/recordflux/RecordFlux#1488)
  • Model verification caching to validator

Changed

  • Insert/Extract functions accept Byte array instead of access type (eng/recordflux/RecordFlux#1515)

Fixed

  • Various inaccuracies in Language Reference (#958, eng/recordflux/RecordFlux#958)
  • Erroneous acceptance of consecutive / trailing underscores (eng/recordflux/RecordFlux#1468)
  • Fatal error when digit in numeric literal exceeds base (eng/recordflux/RecordFlux#1469)
  • Fatal error when unsupported base is used in numeric literal (eng/recordflux/RecordFlux#1470)
  • Missing diagnostics provided by language server
  • --split-disjunctions options of rflx validate
  • Misleading CLI output about verification (#1295, eng/recordflux/RecordFlux#1522)

v0.17.0

03 Jan 12:19
Compare
Choose a tag to compare

Fixed

  • Fatal error when comparing opaque fields (#1294, eng/recordflux/RecordFlux#1497)
  • Fatal error when GraphViz is missing (eng/recordflux/RecordFlux#1499)
  • Missing rejection of sequences of parameterized messages (eng/recordflux/RecordFlux#1439)

Removed

  • Verification of message bit coverage (eng/recordflux/RecordFlux#1495)