escet merge requestshttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests2023-01-22T09:31:48Zhttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/485#512 Initial value of pos in https://www.eclipse.org/escet/v0.1/cif/#tut-time...2023-01-22T09:31:48ZFerdie Reijnen#512 Initial value of pos in https://www.eclipse.org/escet/v0.1/cif/#tut-time-chapter-deadlock-livelockCloses #512Closes #512v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/483#517 Type checker must ensure that all objects have position info.2023-01-24T07:23:03ZDennis Hendriks#517 Type checker must ensure that all objects have position info.* This is a prerequisite for reporting CIF check violations on any object that has a violation, in #454.
* This separates out changes from !464 that are not really in scope of #454.
* Also optimizes int to real widening in CIF type check...* This is a prerequisite for reporting CIF check violations on any object that has a violation, in #454.
* This separates out changes from !464 that are not really in scope of #454.
* Also optimizes int to real widening in CIF type checker; there is no need to create the integer literal/type if they are not used.
* Best reviewed per commit.
Closes #517v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/482#454 New plugin for the CIF checkers.2023-01-24T07:22:55ZDennis Hendriks#454 New plugin for the CIF checkers.- Functionality has grown, and deserves a separate plugin.
- Prevents pretty printer vs common dependency cycle, in next steps for #454.
Addresses #454- Functionality has grown, and deserves a separate plugin.
- Prevents pretty printer vs common dependency cycle, in next steps for #454.
Addresses #454v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/481#505 Fix raildiagram text2023-01-23T18:07:54ZAlbert Hofkamp#505 Fix raildiagram textFixes #505
Also does a few other minor fixes.
Reading each commit separately is recommended, or the big deletes make not much sense.
This is just the patched code, I'd guess some other things should be done too, but not sure what.
At ...Fixes #505
Also does a few other minor fixes.
Reading each commit separately is recommended, or the big deletes make not much sense.
This is just the patched code, I'd guess some other things should be done too, but not sure what.
At the very least we should decide an approach together with !473v0.9Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/480#516 Refactor plcgen2023-01-23T17:25:52ZAlbert Hofkamp#516 Refactor plcgenShould be readable by viewing each commit. Fixing moved code is often done separately so this doesn't compile after each commit.
Closes #516Should be readable by viewing each commit. Fixing moved code is often done separately so this doesn't compile after each commit.
Closes #516v0.9Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/479#492 Update expected test output.2023-01-17T08:23:16ZDennis Hendriks#492 Update expected test output.It seems that merging two merge requests quickly after each other can lead to race conditions. The one leads to different test output, making the new models added by the other to now fail testing.
Closes #492It seems that merging two merge requests quickly after each other can lead to race conditions. The one leads to different test output, making the new models added by the other to now fail testing.
Closes #492v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/478#492 Allow different forward/backward edge orders for data-based synthesis2023-01-17T07:57:34ZDennis Hendriks#492 Allow different forward/backward edge orders for data-based synthesis* I made many small steps in separate commits, so probably best to review per commit.
* The defaults for the forward and backward edge order remains model order, for backward compatibility.
* I added two new options to specify the orders...* I made many small steps in separate commits, so probably best to review per commit.
* The defaults for the forward and backward edge order remains model order, for backward compatibility.
* I added two new options to specify the orders. To ensure that users who use the old option get a nice message, I kept the old option, but using it results in a custom error message indicating it is no longer supported.
Closes #492v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/477#378 CIF data-based synthesis variable ordering and reordering in one go (2nd...2023-01-17T07:28:13ZDennis Hendriks#378 CIF data-based synthesis variable ordering and reordering in one go (2nd attempt)* This merge request replaces !472, the first attempt. The end result is nearly identical in code, but this merge request has a cleaner history.
* The main idea is still that the initial variable order and subsequent algorithms applied t...* This merge request replaces !472, the first attempt. The end result is nearly identical in code, but this merge request has a cleaner history.
* The main idea is still that the initial variable order and subsequent algorithms applied to it, are now one configuration, and they are applied in one go. This is a step in #378, towards also adding a new option that can create more complex such configurations, but that can be applied in the same way.
* I reworked the commits, which will hopefully make it easier to follow. It is thus probably easiest to review per commit. But, there is quite some shuffling of code involved, so intermediate results after each commit don't necessarily compile, etc. I tried to go, for the two files with major changes, from top to bottom through the file with the changes.
* The first variable order helper is now always created from the model order, rather than the initial variable order. This changes the debug output for some test models.
* The second variable order helper is now created after the initial order is applied, in `OrdererVarOrder`.
* Some other smaller changes, see commit messages of separate commits. This includes various debug output changes.
* The changes are backwards compatible. There are debug output changes, but the orders used for synthesis remain the same.
Addresses #378v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/473#112 Generate Chi railroad diagrams using the new railroad diagram generator2023-01-23T21:12:19ZFerdie Reijnen#112 Generate Chi railroad diagrams using the new railroad diagram generatorCloses #112Closes #112v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/472Draft: #378 CIF data-based synthesis variable ordering and reordering in one go.2023-03-12T11:23:27ZDennis HendriksDraft: #378 CIF data-based synthesis variable ordering and reordering in one go.* The main idea is that the initial variable order and subsequent algorithms applied to it, are now one configuration, and they are applied in one go. This is a step in #378, towards also adding a new option that can create more complex ...* The main idea is that the initial variable order and subsequent algorithms applied to it, are now one configuration, and they are applied in one go. This is a step in #378, towards also adding a new option that can create more complex such configurations, but that can be applied in the same way.
* Probably easiest to review per commit, but there is some shuffling involved that in hindsight I could have maybe done in more separate commits.
* The variable ordering helper is now always created from the model order. This may change the variable order. For the test models, I checked each change manually, and found it to be different but equivalent. I'm running the benchmark models now, to see if/how it affects them. I'll post a separate comment about it. But the merge request can be reviewed already.
* Some other smaller changes, see commit messages of separate commits.
Addresses #378v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/470#368 Implement `cif2dmm` computation, 3rd attempt2023-01-18T06:45:01ZAlbert Hofkamp#368 Implement `cif2dmm` computation, 3rd attemptAdds a `multilevel` application that currently only performs a cif-to-dmm conversion, with optional output of the computed DMMs.
Idea is still the same, with adjustments for the updated approach (mostly the extension with requirement gr...Adds a `multilevel` application that currently only performs a cif-to-dmm conversion, with optional output of the computed DMMs.
Idea is still the same, with adjustments for the updated approach (mostly the extension with requirement groups).
Few notes:
- The rules to compute the DMMs are documented as well.
They should be the same as discussed before in #368, except that input variables now always access themselves. The reason for the latter change is that a group needs to have at least one owning or accessing relation or it will never be merged or used.
Also added a bit more text and split the rules into the basic cases, rather than having them merged into a single sentence.
- The pre-checker only covers the needs of cif-to-dmm. In the future, a decision is needed how to add more other checks (eg to fulfill requirements of datasynthesis).
- The unit tests cover finding relations and merging of groups. The `cif.tests` project contains test cases that compare the resulting DMMs.
Addresses #368v0.9Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/469#488 Search engine indexes old versions2023-01-06T07:41:06ZFerdie Reijnen#488 Search engine indexes old versionsAddresses #488.Addresses #488.v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/468#498 Document how to upgrade license year2023-01-07T14:42:08ZFerdie Reijnen#498 Document how to upgrade license yearCloses #498.Closes #498.v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/467#497 Change year to 20232023-01-03T10:28:36ZFerdie Reijnen#497 Change year to 2023Closes #497.Closes #497.https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/466#493 Detect reachability fixed point of CIF data-based synthesis sooner2023-01-24T13:47:38ZDennis Hendriks#493 Detect reachability fixed point of CIF data-based synthesis soonerCloses #493Closes #493v0.9https://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/462Draft: #488 Search engine indexes old versions2023-01-05T11:42:52ZFerdie ReijnenDraft: #488 Search engine indexes old versionsAddresses #488.Addresses #488.https://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.9