Skip to content

Lingua Franca 0.1.0

Compare
Choose a tag to compare
@francabot francabot released this 12 Apr 01:07
· 6894 commits to master since this release
v0.1.0
f9744f1

v0.1.0 (2022-04-11)

Highlights:

This is the first stable release of Lingua Franca. Aside from numerous bugfixes, a number of new features have been introduced since v0.1.0-beta, including: generation of ROS2 nodes directly from LF code (C++); improved error handling; support for multiports and banks (TypeScript); modular support for runtime schedulers (C); and modal reactors (C and Python). Finally, a major refactoring has been performed in which all remaining Xtend code was ported to Java.

Full Changelog

Implemented enhancements:

  • Add a -v / --version flag to lfc #927
  • Produce informative message when lfc is run on non-LF files #919
  • Make Docker generation compatible with the files target property #887
  • Preconfigure Epoch with example projects #374
  • In banks of reactors, make bank_index a proper parameter #343
  • Align the meaning of the threads target property across targets #290
  • Improve Stability of Positioning Edges connected to Reactions in Diagrams #1040 (@a-sr)
  • Improve layout options #1015 (@soerendomroes)
  • Support modal models in Python #1009 (@edwardalee)
  • Replace the 'threads' target property with the 'workers' and 'threading' properties #993 (@cmnrd)
  • Docker files property #987 (@housengw)
  • Enable generation of ROS2 nodes directly from C++ code #984 (@cmnrd)
  • Added --version flag to lfcand improved error messages #979 (@cmnrd)
  • Improve warning message for unrecognized target parameters #964 (@cmnrd)
  • Add bank & multiport support in TypeScript code generator with > 30 multiport tests. #942 (@hokeun)
  • Added support for modular scheduler in C runtime #743 (@Soroosh129)
  • Added support for Modal Models #501 (@a-sr)

Fixed bugs:

  • Tracing does not get enabled in all files of reactor-c #1067
  • C benchmark PingPong is broken #1058
  • Command line argument -w does not work. #1056
  • Maven build is broken #1033
  • FilterBank benchmark in C++ has cycles #1031
  • EclipseErrorReporter reports errors in the wrong file #1030
  • Dependency cycle detection does not seem to work #1024
  • Spurious warnings in Epoch #1016
  • Error reporting in Epoch is broken #994
  • Epoch fails to highlight errors on codegen #966
  • Some cargo errors are not reported in LF #936
  • Files without main don't compile if they have imports #913
  • Invalid time literal causees IllegalArgumentException #908
  • Reactor extending itself causes StackOverflowError #907
  • Having multiple unnamed main reactors causes nullPointerException #905
  • Catch errors from the TS type checker in the examples category #405
  • Fixed an issue with bank_index #1087 (@Soroosh129)
  • Fix bug where tracing does not get fully enabled #1068 (@hokeun)
  • Fix errors in tracing util. #1043 (@hokeun)
  • Properly recognize network message actions in TypeScript generator #1042 (@hokeun)
  • [error reporting] Correct bugs reported on Epoch #1038 (@petervdonovan)
  • Fix handling of ganged connections #1037 (@edwardalee)
  • Broaden a pylint ignore. #1029 (@petervdonovan)
  • Fixed causality loop detection bug #1026 (@edwardalee)
  • Suppress line-too-long warnings in the Python target. #1018 (@petervdonovan)
  • [C] do not generate code without main reactor #1000 (@housengw)
  • Check for null reactor to avoid NPE #998 (@edwardalee)
  • Fix eclipse error reporting #995 (@cmnrd)
  • Epoch error reporting #967 (@edwardalee)
  • Detect and flag and as error multiple mains #965 (@edwardalee)
  • Inheritance cleanups #962 (@edwardalee)
  • Fixes #768 #952 (@housengw)
  • Report raw, unparsed error streams as a last resort. #941 (@petervdonovan)

Closed issues:

  • Epoch fails on valid file #1027
  • List modal reactor tests in own test category #1020
  • Merge JavaAstUtils and ASTUtils #1003
  • Kotlin classes do not get build by buildLfc task (unless the clean task is also run) #930
  • Navigate to imported reactors in diagrams #889
  • Port Xtend classes to Java #838
  • Use the same implementation of deque accross all C benchmarks #765
  • Use the BenchmarkRunner reactor in all C benchmarks #764
  • Build both Epoch with maven and lfc with gradle in our CI workflow #575
  • Declutter repo and move into separate Github Organization #347
  • C syntax for referencing parameters and state variables #82

Merged pull requests: