Skip to content

Releases: lf-lang/lingua-franca

Lingua Franca Nightly

12 May 06:08
f144bff

Choose a tag to compare

Lingua Franca Nightly Pre-release
Pre-release
Merge pull request #2620 from lf-lang/imported-preambles

Import top-level preamble of all imported files. Previously, a reactor defined within a file that does the import would not see the top-level imports.

Lingua Franca 0.12.1

18 Apr 00:32
v0.12.1
b0ba095

Choose a tag to compare

v0.12.1 (2026-04-17)

Highlights

This patch release fixes a memory leak reported in issue #580 of reactor-c.

Submodule lf-lang/reactor-c

🔧 Fixes

  • Decrement reference count of old token when template token is replaced. #581 (@edwardalee)

Submodule lf-lang/reactor-cpp

  • No Changes

Submodule lf-lang/reactor-rs

  • No Changes

Lingua Franca 0.12.0

16 Apr 18:23
v0.12.0
d2487df

Choose a tag to compare

v0.12.0 (2026-04-16)

Highlights

This release offers a number of usability and infrastructure improvements. On the infrastructure side, the most significant is a refactoring of the network interface to make it less reliant on implementation via TCP sockets. A layer of abstraction has been introduced to support future development of other communication mechanisms, including encrypted communication. It also adds target properties trace-plugin and cmake-args for the C and Python targets in order to support alternative plugins for tracing such as the Xronos Dashboard. See instructions.

On the usability side, it is now possible to override parameter values of the main or federated reactor if they are primitive data types and do not control the width of multiports or banks.
This release also add utility functions for loading parameter values from a file. This is particularly useful for customizing the parameters of bank members.
For federated execution, a new --tmux option gives a convenient way to start a federation using the tmux terminal multiplexer. This separates the stdin and stdout from each of the federation components into separate windows. Another small enhancement is that the logging API now produces colored text on terminals that support colored text.
This release also adds a Python API to for user-defined tracepoints similar to those in the C target.
Finally, the diagrams now show annotations showing maxwait and absent_after attributes for federates and connections between federates. See the blog about maxwait, and the @side attributes for ports now support all four points of the compass, "north", "east", "south", and "west".

🚀 New Features

  • Add maxwait and absent_after annotation in diagrams. #2572 (@edwardalee)
  • Add subfields to trace-plugin property and add cmake-args property #2578 (@lsk567)
  • Add command-line overrides for top-level parameters with primitive types or time type. #2591 (@edwardalee)
  • Add API for user trace events for Python target. #2596 (@edwardalee)
  • Add --tmux or -x command-line option for federated launchers. #2604 (@edwardalee)
  • Add utility functions to initialize parameters and state variables from a file. #2612 (@edwardalee)

✨ Enhancements

  • Color logging outputs printed to stdout to better distinguish them from user outputs. #2605 (@edwardalee)
  • Fix bug with overridden parameters and enable the cmake-args target property in Python. #2611 (@edwardalee)
  • Add support for reactor-uc attributes to the validator (for the VS Code plugin). #2616 (@edwardalee)

🔧 Fixes

🚧 Maintenance and Refactoring

🧪 Tests

Submodule lf-lang/reactor-c

🚀 New Features

  • Use find_package to link against external trace plugin. #554 (@lsk567)
  • Add lf_time_parse function to get a time from a numeric string and a units string. #562 (@edwardalee)
  • Support command-line overrides of top-level parameters with primitive types or time type. #563 (@edwardalee)
  • Add API for user trace events for Python target. #565 (@edwardalee)
  • Support for function update_deadline in Python target #558 (@byeonggiljun)
  • Add utility functions to initialize parameters and state variables from a file. #577 (@edwardalee)

✨ Enhancements

  • Add a C helper API to read a Python reactor parameter as a long. #568 (@edwardalee)
  • Improve fedsd visualization and add ADDRESS_QUERY_REPLY tracing #569 (@ChadliaJerad)
  • Color logging outputs to stdout to better distinguish them from user outputs. #570 (@edwardalee)

🔧 Fixes

🚧 Maintenance and Refactoring

  • Addition of network abstraction layer to separate socket implementation code from network communication logic #508 (@Jakio815)

Submodule lf-lang/reactor-cpp

🔧 Fixes

  • Revert "Merge pull request #81 from lf-lang/fix-ros2-cpp-build" #82 (@lsk567)

Submodule lf-lang/reactor-rs

  • No Changes

Lingua Franca 0.11.0

05 Dec 14:54
v0.11.0
1e5639d

Choose a tag to compare

v0.11.0 (2025-12-05)

Highlights

This release of Lingua Franca features changes to federated execution with the C and Python targets, emphasizing the decentralized coordinator. The obscure terminology of STA and STAA has been replaced by maxwait and absent_after. These are now specified as attributes on instantiations and connections, making it possible for libraries of reactors to be agnostic about whether the reactors are instantiated as federates or within a federate. In addition, the code docs for the code generator have been greatly improved and deployed at https://lf-lang.org/lingua-franca.

This release also makes a number of improvements to the reactor-c runtime, including the ability to set and change deadlines at runtime, support for after delays with fixed-size array types, better support for variable-size arrays in Windows, and a number of bug fixes.

This release also brings syntax and semantics of federated execution into compliance with the new (still preliminary) reactor-uc runtime system and code generator that is particularly tuned for embedded platforms.

🚀 New Features

  • Add DeadlineUpdateDecrease.lf & DeadlineUpdateIncrease.lf as an example of the new API function updating the deadline. #2531 (@Jakio815)

✨ Enhancements

🔧 Fixes

🚧 Maintenance and Refactoring

📖 Documentation

Submodule lf-lang/reactor-c

🚀 New Features

  • Addition of API of dynamically updating deadline of reaction. #538 (@Jakio815)

🔧 Fixes

🚧 Maintenance and Refactoring

Submodule lf-lang/reactor-cpp

  • No Changes

Submodule lf-lang/reactor-rs

  • No Changes

Lingua Franca 0.10.1

03 Aug 14:57
v0.10.1
93e7a55

Choose a tag to compare

v0.10.1 (2025-08-03)

Highlights

This patch release includes two key changes:

  • A fix for an occasional segfault that could occur in federated execution during shutdown.
  • A change in the default Docker configuration to build the RTI by default rather than to import it from DockerHub.

There are also a few other minor fixes, some of which are steps towards support for scheduling enclaves, which is still quite incomplete.

✨ Enhancements

Submodule lf-lang/reactor-c

✨ Enhancements

  • Preliminary support for enclaves in the C target #308 (@erlingrj)

🔧 Fixes

Submodule lf-lang/reactor-cpp

  • No Changes

Submodule lf-lang/reactor-rs

  • No Changes

Lingua Franca 0.10.0

21 Jul 10:38
v0.10.0
ab1856f

Choose a tag to compare

v0.10.0 (2025-07-21)

Highlights

This release of Lingua Franca offers significant improvements to federated execution with the reactor-c and python targets, including now generating an RTI implementation with each federation, a number of improvements to the decentralized coordinator, an optimization for the centralized coordinator (DNET, downstream next-event tag), and support for sending statically allocated datatypes (strings and arrays) across federations. This release also supports specifying a particular version of Python for the python target, provides support for more recent versions of Python, and fills in missing API functions for the python target.

This release also makes a number of improvements to the reactor-c runtime, including greatly improved documentation, a new update policy for actions with colliding tags, making API macros available in methods, making reactor names available at runtime, federated improvements (described above), and a number of bug fixes. Note that there is a new (still preliminary) reactor-uc runtime system and code generator that is particularly tuned for embedded platforms.

🚀 New Features

✨ Enhancements

🔧 Fixes

🚧 Maintenance and Refactoring

📖 Documentation

⬆️ Updated Dependencies

Submodule lf-lang/reactor-c

🚀 New Features

  • Downstream next event tag (DNET), a new signal for more efficient centralized federated execution #349 (@byeonggiljun)
  • Add option for providing an external implementation of clock functions #516 (@erlingrj)

✨ Enhancements

🔧 Fixes

Read more

Lingua Franca 0.9.0

31 Oct 19:04
v0.9.0
ab19988

Choose a tag to compare

v0.9.0 (2024-10-31)

Highlights

This release of Lingua Franca adds support for reusable and publishable packages, providing the necessary infrastructure to develop a community-driven ecosystem of Lingua Franca packages. The VS code extension now features an integrated package explorer, and the diagrams provide colored highlighting for selected diagram edges. Other new features include C support for a new hardware platform called Patmos, several minor syntax and API improvements, and a new Alpine-based default Docker image for Python. This release also includes numerous bug fixes, such as preventing hangs during timeouts, addressing issues in decentralized coordination, improving error handling, and fixing concurrency issues in the C runtime.

🚀 New Features

✨ Enhancements

🔧 Fixes

Submodule lf-lang/reactor-c

🚀 New Features

✨ Enhancements

🔧 Fixes

🚧 Maintenance and Refactoring

Submodule lf-lang/reactor-cpp

  • Fix clang-tidy configuration and tidy up code #60 (@cmnrd)

Submodule lf-lang/reactor-rs

  • No Changes

Lingua Franca 0.8.2

03 Aug 03:57
v0.8.2
9f6f363

Choose a tag to compare

v0.8.2 (2024-08-02)

Highlights

This patch release includes minor bugfixes and several enhancements of our Docker support. It also adds custom serialization for the Python target and support for the use of target code expressions to specify time values in C++.

🚀 New Features

✨ Enhancements

  • Ability to use of target code expressions for time values in C++ #2369 (@cmnrd)
  • Do not require libexecinfo in C++ docker images #2372 (@cmnrd)
  • Immediate start of federates with STP offset under decentralized coordination & fix target code STP_offset #2368 (@depetrol)
  • Custom Serialization in Python Target #2375 (@depetrol)
  • RTI Docker Hub Continuous Deployment with Multiplatform Support #2384 (@depetrol)

🔧 Fixes

  • Immediate start of federates with STP offset under decentralized coordination & fix target code STP_offset #2368 (@depetrol)
  • Fixed docker support for the Python target #2377 (@cmnrd)
  • Fix to get get all preambles in Python + updated tests #2381 (@edwardalee)
  • C++ raw strings allowed in target code blocks #2385 (@lhstrh)

🚧 Maintenance and Refactoring

Submodule lf-lang/reactor-c

🚀 New Features

✨ Enhancements

Submodule lf-lang/reactor-cpp

✨ Enhancements

Submodule lf-lang/reactor-rs

  • No Changes

Lingua Franca 0.8.1

14 Jul 12:33
v0.8.1
1db503e

Choose a tag to compare

v0.8.1 (2024-07-14)

Highlights

This patch release includes several minor bugfixes and enhancements, improving Docker support for the C++ target and providing a more complete implementation of watchdogs.

✨ Enhancements

🚧 Maintenance and Refactoring

Submodule lf-lang/reactor-c

🚀 New Features

  • New Python functions lf.package_directory() and lf.source_directory() #455 (@edwardalee)

🔧 Fixes

  • Better error messages when HMAC authentication is attempted by federates when RTI does not support it #461 (@Jakio815)

Submodule lf-lang/reactor-cpp

  • No Changes

Submodule lf-lang/reactor-rs

  • Remove creusot sources and merge back vecmap into main runtime crate #47 (@oowekyala)

Lingua Franca 0.8.0

02 Jul 19:13
v0.8.0
ba04e9c

Choose a tag to compare

v0.8.0 (2024-07-02)

Highlights

This release includes new features including support for the FlexPRET platform and multi-threading on the RP2040 platform. Enhancements include broader and more customizable support for Docker, as well as fixes for various bugs related to C++ ports, nRF52, and Dockerfile generation. Additionally, new tests were added, dependencies were updated, and several bug fixes and enhancements were made across various runtime implementations.

🚀 New Features

✨ Enhancements

🔧 Fixes

🧪 Tests

⬆️ Updated Dependencies

  • Bumped klighd version to 3.0.2.v20240507 #2301 (@cmnrd)

Submodule lf-lang/reactor-c

🚀 New Features

✨ Enhancements

🔧 Fixes

🚧 Maintenance and Refactoring

Submodule lf-lang/reactor-cpp

Submodule lf-lang/reactor-rs

  • No Changes