Lingua Franca 0.1.0
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.
Implemented enhancements:
- Add a
-v
/--version
flag tolfc
#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 tolfc
and 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
andASTUtils
#1003 - Kotlin classes do not get build by
buildLfc
task (unless theclean
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:
- Switched to building the Python extension module in-place #1088 (@Soroosh129)
- Remove example directory #1077 (@lhstrh)
- Remove experimental directory #1076 (@lhstrh)
- Accommodations for automated version changes #1071 (@lhstrh)
- Enable tycho-versions-plugin to manage versioning #1070 (@lhstrh)
- Commented out annotation of outputs on transitions #1065 (@edwardalee)
- Fixed Problem with Mode Transitions and Edges in VS Code #1063 (@a-sr)
- Fix network sender reaction multiport #1061 (@Soroosh129)
- Fix missing
-w
command line argument #1060 (@housengw) - Improved Support for Imported Reactors in Diagrams #1055 (@a-sr)
- The files target property: Add support for directories #1053 (@Soroosh129)
- Removed all Xtend dependencies #1051 (@housengw)
- Removed broken dependency on
org.eclipse.xpand.feature.group
#1050 (@lhstrh) - Port
CGenerator.xtend
to Java #1049 (@housengw) - Replace all tabs with spaces in the
org.lflang.diagrams
package #1047 (@a-sr) - Partial refactoring of
CGenerator.xtend
#1045 (@housengw) - Another refactoring of
CGenerator.xtend
#1035 (@housengw) - ASTUtils cleanup #1022 (@cmnrd)
- Bump Xtext from 2.25.0 to 2.26.0 #1021 (@lhstrh)
- Removed unnecessary
xtend-gen
folder from classpath #1014 (@soerendomroes) - Added ROS2 serialization tests #1012 (@Soroosh129)
- Refactor
CGenerator.xtend
#1011 (@housengw) - Grammar cleanup #1008 (@cmnrd)
- Merge
JavaAstUtils
intoASTUtils
#1004 (@housengw) - Move benchmarks to separate repository #1001 (@cmnrd)
- Add FPS and update README of YOLO demo #989 (@housengw)
- Carla intersection refactoring #982 (@housengw)
- FileConfig cleanups #978 (@cmnrd)
- Add invoke_deadline_handler parameter to AnytimePrime.lf. #976 (@hokeun)
- Port
GeneratorBase.xtend
to Java #974 (@housengw) - Add reactor-cpp as a submodule and reorganize the C++ build process #971 (@cmnrd)
- Simplify conditional fed codegen #970 (@edwardalee)
- Fix port type mismatch in AnytimePrime.lf #968 (@hokeun)
- FileConfig cleanup #963 (@cmnrd)
- Validator cleanups #961 (@edwardalee)
- Add C code generation to store currently executed reaction, add AnytimePrime.lf as a demo for check_deadline(). #960 (@hokeun)
- Ported
PythonGenerator.xtend
to Java and started refactoring ofGeneratorBase
#958 (@housengw) - Clean up the file writing mechanism #956 (@cmnrd)
- Port
org.lflang.federated
to java #950 (@housengw) - Fixed bug in centralized coordination related to time advancement #949 (@housengw)
- Update reactor-cpp version #946 (@cmnrd)
- Ported Xtend code in diagram package to Java #940 (@housengw)
- Refactoring: Purge code generators of IFileSystemAccess2. #938 (@petervdonovan)
- Fix gradle setup by setting kotlin version to 1.4.30 #934 (@cmnrd)
- Fixes #932 #933 (@Soroosh129)
- Carla intersection updates #901 (@Soroosh129)
- Ported
LFValidator.xtend
to Java #886 (@housengw) - Added AlarmClock example #780 (@revol-xut)