escet merge requestshttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests2023-02-14T10:09:47Zhttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/498#378 Add advanced variable ordering option to data-based synthesis tool2023-02-14T10:09:47ZDennis Hendriks#378 Add advanced variable ordering option to data-based synthesis tool* Quite a few changes in the end, to make it all work, and to ensure it is consistent.
* Design decisions:
* I went with an SeText-based parser, to allow for a more user-friendly syntax. But, some things had to be done in the type chec...* Quite a few changes in the end, to make it all work, and to ensure it is consistent.
* Design decisions:
* I went with an SeText-based parser, to allow for a more user-friendly syntax. But, some things had to be done in the type checker to avoid conflicts.
* We now have the advanced option, and all the simple/existing options. They may not be mixed.
* I improved the debug output, to be more informative (and see what is going on), and easier to interpret (I think).
* Since different representations and relations are now mixed, algorithms decide by themselves whether they are skipped or not. This allows some algorithms to be executed, and other not, rather than skipping all of them.
* The DCSH algorithm is no longer considered experimental. We've seen good results from it already.
* I tried to keep the simple configuration documentation separate from the advanced configuration documentation.
* All changes are still backward compatible, except for debug output, and less algorithm skipping.
* Probably easiest to review per commit, but:
* Syntax definition, parser and type checker get improvements and fixes in later commits.
* A few small documentation changes get partly fixed/undone by later commits.
* Maybe a few more small things.
* (I can make a whole new branch and redo the commits, but I hope you can also review it like this, as it would be quite some effort to do that.)
* I have more ideas for next steps, but I'll create one or more issues for them after this one is resolved.
Closes #378v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/495#418 Generate global variables in new PLC code generator2023-02-10T14:10:29ZAlbert Hofkamp#418 Generate global variables in new PLC code generatorVariables are here!
- Adding several generators (for a wide notion of "generator").
- Cif processor is likely doing a bit too much with enumerations currently.
- Not sure the type generator is the final spot for enumerations, but that w...Variables are here!
- Adding several generators (for a wide notion of "generator").
- Cif processor is likely doing a bit too much with enumerations currently.
- Not sure the type generator is the final spot for enumerations, but that will sort itself out once we get expressions.
- Switched int type selection to an option for setting the desired type rather than the maximum type. Added a float version as well.
- Needed to drag in the S7 writer, as it didn't allow writing other variable tables.
- Added a simplified "all1.cif" test to the testfiles, the original file uses many features currently not processed.
Next step is expressions, for constants and variable initialization (in variable tables).
Reading one commit at a time is likely simplest.
Adresses #418v0.9Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/494#198 State requirement invariants per edge: replace simplify by a skip.2023-01-30T19:24:50ZDennis Hendriks#198 State requirement invariants per edge: replace simplify by a skip.After [our discussions](https://gitlab.eclipse.org/eclipse/escet/escet/-/issues/198#note_1073185), I'm replacing the simplify with a skip check.
Closes #198After [our discussions](https://gitlab.eclipse.org/eclipse/escet/escet/-/issues/198#note_1073185), I'm replacing the simplify with a skip check.
Closes #198v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/492#502 Extended description on what behavior is and is not possible for CIF aut...2023-02-14T21:15:53ZFerdie Reijnen#502 Extended description on what behavior is and is not possible for CIF automataCloses #502Closes #502v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/491#504 Renamed section to ranged integers.2023-01-28T10:56:04ZFerdie Reijnen#504 Renamed section to ranged integers.Closes #504Closes #504v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/490#509 Text too firm on https://www.eclipse.org/escet/cif/language-tutorial/dat...2023-01-28T07:32:15ZFerdie Reijnen#509 Text too firm on https://www.eclipse.org/escet/cif/language-tutorial/data/state-evt-excl-invariants.htmlCloses #509Closes #509v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/488#518 Removed duplicate polyglot global Git ignore.2023-01-24T07:01:22ZDennis Hendriks#518 Removed duplicate polyglot global Git ignore.Closes #518Closes #518v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/487#198 Add alternative second approach to apply state requirement invariants du...2023-02-14T21:17:20ZDennis Hendriks#198 Add alternative second approach to apply state requirement invariants during data-based synthesis* Best to review per commit, I think.
* We now have two approaches to apply state requirement invariants for data-based synthesis.
* Added an option to choose between the two approaches.
* Changes are essentially backwards compatible, bu...* Best to review per commit, I think.
* We now have two approaches to apply state requirement invariants for data-based synthesis.
* Added an option to choose between the two approaches.
* Changes are essentially backwards compatible, but do lead to some changes in debug output.
* The option has no effect on the benchmark models, as the don't have any state requirement invariants.
* I tried to document the new option in a way that explains its effects. But, it is quite advanced. It may not be super easy to read for many users.
* Some small code improvements, including splitting some methods.
* Some small documentation improvement.
Closes #198v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/486#510 Initial value raises questions on https://www.eclipse.org/escet/cif/lang...2023-01-23T19:04:01ZFerdie Reijnen#510 Initial value raises questions on https://www.eclipse.org/escet/cif/language-tutorial/channels/intro.htmlCloses #510Closes #510v0.9https://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/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.9