Skip to content

Lingua Franca 0.4.0

Compare
Choose a tag to compare
@francabot francabot released this 01 Mar 01:18
· 4183 commits to master since this release
v0.4.0
400325d

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

πŸ§ͺ Tests

⬆️ Updated Dependencies

Submodule lf-lang/reactor-c

πŸš€ New Features

✨ Enhancements

πŸ”§ Fixes

  • Fixed memory leaks in RTI #113 (@erlingrj)
  • Fix of flaky timedwait on Windows #115 (@cmnrd)
  • Token payload freed with after delay #124 (@edwardalee)
  • Consistent way of handling entry and exit of critical section #136 (@erlingrj)
  • Scheduling preprocessing fix #154 (@erlingrj)
  • Fix problem with threaded Zephyr and overflow handling in QEMU emulation #159 (@erlingrj)
  • Intended tag printed instead of last-seen tag in debug message #160 (@byeong-gil)
  • Zephyr timing fix #166 (@erlingrj)
  • Fixed compilation of RTI without -DAUTH and CI job for building the RTI #171 (@cmnrd)

🚧 Maintenance and Refactoring

Submodule lf-lang/reactor-cpp

πŸš€ New Features

  • Support passthrough connections #29 (@cmnrd)
  • Enable multiple environments and schedulers to run at the same time #37 (@cmnrd)
  • Native runtime implementation of delayed and physical connections #38 (@revol-xut)

✨ Enhancements

  • Optimization of value pointers for trivially copyable types #22 (@cmnrd)
  • Avoid locking when scheduling actions #23 (@cmnrd)
  • Optimized Multiports #24 (@revol-xut)
  • Protect multiports from accidental modification by restricting Multiport and introducing new class ModifyableMultiport #33 (@revol-xut)
  • Native timeout implementation, sync_shutdown made threadsafe, and is_present added for timers #36 (@cmnrd)
  • Optimization: use std::string_view in validation functions #41 (@cmnrd)
  • Native runtime implementation of delayed and physical connections #38 (@revol-xut)

πŸ”§ Fixes

  • Fixed compilation with tracing support #25 (@cmnrd)
  • Fix race condtions related to the scheduling of physical actions #31 (@cmnrd)
  • Fix compilation on 32-Bit machines #40 (@cmnrd)

Submodule lf-lang/reactor-rs

πŸš€ New Features

  • Support for synchronous scheduling of physical actions #30 (@oowekyala)

✨ Enhancements

πŸ”§ Fixes