escet merge requestshttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests2023-02-21T19:00:44Zhttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/464Draft: #454 New output for CIF checks2023-02-21T19:00:44ZDennis HendriksDraft: #454 New output for CIF checks* This merge request is not ready by any means. It serves to allow discussion on this attempt at new output.
* I had to move all CIF checks to a new plugin to prevent a cyclic dependency.
* The design for checks is much simpler, as there...* This merge request is not ready by any means. It serves to allow discussion on this attempt at new output.
* I had to move all CIF checks to a new plugin to prevent a cyclic dependency.
* The design for checks is much simpler, as there are no message classes anymore. Just (formatted) strings.
* I got rid of reporting on ancestors or named objects, requiring `PositionObject` objects with a position. It turns out not all expressions and types have a position, even after re-parsing. I haven't looked into why that is yet. Let's see what we want as output first.
* No more reporting on `null` specifications. Just supply the `Specification` object instead. Typically, this is used in `preprocessSpecification` or `postprocessSpecification`, which have that already anyway. Can use `CifScopeUtils.getSpecification` otherwise.
* For the new output, I opted to first categorize by message, and then sort per line, and then for all violations on the same line report them with the text of the line and markers.
Addresses #454v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/463#388 ESCET runtime launch configuration improvements2023-01-04T11:43:10ZDennis Hendriks#388 ESCET runtime launch configuration improvementsWe now have two launch configurations:
* `escet-dev-runtime.launch` works as the one we had before (that was named `escet-product.launch` before). It makes all workspace plugins available in the runtime.
* `escet-product.launch` now real...We now have two launch configurations:
* `escet-dev-runtime.launch` works as the one we had before (that was named `escet-product.launch` before). It makes all workspace plugins available in the runtime.
* `escet-product.launch` now really launches the product. It for instance no longer makes plugins available that are not contained (directly or indirectly) in the ESCET product features. This more faithfully resembles the product.
* The working directory names have been changed. You may want to change your existing working directory `runtime-product-escet` to `runtime-escet-product`, for it to work with the new `escet-product.launch` launch configuration.
* See the individual commits for more information.
* See issue #388 for more information, including links to Eclipse launch configuration changes that we're adopting here.
Closes #388v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/460#426 Allow multiple occurrences of events in CIF data-based synthesis custom ...2023-01-02T18:04:02ZDennis Hendriks#426 Allow multiple occurrences of events in CIF data-based synthesis custom edge orderNotes:
* This only allows multiple occurrences of the same event in the CIF data-based synthesis custom edge order. Adding automatic algorithms for doing so is out of scope for this issue and merge request.
* The synthesis edges are used...Notes:
* This only allows multiple occurrences of the same event in the CIF data-based synthesis custom edge order. Adding automatic algorithms for doing so is out of scope for this issue and merge request.
* The synthesis edges are used in various places during synthesis. I added a separate variable to store the ordered edges, with potential duplicates, for reachability computations. This means that determining output guards, edge debug output, etc, still operate on the edges without duplicates, to prevent duplicate work there. This does change the debug output, as they are now always the edges in model order.
* By default, duplicates are disallowed. This ensures backward compatibility. It also allows to detect accidental duplicate inclusion of events in the order.
* I used an enum-typed-option to allow configuring this rather than a boolean option. This allows adding additional 'automatic' variants later on, when we add automatic algorithms for heuristically computing edge orders.
* I recommend reviewing per commit.
Closes #426v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/458#408 multivaluetrees.VarInfoBuilder.varInfos no more 'null' first entry.2023-01-02T13:54:09ZDennis Hendriks#408 multivaluetrees.VarInfoBuilder.varInfos no more 'null' first entry.Closes #408Closes #408v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/457#378 CIF data-based synthesis variable orders in separate classes2023-01-05T19:27:53ZDennis Hendriks#378 CIF data-based synthesis variable orders in separate classesThis is another step in #378:
* It mainly separates the variable orders, e.g., model/random/custom order, from the CIF to synthesis converter into separate classes, that allows them to be used multiple times. They are however not yet use...This is another step in #378:
* It mainly separates the variable orders, e.g., model/random/custom order, from the CIF to synthesis converter into separate classes, that allows them to be used multiple times. They are however not yet used multiple times. That will come later in #378.
* Moved and renamed some things, to make it all fit better. Reviewing separate commits is probably easier.
* Currently, a `VarOrderHelper` is created twice, once for the `VarOrder` and once for `VarOrderer`. This is temporary. It keeps the changes smaller for this merge request. It will be changed again in a later step. (Making progress while keeping everything backwards compatible after each step is tricky.)
* Another small change in CIF to synthesis converter: two variables named `variables` and `curOrder` had the same value, so one of them was removed.
Addresses #378v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/456#491 Execute tests in alphabetical order for Maven build.2023-01-02T16:34:14ZDennis Hendriks#491 Execute tests in alphabetical order for Maven build.Closes #491Closes #491v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/453#487 Updated release process for archiving final releases.2022-12-30T10:20:18ZDennis Hendriks#487 Updated release process for archiving final releases.Addresses #487Addresses #487v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/452#486 Update Git repo for v0.9 development2022-12-25T11:27:35ZDennis Hendriks#486 Update Git repo for v0.9 developmentCloses #486Closes #486v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/449#483 Update macOS download instructions2022-12-21T15:48:49ZMartijn Goorden#483 Update macOS download instructionsCloses #483Closes #483v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/440#475 Updated Maven project settings to those applied by m2eclipse.2022-12-30T09:20:15ZDennis Hendriks#475 Updated Maven project settings to those applied by m2eclipse.- Updated Maven project settings to those applied by m2eclipse, where possible.
- `common.raildiagrams` is an Eclipse plug-in, rather than a Maven project. It will have some changes, but now only in `.classpath`. The two worlds collide h...- Updated Maven project settings to those applied by m2eclipse, where possible.
- `common.raildiagrams` is an Eclipse plug-in, rather than a Maven project. It will have some changes, but now only in `.classpath`. The two worlds collide here. May have to revert the changes from time to time after updating it as a Maven project. Don't think this can be avoided.
- Set Java '--release' option. Prevents using unavailable Java APIs. (m2eclipse sets this option as well)
Closes #475v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/617#556 develop to master for v0.102023-06-30T07:42:09ZDennis Hendriks#556 develop to master for v0.10Addresses #556Addresses #556v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/616#556 Updated release notes for v0.10.2023-06-30T07:24:40ZDennis Hendriks#556 Updated release notes for v0.10.Addresses #556Addresses #556v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/615#555 develop to master for v0.10-RC12023-06-26T04:22:03ZDennis Hendriks#555 develop to master for v0.10-RC1Addresses #555Addresses #555v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/614#526 Add controlled system state space size as statistics option2023-06-22T19:37:11ZDennis Hendriks#526 Add controlled system state space size as statistics option* Add it as a statistic. ~Enabled by default.~
* Normal output now, no longer debug output. Still separated from debug output as before though.
* No more extra indentation to match debug output. (similar to other statistics)
* Updated be...* Add it as a statistic. ~Enabled by default.~
* Normal output now, no longer debug output. Still separated from debug output as before though.
* No more extra indentation to match debug output. (similar to other statistics)
* Updated benchmark script, updated/added tests, updated/added documentation.
Best reviewed per commit.
Closes #526v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/613#555 Update release notes for v0.10-RC1.2023-06-26T04:03:07ZDennis Hendriks#555 Update release notes for v0.10-RC1.Addresses #555Addresses #555v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/612#613 Remove deprecated curly bracket syntax for declaring enumeration.2023-06-18T19:47:26ZFerdie Reijnen#613 Remove deprecated curly bracket syntax for declaring enumeration.Addresses #613Addresses #613v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/611#613 Remove deprecated elim-enums options.2023-06-18T19:36:52ZFerdie Reijnen#613 Remove deprecated elim-enums options.Addresses #613Addresses #613v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/610#609 Add fixed-point computations order option to CIF data-based synthesis tool2023-06-20T06:09:03ZDennis Hendriks#609 Add fixed-point computations order option to CIF data-based synthesis tool* The computations must now be able to be performed in any order. This leads to subtle changes in the code to detect a fixed-point. Since each of the three fixed-point computations has very similar code, I decided to merge them. Since th...* The computations must now be able to be performed in any order. This leads to subtle changes in the code to detect a fixed-point. Since each of the three fixed-point computations has very similar code, I decided to merge them. Since this essentially leads to a rewrite of the entire fixed-point computations loops, I went with an incremental change approach. I moved the code from the three separate pieces of code to a common piece of code, part by part, in different commits. This merge request is therefore best reviewed per commit. However, a few changes are reverted or changed again in subsequent commits, as it was not possible to rebase them into older commits due to conflicts. Still, I hope the stack of commits is rather readable.
* I also improved the detection of the overall fixed-point over the different fixed-point computations, making it simpler.
* And I improved the data-based synthesis documentation a bit, here and there, mostly for linking to the performance documentation and to account for some earlier recent changes we made to the synthesis tool.
Closes #609v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/608#612 Create deprecation warning for switch with single case2023-06-24T17:25:40ZMartijn Goorden#612 Create deprecation warning for switch with single caseCloses #612.
First time playing with CIF's typechecker.Closes #612.
First time playing with CIF's typechecker.v0.10Martijn GoordenMartijn Goordenhttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/607#598 Add end-user documentation on switch statements.2023-06-23T11:14:05ZMartijn Goorden#598 Add end-user documentation on switch statements.Closes #598.
I am in doubt what a good location in the tutorial is. On the one hand, it is an expression, so it should fit into the 'values' chapter, as that contains a general discussion on the terms 'type', 'value', and 'expression'. ...Closes #598.
I am in doubt what a good location in the tutorial is. On the one hand, it is an expression, so it should fit into the 'values' chapter, as that contains a general discussion on the terms 'type', 'value', and 'expression'. But this chapter does not contain any sections on which kinds of expressions are possible.
On the other hand, the notion of the `if` expression is actually explained in the `functions` chapter. Since the `if` expression and the `switch` expression are conceptually very close together, I ended up adding the documentation under the `functions` chapter.v0.10Martijn GoordenMartijn Goorden