Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nasa/fpp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.2.0
Choose a base ref
...
head repository: nasa/fpp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref

Commits on Jun 24, 2024

  1. Copy the full SHA
    c710c4d View commit details

Commits on Jun 25, 2024

  1. Merge statemachine-check

    watney committed Jun 25, 2024
    Copy the full SHA
    88b7f43 View commit details
  2. Copy the full SHA
    62d82bc View commit details

Commits on Jun 26, 2024

  1. Add state machine initial to AST

    watney committed Jun 26, 2024
    Copy the full SHA
    7d20611 View commit details
  2. Make the state machine members optional

    watney committed Jun 26, 2024
    Copy the full SHA
    93c78c5 View commit details
  3. Added syntax state machine test

    watney committed Jun 26, 2024
    Copy the full SHA
    6b8f0cb View commit details
  4. Add syntax for state in state machine

    watney committed Jun 26, 2024
    Copy the full SHA
    1abea78 View commit details

Commits on Jun 27, 2024

  1. Fix json rescursive error

    watney committed Jun 27, 2024
    Copy the full SHA
    2f2783f View commit details

Commits on Jul 1, 2024

  1. Copy the full SHA
    4b83a5a View commit details
  2. Add syntax for state machine signal

    watney committed Jul 1, 2024
    Copy the full SHA
    d8195fd View commit details
  3. Add syntax for state machine action

    watney committed Jul 1, 2024
    Copy the full SHA
    8d6d7fd View commit details
  4. Add syntax for state machine guard

    watney committed Jul 1, 2024
    Copy the full SHA
    21bac80 View commit details
  5. Add syntax for state machine transition

    watney committed Jul 1, 2024
    Copy the full SHA
    54ea0b1 View commit details
  6. Copy the full SHA
    cf2ac19 View commit details
  7. Add state-machine syntax test

    watney committed Jul 1, 2024
    Copy the full SHA
    cc0c7bf View commit details

Commits on Jul 2, 2024

  1. Add syntax for state machine junction

    watney committed Jul 2, 2024
    Copy the full SHA
    3902113 View commit details
  2. Copy the full SHA
    acdf73c View commit details
  3. Add Device state machine for a test

    watney committed Jul 2, 2024
    Copy the full SHA
    c72bc29 View commit details
  4. Copy the full SHA
    d4fef1c View commit details
  5. Copy the full SHA
    abb49ec View commit details
  6. Update fpp-format

    watney committed Jul 2, 2024
    Copy the full SHA
    c9f84dd View commit details

Commits on Jul 3, 2024

  1. Complete state machine fpp-format

    watney committed Jul 3, 2024
    Copy the full SHA
    d90eb26 View commit details
  2. Update unit tests

    watney committed Jul 3, 2024
    Copy the full SHA
    7297035 View commit details

Commits on Jul 15, 2024

  1. Copy the full SHA
    04de112 View commit details

Commits on Jul 16, 2024

  1. Copy the full SHA
    a7a051b View commit details
  2. Copy the full SHA
    4d3fee3 View commit details

Commits on Jul 17, 2024

  1. Revise spec for phase 2

    bocchino committed Jul 17, 2024
    Copy the full SHA
    92587a2 View commit details
  2. Copy the full SHA
    dbae106 View commit details
  3. Copy the full SHA
    64b5111 View commit details

Commits on Jul 18, 2024

  1. Copy the full SHA
    ff1a7fc View commit details
  2. Copy the full SHA
    d01a147 View commit details
  3. Fix formatting for Junction

    watney committed Jul 18, 2024
    Copy the full SHA
    1371ab0 View commit details
  4. Update fpp-to-json ref files

    watney committed Jul 18, 2024
    Copy the full SHA
    70dc968 View commit details
  5. Copy the full SHA
    001644d View commit details
  6. Copy the full SHA
    260dc06 View commit details

Commits on Jul 19, 2024

  1. Minor updates

    bocchino committed Jul 19, 2024
    Copy the full SHA
    06e8a3b View commit details
  2. Revise state machine syntax

    bocchino committed Jul 19, 2024
    Copy the full SHA
    3827ae7 View commit details
  3. Refactor ast

    bocchino committed Jul 19, 2024
    Copy the full SHA
    39dff88 View commit details
  4. Add Ast Nodes to state machine elements

    watney committed Jul 19, 2024
    Copy the full SHA
    422f4a4 View commit details
  5. Allow junctions to be defined within a state

    watney committed Jul 19, 2024
    Copy the full SHA
    982a019 View commit details
  6. Remove generated files

    bocchino committed Jul 19, 2024
    Copy the full SHA
    1867ce2 View commit details
  7. Revise Ast

    bocchino committed Jul 19, 2024
    Copy the full SHA
    fa6d236 View commit details
  8. Revise comment

    bocchino committed Jul 19, 2024
    Copy the full SHA
    cda606b View commit details
  9. Revise AstVisitor

    bocchino committed Jul 19, 2024
    Copy the full SHA
    6ec7680 View commit details
  10. Reorder code in AstVisitor

    bocchino committed Jul 19, 2024
    Copy the full SHA
    3c7b4fa View commit details
  11. Reorder code

    bocchino committed Jul 19, 2024
    Copy the full SHA
    99423fa View commit details
  12. Reorder code

    bocchino committed Jul 19, 2024
    Copy the full SHA
    f580c5e View commit details
  13. Restore Version.scala

    bocchino committed Jul 19, 2024
    Copy the full SHA
    77b17c8 View commit details
  14. Revise AstJsonEncoder

    bocchino committed Jul 19, 2024
    Copy the full SHA
    53bbb2b View commit details
  15. Revise Lexer

    bocchino committed Jul 19, 2024
    Copy the full SHA
    b8d0647 View commit details
Showing 1,372 changed files with 74,048 additions and 8,521 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ permissions:
jobs:
build:

runs-on: ubuntu-latest
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v3
45 changes: 19 additions & 26 deletions .github/workflows/native-build.yml
Original file line number Diff line number Diff line change
@@ -49,7 +49,7 @@ on:
type: boolean
jobs:
build-jars:
runs-on: "ubuntu-latest"
runs-on: "ubuntu-22.04"
name: "Build Standard JARs"
steps:
- name: "Checkout repository"
@@ -64,7 +64,7 @@ jobs:
${{ inputs.build }} ${{ inputs.output-directory }}
shell: bash
- name: "Archiving JARs package"
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: build-jar
path: ${{ inputs.output-directory }}/*
@@ -80,7 +80,7 @@ jobs:
${{ inputs.test }}
echo -e "Trace output files:\n$( find ${{ inputs.trace-directory }} -name *.json )"
- name: "Archiving Tracing"
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: jar-traces
path: ${{ inputs.trace-directory }}/*.json
@@ -90,7 +90,7 @@ jobs:
outputs:
native: ${{ steps.set-matrix.outputs.native }}
tags: ${{ steps.set-matrix.outputs.tags }}
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- id: set-matrix
shell: python
@@ -101,13 +101,13 @@ jobs:
matrix = {
"run": [
{
"runner": "macos-12",
"tag": "macosx_12_0_universal2"
"runner": "macos-13",
"tag": "macosx_13_0_universal2"
},
{
"runner": "ubuntu-latest",
"tag": "manylinux2014_x86_64",
"container": "quay.io/pypa/manylinux2014_x86_64"
"runner": "ubuntu-22.04",
"tag": "manylinux_2_28_x86_64",
"container": "quay.io/pypa/manylinux_2_28_x86_64"
}
]
}
@@ -131,27 +131,20 @@ jobs:
container:
image: ${{ matrix.run.container || '' }}
steps:
- name: "Fix environment"
run: |
# https://github.com/actions/checkout/issues/1809
# https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
echo "ACTIONS_RUNNER_FORCED_INTERNAL_NODE_VERSION=node16" >> $GITHUB_ENV
echo "ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION=node16" >> $GITHUB_ENV
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- name: "Checkout repository"
uses: actions/checkout@v3
with:
submodules: recursive
- name: "Setup Native Image Tools"
uses: fprime-community/native-images-action@main
- name: "Download JARs"
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: build-jar
path: ${{ inputs.output-directory }}
- if: ${{ inputs.trace }}
name: "Download Tracing"
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: jar-traces
path: ${{ inputs.trace-directory }}
@@ -162,7 +155,7 @@ jobs:
$NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }} ${{ inputs.tools }}
shell: bash
- name: "Archive Native Images"
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.run.tag }}
path: ${{ inputs.output-directory }}/*
@@ -174,7 +167,7 @@ jobs:
${{ inputs.test }}
build-wheels:
needs: [build-jars, build-native-images, generate-run-matricies]
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
matrix: ${{ fromJson(needs.generate-run-matricies.outputs.tags) }}
steps:
@@ -183,7 +176,7 @@ jobs:
with:
submodules: recursive
- name: "Download Package"
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: build-${{ matrix.tag }}
path: ${{ inputs.output-directory }}
@@ -205,7 +198,7 @@ jobs:
fprime-native-packager ${{ inputs.output-directory }} ${FLAGS}
shell: bash
- name: "Archiving Wheels"
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.tag }}
path: packages/dist/*
@@ -220,12 +213,12 @@ jobs:
- name: "Setup Native Image Tools"
uses: fprime-community/native-images-action@main
- name: "Download Native Wheels"
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: wheels-${{ matrix.run.tag }}
path: ${{ inputs.output-directory }}/native
- name: "Download JAR Wheels"
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: wheels-jar
path: ${{ inputs.output-directory }}/jars
@@ -242,12 +235,12 @@ jobs:
publish-wheels:
if: ${{ github.event_name == 'release' }}
needs: [test-wheels, generate-run-matricies]
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
matrix: ${{ fromJson(needs.generate-run-matricies.outputs.tags) }}
steps:
- name: "Download Package"
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: wheels-${{ matrix.tag }}
path: dist
23 changes: 23 additions & 0 deletions .github/workflows/odroid-keepalive.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# The purpose of this workflow is to prevent the Odroid (self-hosted) runner
# from being de-registered by GitHub due to inactivity.
# We only use the Odroid on FPP releases, but runners get de-registered after 14 days
# of idling.
# See https://github.com/orgs/community/discussions/58146
# https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/removing-self-hosted-runners#removing-a-runner-from-a-repository


name: Odroid Keepalive

on:
# workflow_dispatch allows for manual trigger in the repo 'Actions' tab
workflow_dispatch:
# run every Monday 8am
schedule:
- cron: '0 8 * * 1'

jobs:
keepAlive:
runs-on: odroid
steps:
- name: Echo a message
run: echo I am still alive!
8 changes: 4 additions & 4 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
This repository contains the code and documentation for F Prime Prime (FPP for
short).
FPP is a modeling language for the
https://nasa.github.io/fprime/[F Prime flight software framework].
https://fprime.jpl.nasa.gov[F Prime flight software framework].

== Contents

@@ -21,10 +21,10 @@ There is also an FPP plugin available within Visual Studio Code.

See `compiler/README.adoc`.
To use or develop FPP in a standalone mode, you should install these tools.
To use FPP as part of F Prime development, you can install the F Prime tool set,
which includes FPP.
To use FPP as part of F Prime development, you can install the F Prime tool
set, which includes FPP.
See the F Prime installation instructions
https://github.com/nasa/fprime/blob/master/docs/INSTALL.md[here].
https://fprime.jpl.nasa.gov/latest/docs/getting-started/installing-fprime/[here].

=== Spec and User's Guide

2 changes: 2 additions & 0 deletions compiler/.jvmopts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-XX:+CMSClassUnloadingEnabled
-Xss2M
24 changes: 20 additions & 4 deletions compiler/README.adoc
Original file line number Diff line number Diff line change
@@ -34,8 +34,9 @@ That way you can run the tools from anywhere.
* `fpp-locate-uses`
* `fpp-syntax`
* `fpp-to-cpp`
* `fpp-to-xml`
* `fpp-to-dict`
* `fpp-to-layout`
* `fpp-to-xml`

See https://github.com/fprime-community/fpp/wiki/Tools for more information.

@@ -154,10 +155,25 @@ To do that, use the following procedure:
. Run `./install-trace` to install JVM versions of the FPP tools with
tracing enabled in the `bin` directory.

. Edit the file
`compiler/lib/src/main/resources/META-INF/native-image/reflect-config.json`
so that it contains a pair of square brackets `[]` and nothing else.
This will clear out any old trace information.

. Run `./test` to use the installed tools to run the unit tests.
This will run the tracing agent and update the trace files.
This step will run the tracing agent and update the trace files.
All the tests should pass.
If the tests go haywire with failures, the likely cause
is an errant `.lock` file left behind by the tracing agent.
Run `find . -name .lock` in this directory to find the file;
then delete it and retry.

. Commit the updated trace files to the repository.

Remember to run `./install` to install the standard version
of the tools if you no longer want to run the tracing agent.
. Run `./install` to reinstall the standard version
of the tools.

. If you wish, run `./release` to build the native
image files with the new trace files and run the unit tests.
All the tests should pass.
Alternatively you can let CI on `nasa/fpp` do this step.
9 changes: 7 additions & 2 deletions compiler/build.sbt
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ lazy val settings = Seq(
"-deprecation",
"-unchecked",
"-Xfatal-warnings",
"-Xmax-inlines:200"
"-Xmax-inlines:100"
),
libraryDependencies ++= dependencies,
Test / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-oNCXELOPQRM"),
@@ -40,7 +40,8 @@ lazy val root = (project in file("."))
fpp_to_cpp,
fpp_to_json,
fpp_to_xml,
fpp_to_dict
fpp_to_dict,
fpp_to_layout
)

lazy val lib = project
@@ -106,3 +107,7 @@ lazy val fpp_to_dict = (project in file("tools/fpp-to-dict"))
.dependsOn(lib)
.enablePlugins(AssemblyPlugin)

lazy val fpp_to_layout = (project in file("tools/fpp-to-layout"))
.settings(settings)
.dependsOn(lib)
.enablePlugins(AssemblyPlugin)
6 changes: 4 additions & 2 deletions compiler/install
Original file line number Diff line number Diff line change
@@ -64,6 +64,7 @@ fpp-to-cpp
fpp-to-json
fpp-to-xml
fpp-to-dict
fpp-to-layout
"

if git describe --tags --always > /dev/null 2>&1
@@ -76,7 +77,7 @@ else
fi
util=lib/src/main/scala/util
echo "Updating version to $version"
sed -i.bak -e "s/val v = .*/val v = \"$version\"/" \
sed -i.update.bak -e "s/val v = .*/val v = \"$version\"/" \
$util/Version.scala

echo "Building jar files"
@@ -85,7 +86,8 @@ echo $cmd
$cmd

echo "Restoring Version.scala"
cp $util/Version.scala.bak $util/Version.scala
sed -i.restore.bak -e "s/val v = .*/val v = \"[unknown version]\"/" \
$util/Version.scala

mkdir -p $dest

Original file line number Diff line number Diff line change
@@ -11,6 +11,10 @@
"name":"fpp.compiler.FPPToDict",
"methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
},
{
"name":"fpp.compiler.FPPToLayout",
"methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
},
{
"name":"fpp.compiler.FPPtoJson",
"methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
Loading