Christian Menard
Christian Menard
I tried today to compile and execute the [Banking](https://github.com/lf-lang/benchmarks-lingua-franca/blob/main/C/Savina/src/concurrency/Banking.lf) C benchmark. Executing the benchmark very quickly eats up all my memory (I have 32 GiB RAM + 32 GiB swap)....
Now that we have formatting addressed, we should also introduce linting and enforce that the code is warning free. Gradle has a convenient plugin called [checkstyle](https://docs.gradle.org/current/userguide/checkstyle_plugin.html) for linting java code....
This enables the checkstyle plugin for gradle using the google style template. As it turns out, the checkstyle tool isn't quite the tool that I was after when I wrote...
The adjustable port side feature implemented in https://github.com/lf-lang/lingua-franca/pull/1807 is a great addition to LF. However, I find it a bit challenging to use in conjunction with reactions. For instance, I...
While trying to fix https://github.com/lf-lang/lingua-franca/issues/725 for C++, I realized that we don't have a clear definition of timeout and targets implement this differently. The website says: > The [target property...
The following program ``` target Python reactor Src { physical action a @side("north") output out1 @side("east") output out2 reaction(a) -> out1, out2 {==} } ``` produced this diagram:  This...
While implementing bodyless reactions for C++ (https://github.com/lf-lang/lingua-franca/pull/1933), I realized that it is currently not possible to have a bodyless reaction with a bodyless deadline handler. In C++, we currently generate...
The following program ``` target C preamble {= #include =} main reactor { reaction(startup) {= lf_print("Maximum of 42.0 and 75 is %.2f", fmax(4.20, 75)); =} } ``` produces this error:...
The LF code generator now requires C++20. Thus we can also upgrade the C++ version in this repo.
Currently, all reactor elements register a pointer to themselves at the containing reactor. When a ReactorElement is moved, this pointer stored at the containing reactor needs to be updated. This...