Lingua Franca 0.3.0
v0.3.0 (2022-07-22)
Highlights
This release adds broader support for methods (C and Python), syntax for annotations similar those in Java, an adaptive scheduler in the C runtime, and a new platform
target property to furnish support for specialized execution platforms.
🚀 New Features
- Support for C methods #1215 (@edwardalee)
- Support for Python methods #1230 (@Soroosh129)
- Adaptive scheduler for C target #1207 (@petervdonovan)
- Platform target property #1246 (@Soroosh129)
- Annotations #977 (@lsk567)
✨ Enhancements
- New handling of startup/shutdown/reset reactions in modes #1169 (@a-sr)
- Diagram layout improvements #1206 (@a-sr)
- History transitions are now indicated using the
history
keyword #1247 (@a-sr) - Compile warnings are fixed and clang-tidy is ran when compiling C++ tests in CI #1259 (@cmnrd)
- New design for reset symbols in diagrams #1241 (@a-sr)
- Improvements of mode diagram layout #1282 (@a-sr)
- [cpp] Additional checks to determine whether a subdirectory should be included in compilation #1283 (@cmnrd)
- [cpp] CLI parser errors are caught and a print help message is printed #1288 (@cmnrd)
- [ts] Handling of physical action-triggered outputs in federated execution (previously handled by TAN - Time Advance Notice) #1275 (@hokeun)
🔧 Fixes
- TAN messages no longer used and in-transit messages recorded in the RTI #1074 (@Soroosh129)
- [c] A deadline of
0
is no longer interpreted as an absent deadline but one that can never be met #1217 (@billy-bao) - Fix for deadlock in federated execution #1189 (@Soroosh129)
- [c] Removal of STP violation inheritance mechanism #1251 (@Soroosh129)
- Fix for properly handling paths with spaces in lfc launch script #1257 (@cmnrd)
- Fix that repairs the ability to execute commands with Bash in case command is not found on path #1265 (@petervdonovan)
- Fix to not include downstream reactions in highlighted cycles #1270 (@edwardalee)
- Correction of misplacement of self loops in diagrams #1274 (@a-sr)
- Fix that silences spurious error messages from Pylint #1280 (@petervdonovan)
- Patch that avoids NullPointerException in
CompileActionHandler
#1267 (@lhstrh) - Do not minimize the shadow jar #1285 (@cmnrd)
- Fix for
ASTUtils.width()
returnning-1
even when the width can be inferred from connections #1287 (@hokeun) - Fix banks of modal reactors #1279 (@a-sr)
- Ensure that reactions consistently trigger banks #1289 (@edwardalee)
- Cpp: fix triggering of reactions in multiple nested reactors #1286 (@cmnrd)
- Fix to ensure the ordering of reactions relative to modes is correct #1303 (@a-sr)
🚧 Maintenance and Refactoring
- Machine-applicable refactorings #1224 (@petervdonovan)
- Inclusion of reactor-rs as a submodule #1296 (@cmnrd)
⬆️ Updated Dependencies
Submodule lf-lang/reactor-c
✨ Enhancements
- New handling of startup/shutdown/reset reactions in modes #79 (@a-sr)
- STP violations now result in error messages #82 (@edwardalee)
- Removal of TAN messages and new capability to record in-transit messages in the RTI #61 (@Soroosh129)
🔧 Fixes
- Patch to ensure that deadlines with zero delay are never met #86 (@billy-bao)
Submodule lf-lang/reactor-cpp
✨ Enhancements
- Nix tooling expanded with cachegrind, callgrind, and memtest #13 (@revol-xut)
- Relocation of
unistd.h
andexecinfo.h
includes to void namespace pollution #14 (@erlingrj) - Fixes that addresses warnings reported by clang-tidy #15 (@cmnrd)
- Optimized port communication for scalar types #17 (@cmnrd)
🔧 Fixes
Submodule lf-lang/reactor-rs
- No Changes
Submodule lf-lang/reactor-ts
🚀 New Features
- JSON serialization #99 (@CloverCho)
🧪 Tests