Skip to content

Commit

Permalink
Merge branch 'master' into preserve-comments
Browse files Browse the repository at this point in the history
  • Loading branch information
petervdonovan committed Jul 27, 2022
2 parents 674b006 + 8b35b59 commit d53ed4b
Show file tree
Hide file tree
Showing 121 changed files with 2,275 additions and 5,726 deletions.
2 changes: 2 additions & 0 deletions .github/scripts/package_lfc.sh
Expand Up @@ -11,8 +11,10 @@ version="$(ls ${jar_path} | xargs -n 1 basename | sed 's/^org.lflang.cli-\(.*\)-

# use a different naming convention for nightly build artifacts
if [[ "$#" > 0 && "$1" = "nightly" ]]; then
echo "Packaging Lingua Franca Nightly Build"
outname="lfc_nightly_$(date '+%Y%m%d-%H%M%S')"
else
echo "Packaging Lingua Franca v${version}"
outname="lfc_${version}"
fi

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Expand Up @@ -42,6 +42,7 @@ jobs:
repo_token: "${{ secrets.envPAT }}"
automatic_release_tag: 'nightly'
prerelease: true
title: "Lingua Franca Nightly"
files: |
org.lflang.rca/target/products/*.tar.gz
org.lflang.rca/target/products/*.zip
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/cpp-tests.yml
Expand Up @@ -27,6 +27,11 @@ jobs:
- name: Install Dependencies OS X
run: brew install coreutils
if: runner.os == 'macOS'
- name: Install clang-tidy on Ubuntu
run: |
sudo apt-get update
sudo apt-get install -y clang-tidy
if: matrix.platform == 'ubuntu-latest'
- name: Check out specific ref of reactor-cpp
uses: actions/checkout@v2
with:
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Expand Up @@ -10,3 +10,6 @@
[submodule "org.lflang/src/lib/cpp/reactor-cpp"]
path = org.lflang/src/lib/cpp/reactor-cpp
url = https://github.com/lf-lang/reactor-cpp
[submodule "org.lflang/src/lib/rs/reactor-rs"]
path = org.lflang/src/lib/rs/reactor-rs
url = https://github.com/lf-lang/reactor-rs
100 changes: 100 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,105 @@
# Changelog

## [v0.3.0](https://github.com/lingua-franca/lingua-franca/tree/v0.3.0) (2022-07-22)

**Highlights**\n\nThis release adds broader support for methods (C and Python), syntax for annotations similar those in [Java](https://en.wikipedia.org/wiki/Java_annotation), an adaptive scheduler in the C runtime, and a new `platform` target property to furnish support for specialized execution platforms.

[Full Changelog](https://github.com/lingua-franca/lingua-franca/compare/v0.2.1...v0.3.0)

**🚀 New Features**

- Support for C methods [\#1215](https://github.com/lf-lang/lingua-franca/pull/1215) ([edwardalee](https://github.com/edwardalee))
- Support for Python methods [\#1230](https://github.com/lf-lang/lingua-franca/pull/1230) ([Soroosh129](https://github.com/Soroosh129))
- Adaptive scheduler for C target [\#1207](https://github.com/lf-lang/lingua-franca/pull/1207) ([petervdonovan](https://github.com/petervdonovan))
- Platform target property [\#1246](https://github.com/lf-lang/lingua-franca/pull/1246) ([Soroosh129](https://github.com/Soroosh129))
- Annotations [\#977](https://github.com/lf-lang/lingua-franca/pull/977) ([lsk567](https://github.com/lsk567))

**✨ Enhancements**

- New handling of startup/shutdown/reset reactions in modes [\#1169](https://github.com/lf-lang/lingua-franca/pull/1169) ([a-sr](https://github.com/a-sr))
- Diagram layout improvements [\#1206](https://github.com/lf-lang/lingua-franca/pull/1206) ([a-sr](https://github.com/a-sr))
- History transitions are now indicated using the `history` keyword [\#1247](https://github.com/lf-lang/lingua-franca/pull/1247) ([a-sr](https://github.com/a-sr))
- Compile warnings are fixed and clang-tidy is ran when compiling C++ tests in CI [\#1259](https://github.com/lf-lang/lingua-franca/pull/1259) ([cmnrd](https://github.com/cmnrd))
- New design for reset symbols in diagrams [\#1241](https://github.com/lf-lang/lingua-franca/pull/1241) ([a-sr](https://github.com/a-sr))
- Improvements of mode diagram layout [\#1282](https://github.com/lf-lang/lingua-franca/pull/1282) ([a-sr](https://github.com/a-sr))
- [cpp] Additional checks to determine whether a subdirectory should be included in compilation [\#1283](https://github.com/lf-lang/lingua-franca/pull/1283) ([cmnrd](https://github.com/cmnrd))
- [cpp] CLI parser errors are caught and a print help message is printed [\#1288](https://github.com/lf-lang/lingua-franca/pull/1288) ([cmnrd](https://github.com/cmnrd))
- [ts] Handling of physical action-triggered outputs in federated execution (previously handled by TAN - Time Advance Notice) [\#1275](https://github.com/lf-lang/lingua-franca/pull/1275) ([hokeun](https://github.com/hokeun))

**🔧 Fixes**

- TAN messages no longer used and in-transit messages recorded in the RTI [\#1074](https://github.com/lf-lang/lingua-franca/pull/1074) ([Soroosh129](https://github.com/Soroosh129))
- [c] A deadline of `0` is no longer interpreted as an _absent_ deadline but one that can never be met [\#1217](https://github.com/lf-lang/lingua-franca/pull/1217) ([billy-bao](https://github.com/billy-bao))
- Fix for deadlock in federated execution [\#1189](https://github.com/lf-lang/lingua-franca/pull/1189) ([Soroosh129](https://github.com/Soroosh129))
- [c] Removal of STP violation inheritance mechanism [\#1251](https://github.com/lf-lang/lingua-franca/pull/1251) ([Soroosh129](https://github.com/Soroosh129))
- Fix for properly handling paths with spaces in lfc launch script [\#1257](https://github.com/lf-lang/lingua-franca/pull/1257) ([cmnrd](https://github.com/cmnrd))
- Fix that repairs the ability to execute commands with Bash in case command is not found on path [\#1265](https://github.com/lf-lang/lingua-franca/pull/1265) ([petervdonovan](https://github.com/petervdonovan))
- Fix to not include downstream reactions in highlighted cycles [\#1270](https://github.com/lf-lang/lingua-franca/pull/1270) ([edwardalee](https://github.com/edwardalee))
- Correction of misplacement of self loops in diagrams [\#1274](https://github.com/lf-lang/lingua-franca/pull/1274) ([a-sr](https://github.com/a-sr))
- Fix that silences spurious error messages from Pylint [\#1280](https://github.com/lf-lang/lingua-franca/pull/1280) ([petervdonovan](https://github.com/petervdonovan))
- Patch that avoids NullPointerException in `CompileActionHandler` [\#1267](https://github.com/lf-lang/lingua-franca/pull/1267) ([lhstrh](https://github.com/lhstrh))
- Do not minimize the shadow jar [\#1285](https://github.com/lf-lang/lingua-franca/pull/1285) ([cmnrd](https://github.com/cmnrd))
- Fix for `ASTUtils.width()` returnning `-1` even when the width can be inferred from connections [\#1287](https://github.com/lf-lang/lingua-franca/pull/1287) ([hokeun](https://github.com/hokeun))
- Fix banks of modal reactors [\#1279](https://github.com/lf-lang/lingua-franca/pull/1279) ([a-sr](https://github.com/a-sr))
- Ensure that reactions consistently trigger banks [\#1289](https://github.com/lf-lang/lingua-franca/pull/1289) ([edwardalee](https://github.com/edwardalee))
- Cpp: fix triggering of reactions in multiple nested reactors [\#1286](https://github.com/lf-lang/lingua-franca/pull/1286) ([cmnrd](https://github.com/cmnrd))
- Fix to ensure the ordering of reactions relative to modes is correct [\#1303](https://github.com/lf-lang/lingua-franca/pull/1303) ([a-sr](https://github.com/a-sr))

**🚧 Maintenance and Refactoring**

- Machine-applicable refactorings [\#1224](https://github.com/lf-lang/lingua-franca/pull/1224) ([petervdonovan](https://github.com/petervdonovan))
- Inclusion of reactor-rs as a submodule [\#1296](https://github.com/lf-lang/lingua-franca/pull/1296) ([cmnrd](https://github.com/cmnrd))

**⬆️ Updated Dependencies**

- Upgrade to Xtext 2.27.0 and Lsp4j 0.14.0 [\#1234](https://github.com/lf-lang/lingua-franca/pull/1234) ([lhstrh](https://github.com/lhstrh))
- Bump Klighd version to 2.2 [\#1297](https://github.com/lf-lang/lingua-franca/pull/1297) ([a-sr](https://github.com/a-sr))


### Submodule [lf-lang/reactor-c](http://github.com/lf-lang/reactor-c)

**✨ Enhancements**

- New handling of startup/shutdown/reset reactions in modes [\#79](https://github.com/lf-lang/reactor-c/pull/79) ([a-sr](https://github.com/a-sr))
- STP violations now result in error messages [\#82](https://github.com/lf-lang/reactor-c/pull/82) ([edwardalee](https://github.com/edwardalee))
- Removal of TAN messages and new capability to record in-transit messages in the RTI [\#61](https://github.com/lf-lang/reactor-c/pull/61) ([Soroosh129](https://github.com/Soroosh129))

**🔧 Fixes**

- Patch to ensure that deadlines with zero delay are never met [\#86](https://github.com/lf-lang/reactor-c/pull/86) ([billy-bao](https://github.com/billy-bao))


### Submodule [lf-lang/reactor-cpp](http://github.com/lf-lang/reactor-cpp)

**✨ Enhancements**

- Nix tooling expanded with cachegrind, callgrind, and memtest [\#13](https://github.com/lf-lang/reactor-cpp/pull/13) ([revol-xut](https://github.com/revol-xut))
- Relocation of `unistd.h` and `execinfo.h` includes to void namespace pollution [\#14](https://github.com/lf-lang/reactor-cpp/pull/14) ([erlingrj](https://github.com/erlingrj))
- Fixes that addresses warnings reported by clang-tidy [\#15](https://github.com/lf-lang/reactor-cpp/pull/15) ([cmnrd](https://github.com/cmnrd))
- Optimized port communication for scalar types [\#17](https://github.com/lf-lang/reactor-cpp/pull/17) ([cmnrd](https://github.com/cmnrd))

**🔧 Fixes**

- Fix to allow ports to have both triggers and further bindings [\#16](https://github.com/lf-lang/reactor-cpp/pull/16) ([cmnrd](https://github.com/cmnrd))


### Submodule [lf-lang/reactor-rs](http://github.com/lf-lang/reactor-rs)

- No Changes


### Submodule [lf-lang/reactor-ts](http://github.com/lf-lang/reactor-ts)

**🚀 New Features**

- JSON serialization [\#99](https://github.com/lf-lang/reactor-ts/pull/99) ([CloverCho](https://github.com/CloverCho))

**🧪 Tests**

- Increased coverage of unit tests in bank.ts, multiport.ts and port.ts [\#100](https://github.com/lf-lang/reactor-ts/pull/100) ([goekberk](https://github.com/goekberk))



## [v0.2.1](https://github.com/lf-lang/lingua-franca/tree/v0.2.1) (2022-06-01)

**Highlights:**
Expand Down
21 changes: 0 additions & 21 deletions bin/update-rust-runtime.sh

This file was deleted.

8 changes: 4 additions & 4 deletions gradle.properties
@@ -1,6 +1,6 @@
[header]
group=org.lflang
version=0.2.2-SNAPSHOT
version=0.3.1-SNAPSHOT

[versions]
commonsCliVersion=1.4
Expand All @@ -11,14 +11,14 @@ jUnitPlatformVersion=1.8.2
jUnitVersion=4.13.2
kotlinJvmTarget=17
kotlinVersion=1.6.20
lsp4jVersion=0.12.0
lsp4jVersion=0.14.0
mwe2LaunchVersion=2.12.2
openTest4jVersion=1.2.0
resourcesVersion=3.16.0
runtimeVersion=3.24.0
runtimeVersion=3.25.0
shadowJarVersion=7.1.2
xtextGradleVersion=3.0.0
xtextVersion=2.26.0
xtextVersion=2.27.0

[manifestPropertyNames]
org.eclipse.xtext=xtextVersion
Expand Down
14 changes: 7 additions & 7 deletions lib/scripts/include.sh
Expand Up @@ -53,16 +53,16 @@ function get_src_dir() {
# If it exists, return a path to the Lingua Franca jar.
function get_jar_path() {
if [ "$(get_src_dir)" ]; then
jar_path_pattern="${base}/${lfc_jar_build_path_pattern}"
jar_path_pattern="${lfc_jar_build_path_pattern}"
else
jar_path_pattern="${base}/${lfc_jar_release_path_pattern}"
jar_path_pattern="${lfc_jar_release_path_pattern}"
fi
#echo Jar path pattern: "${jar_path_pattern}"
# echo Jar path pattern: "${base}"/${jar_path_pattern}
# Is there a file that matches our pattern? If so, return it.
if ls ${jar_path_pattern} 1> /dev/null 2>&1; then
# Yes. Determine the precise path of the jar.
if ls "${base}"/${jar_path_pattern} 1> /dev/null 2>&1; then
# Yes. Determine the precise path of the jar.
# Take the newest version if there are multiple jars.
echo "$(ls ${jar_path_pattern} | sort -V | tail -n1)"
echo "$(ls "${base}"/${jar_path_pattern} | sort -V | tail -n1)"
fi
}

Expand Down Expand Up @@ -95,7 +95,7 @@ function lookup_jre() {
done
echo "java" # This will result in failure
elif [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
#echo Found java executable in JAVA_HOME
#echo Found java executable in JAVA_HOME
echo "$JAVA_HOME/bin/java"
else
fatal_error "JRE not found."
Expand Down
6 changes: 3 additions & 3 deletions lib/scripts/launch.sh
Expand Up @@ -29,7 +29,7 @@ find_dir() (
link=$(readlink "$(basename "$1")")
((count++))
else
return
return
fi
done
real_path="$PWD/$(basename "$1")"
Expand All @@ -43,11 +43,11 @@ function fatal_error() {
exit 1
}

rel_path="/lib/scripts"
rel_path="lib/scripts"
abs_path="$(find_dir "$0")"

if [[ "${abs_path}" ]]; then
base=`dirname $(dirname ${abs_path})`
base="$(dirname "$(dirname "${abs_path}")")"
source "${base}/${rel_path}/include.sh"
else
fatal_error "Unable to determine absolute path to $0."
Expand Down
18 changes: 9 additions & 9 deletions oomph/LinguaFranca.setup
Expand Up @@ -131,7 +131,7 @@
<setupTask
xsi:type="setup:VariableTask"
name="eclipse.target.platform"
value="2021-12"
value="2022-06"
storageURI="scope://Workspace"/>
<setupTask
xsi:type="setup.p2:P2Task">
Expand Down Expand Up @@ -161,7 +161,7 @@
name="org.eclipse.tm.terminal.feature.feature.group"/>
<requirement
name="org.eclipse.xtext.sdk.feature.group"
versionRange="2.26.0"/>
versionRange="2.27.0"/>
<repository
url="http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/"/>
<description>Install the tools needed in the IDE to work with the source code for ${scope.project.label}</description>
Expand Down Expand Up @@ -302,10 +302,10 @@
versionRange="27.0.0"/>
<requirement
name="org.eclipse.xtext.runtime.feature.group"
versionRange="2.26.0"/>
versionRange="2.27.0"/>
<requirement
name="org.eclipse.xtext.sdk.feature.group"
versionRange="2.26.0"/>
versionRange="2.27.0"/>
<requirement
name="org.eclipse.platform.source.feature.group"/>
<requirement
Expand Down Expand Up @@ -349,15 +349,15 @@
<repositoryList
name="DefaultRepositories">
<repository
url="http://download.eclipse.org/releases/2022-03"/>
url="http://download.eclipse.org/releases/2022-06"/>
<repository
url="http://download.eclipse.org/tools/orbit/downloads/drops/R20220302172233/repository/"/>
url="http://download.eclipse.org/tools/orbit/downloads/drops/R20220531185310/repository/"/>
<repository
url="https://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.26.0/"/>
url="https://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.27.0/"/>
<repository
url="http://download.eclipse.org/elk/updates/releases/0.7.1/"/>
url="http://download.eclipse.org/elk/updates/releases/0.8.1/"/>
<repository
url="https://kieler.github.io/KLighD/v2.1.0/"/>
url="https://kieler.github.io/KLighD/v2.2.0/"/>
<repository
url="https://github.com/fabioz/Pydev/releases/download/pydev_9_0_1/"/>
<repository
Expand Down
20 changes: 10 additions & 10 deletions org.lflang.cli/build.gradle
Expand Up @@ -49,11 +49,11 @@ task jarLfc(type: ShadowJar) {
archiveClassifier.set('lfc')
exclude 'test/*'
exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
minimize() {
exclude(dependency('log4j:log4j:.*'))
exclude(dependency('com.google.inject:guice:.*'))
exclude(dependency('org.lflang:org.lflang:.*'))
}
// We should use minimize() here to reduce the size of the JAR, but it causes problems
// with regard to our Kotlin classes. Since we don't use imports to load them but load
// the classes manually, minimize does not see the dependency. While we can add an exclude
// rule, this does not seem to work very well and causes problems when compiling for a
// second time. Also see https://github.com/lf-lang/lingua-franca/pull/1285
transform(com.github.jengelman.gradle.plugins.shadow.transformers.AppendingTransformer){
resource = 'plugin.properties'
}
Expand Down Expand Up @@ -89,11 +89,11 @@ task jarLff(type: ShadowJar) {
archiveClassifier.set('lff')
exclude 'test/*'
exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
minimize() {
exclude(dependency('log4j:log4j:.*'))
exclude(dependency('com.google.inject:guice:.*'))
exclude(dependency('org.lflang:org.lflang:.*'))
}
// We should use minimize() here to reduce the size of the JAR, but it causes problems
// with regard to our Kotlin classes. Since we don't use imports to load them but load
// the classes manually, minimize does not see the dependency. While we can add an exclude
// rule, this does not seem to work very well and causes problems when compiling for a
// second time. Also see https://github.com/lf-lang/lingua-franca/pull/1285
transform(com.github.jengelman.gradle.plugins.shadow.transformers.AppendingTransformer){
resource = 'plugin.properties'
}
Expand Down
20 changes: 10 additions & 10 deletions org.lflang.diagram/META-INF/MANIFEST.MF
Expand Up @@ -2,23 +2,23 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Lingua Franca Block Diagram Editor
Bundle-SymbolicName: org.lflang.diagram;singleton:=true
Bundle-Version: 0.2.2.qualifier
Bundle-Version: 0.3.1.qualifier
Automatic-Module-Name: org.lflang.diagram
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy
Require-Bundle: de.cau.cs.kieler.klighd;bundle-version="2.0.0",
de.cau.cs.kieler.klighd.krendering.extensions;bundle-version="2.0.0",
de.cau.cs.kieler.klighd.lsp;bundle-version="2.0.0",
Require-Bundle: de.cau.cs.kieler.klighd;bundle-version="2.2.0",
de.cau.cs.kieler.klighd.krendering.extensions;bundle-version="2.2.0",
de.cau.cs.kieler.klighd.lsp;bundle-version="2.2.0",
com.google.guava,
org.eclipse.xtext,
org.eclipse.xtext.xbase.lib,
org.eclipse.elk.core;bundle-version="0.7.0",
org.eclipse.elk.alg.layered;bundle-version="0.7.0",
org.eclipse.core.resources;bundle-version="3.13.900",
org.eclipse.elk.core;bundle-version="0.8.1",
org.eclipse.elk.alg.layered;bundle-version="0.8.1",
org.eclipse.core.resources;bundle-version="3.16.0",
org.lflang;bundle-version="0.1.0",
org.lflang.ide;bundle-version="0.1.0",
org.eclipse.xtext.ide;bundle-version="2.26.0",
org.eclipse.lsp4j;bundle-version="0.12.0",
org.eclipse.lsp4j.jsonrpc;bundle-version="0.12.0",
org.eclipse.xtext.ide;bundle-version="2.27.0",
org.eclipse.lsp4j;bundle-version="0.14.0",
org.eclipse.lsp4j.jsonrpc;bundle-version="0.14.0",
org.eclipse.sprotty;bundle-version="0.9.0"
Bundle-Vendor: University of California, Berkeley
2 changes: 1 addition & 1 deletion org.lflang.diagram/pom.xml
Expand Up @@ -8,7 +8,7 @@
<relativePath>../pom.xml</relativePath>
<groupId>org.lflang</groupId>
<artifactId>lf</artifactId>
<version>0.2.2-SNAPSHOT</version>
<version>0.3.1-SNAPSHOT</version>
</parent>

<artifactId>org.lflang.diagram</artifactId>
Expand Down
Expand Up @@ -42,6 +42,14 @@ public abstract class AbstractSynthesisExtensions {
public boolean getBooleanValue(SynthesisOption option) {
return delegate.getBooleanValue(option);
}

public float getFloatValue(SynthesisOption option) {
return delegate.getFloatValue(option);
}

public Object getObjectValue(final SynthesisOption option) {
return delegate.getObjectValue(option);
}

public <T extends EObject> T associateWith(T derived, Object source) {
return delegate.associateWith(derived, source);
Expand Down

0 comments on commit d53ed4b

Please sign in to comment.