Skip to content

Releases: lf-lang/lingua-franca

Lingua Franca Nightly

18 Jun 05:08
95b9465
Compare
Choose a tag to compare
Lingua Franca Nightly Pre-release
Pre-release
Merge pull request #2321 from lf-lang/fix-uninstall-gcc-macos

Stop removing GCC on MacOS in CI

Lingua Franca 0.7.2

21 May 06:12
v0.7.2
d420191
Compare
Choose a tag to compare

v0.7.2 (2024-05-20)

Highlights

This release includes patches of the C runtime only.

Submodule lf-lang/reactor-c

✨ Enhancements

🔧 Fixes

  • Fixed preprocessor directives for clock sync #425 (@edwardalee)
  • Zephyr: Reset sleeping semaphore and correctly check its return values #431 (@erlingrj)

Submodule lf-lang/reactor-cpp

  • No Changes

Submodule lf-lang/reactor-rs

  • No Changes

Lingua Franca 0.7.1

17 May 23:08
v0.7.1
d9e9bc6
Compare
Choose a tag to compare

v0.7.1 (2024-05-17)

Highlights

This patch release includes bugfixes that address imports, tracing plugins, clock synchronization, and code generation issues.

🔧 Fixes

  • Search for imported reactors to include reactors instantiated in modes #2277 (@erlingrj)
  • Extensions to the trace-plugin property #2275 (@erlingrj)
  • Set annotated layout options for modes. #2267 (@soerendomroes)
  • Fixed code generation for nested generic reactor instances #2284 (@cmnrd)
  • Code-generator changes required for reactor-c clock-sync fix #2285 (@erlingrj)

Submodule lf-lang/reactor-c

🔧 Fixes

Submodule lf-lang/reactor-cpp

  • No Changes

Submodule lf-lang/reactor-rs

  • No Changes

Lingua Franca 0.7.0

01 May 22:31
v0.7.0
f3af75b
Compare
Choose a tag to compare

v0.7.0 (2024-05-01)

Highlights

This release includes several new features, enhancements, fixes, and maintenance/refactoring updates. Notable additions include a new Plugin API for tracing, improved support for Zephyr, and enhancements of the Docker support. Fixes address issues like path conversion on Windows and null pointer exceptions in message reporting. Maintenance efforts focus on test stabilization and dependency updates, with notable enhancements to documentation and codebase cleanliness. Additionally, enhancements and fixes are applied to the reactor-c and reactor-cpp runtime, with updates to platform APIs, memory management, and bug fixes related to tracing and enclave programs. Caution: Breaking changes are included in reactor-c's support for federated execution.

🚀 New Features

✨ Enhancements

🔧 Fixes

🚧 Maintenance and Refactoring

⬆️ Updated Dependencies

Submodule lf-lang/reactor-c

🚀 New Features

  • Plugin API for tracing #342 (@petervdonovan)
  • Extend platform API with functions for setting thread scheduling policy, core affinity and priority + remove C11 as platform #355 (@erlingrj)

✨ Enhancements

  • Use Zephyr's CMake extension to correctly build and link reactor-c #339 (@erlingrj)
  • Put a single event on the recycle queue initially to avoid runtime malloc #351 (@erlingrj)
  • Add address query reply message #369 (@Jakio815)
  • Print more info when assertion fails #376 (@erlingrj)
  • Use SI units in reporting human-readable time #380 (@edwardalee)
  • Zephyr make kernel clock default + improvements #400 (@erlingrj)
  • Improve handling of timeouts when federates connect to RTI/each other #407 (@erlingrj)
  • Unit testing of thread scheduling API + additional fixes #416 (@erlingrj)

🔧 Fixes

🚧 Maintenance and Refactoring

📖 Documentation

Submodule lf-lang/reactor-cpp

🔧 Fixes

  • Fixed bug that arises when enabling tracing in programs with enclaves. [#55](https://gith...
Read more

Lingua Franca 0.6.0

26 Jan 16:14
v0.6.0
53c0d4b
Compare
Choose a tag to compare

v0.6.0 (2024-01-26)

Highlights

This release improves the federated execution capability, makes the handling of target properties more modular and robust, and provides various bugfixes and small enhancements.

🚀 New Features

  • Usage of high-resolution counter device on Zephyr boards. Update to v3.4.0 #2007 (@erlingrj)
  • Bracket list expression for initialization without escaping #2003 (@oowekyala)
  • [C] Self struct made available to initializers of state variables, parameters #2014 (@OmerMajNition)
  • New --no-source-mapping switch to disable line directives #2092 (@lhstrh)
  • Ability to specify rti image for dockerized federated programs #2144 (@lhstrh)

✨ Enhancements

🔧 Fixes

🚧 Maintenance and Refactoring

  • Apply spotbugs plugin #2005 (@cmnrd)
  • Cleaned up test code to fix all test related spotbugs warnings #2006 (@cmnrd)
  • Remove deprecated C schedulers++ #2037 (@erlingrj)
  • Removal of ulog from reactor-ts, code generator updated to allow this change #2052 (@axmmisaka)
  • Refactoring of target properties and their validation #2008 (@lhstrh)
  • The 'threading' CLI option/build param/target property changed to 'single threaded' #1817 (@patilatharva)
  • Minimal changes to merge reactor-c enclaves #2095 (@erlingrj)
  • Fix file structure for future networks option #2070 (@Jakio815)
  • Fix minimum spacing of actions and reference to freed event #2128 (@edwardalee)

📖 Documentation

🧪 Tests

⬆️ Updated Dependencies

Submodule lf-lang/reactor-c

🚀 New Features

✨ Enhancements

  • Use real-time sockets in federated execution #274 (@erlingrj)
  • Progress towards Python 3.11 support #255 (@cmnrd)
  • Use env command rather than /usr/bin/python3 #297 (@edwardalee)
  • Priority queue refactoring #306 (@edwardalee)
  • Detect ZDC in RTI and issue PTAG only for nodes in ZDC #311 (@edwardalee)
  • Add an option for specifying the time interval of showing messages to the tracing visualizer #320 (@byeong-gil)
  • Various bugfixes and cleanups in the support for federated programs #323 (@edwardalee)

🔧 Fixes

Read more

Lingua Franca 0.5.1

13 Sep 05:31
v0.5.1
4bc071f
Compare
Choose a tag to compare

v0.5.1 (2023-09-12)

Highlights

This release addresses several issues in the C code generator and fixes Docker support for federations.

✨ Enhancements

  • Avoid squeezing reaction, method, or preamble bodies onto a single line #1984 (@petervdonovan)

🔧 Fixes

  • Fix for setting federates' bank index #1989 (@petervdonovan)
  • Default hostname for RTI in dockerized federation changed from "localhost" to "rti" #1993 (@byeong-gil)
  • Fix for unconnected multiport and bank reactor bug #1953 (@OmerMajNition)

🚧 Maintenance and Refactoring

  • Gradlew not longer used to run dev version of lf cli tools #1988 (@axmmisaka)
  • More robust dev scripts and removed util directory #1995 (@cmnrd)

🧪 Tests

  • Tests for lf_set_array and persistent inputs #1987 (@edwardalee)
  • Minor fixes for C++ tests #1979 (@revol-xut)

Submodule lf-lang/reactor-c

  • No Changes

Submodule lf-lang/reactor-cpp

  • No Changes

Submodule lf-lang/reactor-rs

  • No Changes

Lingua Franca 0.5.0

02 Sep 05:25
v0.5.0
a1bcf3b
Compare
Choose a tag to compare

v0.5.0 (2023-09-01)

Highlights

This release introduces new syntax for initializers, includes a renovation of the C backend to let it generate more modular code, and brings new features like a watchdog construct, support for generics in C, support for SMT-solver-based formal verification using UCLID-5, and bare-iron support for the Raspberry Pi Pico platform.

🚀 New Features

✨ Enhancements

  • Keeplive natively inferred in the C++ runtime #1630 (@cmnrd)
  • File access #1715 (@edwardalee)
  • Validator rules to check if target supports federation or inheritance #1726 (@cmnrd)
  • No more space inserted after interleaved keyword by formatter #1846 (@cmnrd)
  • More natural syntax for reaction declarations #1853 (@lhstrh)
  • Fix for extra whitespace around info messages #1879 (@oowekyala)
  • TypeScript runtime bumped to v0.5.0 #1927 (@byeong-gil)
  • Support for named and bodyless reactions in C++ #1933 (@cmnrd)
  • Added layout annotation to add arbitrary layout options an elements #1951 (@soerendomroes)

🔧 Fixes

🚧 Maintenance and Refactoring

  • Migration of Epoch into separate repository #1482 (@a-sr)
  • Improved CLI argument handling using picocli #1534 (@patilatharva)
  • Compile definitions no longer hardcoded in generated CMakeLists.txt #1622 (@petervdonovan)
  • Remove unchecked compilation warnings #1638 (@oowekyala)
  • Refactoring of part of the federated package #1663 (@lhstrh)
  • Removal of the use of non-API global variables in tests #1696 (@edwardalee)
  • Gradle bumped to version 8 #1691 (@lhstrh)
  • Removal of deprecated build-lfc script and buildLfc Gradle task #1714 (@cmnrd)
  • Delete unnecessary complexity from build-lf-cli #1745 (@petervdonovan)
  • C files for Python support retrieved from reactor-c repo #1757 (@lhstrh)
  • Google autoformatter applied to all files #1766 (@lhstrh)
  • Redesign of the repository layout and gradle configu...
Read more

Lingua Franca 0.4.0

01 Mar 01:18
v0.4.0
400325d
Compare
Choose a tag to compare

v0.4.0 (2023-03-01)

Highlights

This release includes substantial changes under the hood and brings a lot of new features and enhancements, ranging from performance improvements to the support of new platforms like Zephyr, Arduino, and MBED in the C target. In the C++ target, it is now also straightforward to interact with ROS2 packages using the ros2-dependencies target property.

🚀 New Features

✨ Enhancements

  • Added advance-message-interval option and more federated tests for TypeScript #1293 (@hokeun)
  • Improved layout for error message node #1324 (@a-sr)
  • C++ target performance optimizations #1330 (@cmnrd)
  • Improved error messaging for mode validation #1349 (@a-sr)
  • New target property for specifying additional ROS dependencies #1355 (@cmnrd)
  • Support for passthrough connections in the C++ target #1361 (@cmnrd)
  • Support scheduling physical actions synchronously #1367 (@oowekyala)
  • Automatic code formatting using Spotless #1374 (@petervdonovan)
  • Optimized access to sparse multiports in the C++ target #1312 (@revol-xut)
  • Augmented support for Arduino #1384 (@arengarajan99)
  • New lff autoformatter for Lingua Franca files #1422 (@cmnrd)
  • Protection from code modifying the multiport container in C++ #1420 (@revol-xut)
  • Empty bracket pairs properly tokenized #1439 (@oowekyala)
  • Switched to Gradle for language and diagram server build #1469 (@a-sr)
  • Better multiport support for Rust #1406 (@oowekyala)
  • Reduction of disk usage in the Rust target #1476 (@oowekyala)
  • Native implementation of timeout in C++ #1507 (@cmnrd)
  • Less verbose CMake output via suppressed install messages #1517 (@cmnrd)
  • Preservation of time units when formatting LF code #1518 (@cmnrd)
  • Check for update Rust runtime #1546 (@oowekyala)
  • Bugfixes and improvements in token-based memory management in C #1548 (@edwardalee)
  • Use of delayed and physical connections as provided by the C++ runtime #1583 (@cmnrd)

🔧 Fixes

🚧 Maintenance and Refactoring

  • Use HTTPS for Rust reactor runtime submodule #1308 (@jhaye)
  • Switch from Rust nightly to Rust stable #1218 (@jhaye)
  • Tests in TypeScript for requesting stop in federated execution #1302 (@hokeun)
  • More portable way to suppress unused variable warnings #1317 (@edwardalee)
  • Reduced verbosity in reported output #1323 (@petervdonovan)
  • Reference reactor-ts as module #1322 (@lhstrh)
  • Removal of unnecessary build dependency to address security exceptions #1365 (@cmnrd)
  • Simplification of grammar that encodes mutations with the same productions as reactions #1318 (@Wonseo-C)
  • Removal of "No CMake" build option #1299 (@petervdonovan)
  • Usage of a published version of reactor-ts #1426 (@petervdonovan)
  • Differentiation between multi-threaded and single-threaded preprocessor directives in C #1411 (@erlingrj)
  • TypeScript generator cleanups #1457 (@oowekyala)
  • Clean up AttributeUtils #1470 (@cmnrd)
  • Infrastructure for AST transformations and factored out delay transformation #1508 (@cmnrd)
  • Cleanu...
Read more

Lingua Franca 0.3.0

22 Jul 17:38
v0.3.0
3438afb
Compare
Choose a tag to compare

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.

Full Changelog

🚀 New Features

✨ 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

⬆️ 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 and execinfo.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

  • Fix to allow ports to have both triggers and further bindings #16 (@cmnrd)

Submodule lf-lang/reactor-rs

  • No Changes

Submodule lf-lang/reactor-ts

🚀 New Features

🧪 Tests

  • Increased coverage of unit tests in bank.ts, multiport.ts and port.ts #100 (@goekberk)

Lingua Franca 0.2.1

02 Jun 23:15
v0.2.1
97a66bf
Compare
Choose a tag to compare

v0.2.1 (2022-06-01)

Highlights:

This release includes bug fixes related to IDE tooling and federated execution. Various code cleanups and refactoring efforts have also been included in this release.

Full Changelog

Implemented enhancements:

  • Introduce a thread-safe logging API for Rust #1138 (@cmnrd)
  • Turn warning for absence of main reactor into an informational message #1113 (@edwardalee)
  • Adjusted build to fall back to python command if python3 is not available #1197 (@Soroosh129)
  • Add more suitable default template for LF projects to Epoch #1180 (@lhstrh)
  • Add support for the STP handler to the Python target #1176 (@Soroosh129)
  • Add federated docker file generation for TS target #1165 (@housengw)
  • Smarter default number of workers in C runtime #1139 (@erlingrj)
  • Add support for interleaved operator to Rust target #1133 (@jhaye)
  • Change TS generator to support serialization of communication in federated execution #1125 (@CloverCho)

Fixed bugs:

Closed issues:

Merged pull requests: