Releases: AdaCore/RecordFlux
Releases · AdaCore/RecordFlux
v0.26.0
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
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
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 tomachine
in specifications (eng/recordflux/RecordFlux#1772) - Rename
Session
keyword toMachine
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
ofrflx generate
subcommand (eng/recordflux/RecordFlux#1766) - CLI option
--timeout
ofrflx generate
andrflx optimize
subcommands (eng/recordflux/RecordFlux#1766) Initialize
andFinalize
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
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
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
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
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
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
Added
- Pragma marking all generated files as Ada 2012 (#1293, eng/recordflux/RecordFlux#1509)
--no-caching
option torflx
(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 ofrflx validate
- Misleading CLI output about verification (#1295, eng/recordflux/RecordFlux#1522)
v0.17.0
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)