escet merge requestshttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests2024-01-28T13:27:41Zhttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/778#751 Fixed 'Sumpremica' typo in Ball sorting model source information.2024-01-28T13:27:41ZDennis Hendriks#751 Fixed 'Sumpremica' typo in Ball sorting model source information.Closes #751Closes #751v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/777#750 Fix typos (plural->singular) in PlantsRefsReqsChecker warnings.2024-01-28T13:27:07ZDennis Hendriks#750 Fix typos (plural->singular) in PlantsRefsReqsChecker warnings.Closes #750Closes #750v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/776#749 Removed trailing space from 'cif.bnf'.2024-01-27T19:24:45ZDennis Hendriks#749 Removed trailing space from 'cif.bnf'.Fixes #749Fixes #749v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/774#740 Add syntax highlighting to the documentation (website / Eclipse help only)2024-01-26T09:08:09ZDennis Hendriks#740 Add syntax highlighting to the documentation (website / Eclipse help only)* Best to review per commit.
* Changes:
* Adds syntax highlighting with highlight.js to AsciiDoctor-generated documentation, for the website and Eclipse help. Does not add syntax highlighting to the PDF. For pros/cons, see issue #740.
...* Best to review per commit.
* Changes:
* Adds syntax highlighting with highlight.js to AsciiDoctor-generated documentation, for the website and Eclipse help. Does not add syntax highlighting to the PDF. For pros/cons, see issue #740.
* I opted to style the various syntax elements like we do for our ESCET languages in their text editors. The colors are slightly different due to a light-grey rather than white background.
* The highlight.js `bnf` language doesn't work for us. We use a different BNF syntax. I added a `bnf` language of our own.
* The `console` language supports errors and warnings, like the console in Eclipse.
* The `none` language is for when `source` block in AsciiDoc has no language specified. Defining this language prevents warnings in the browser for not finding the `none` language.
* AsciiDoctor by default includes highlight.js v9, which is no longer supported. I can't find the documentation for that version anymore. I therefore opted to include version 11 instead. There is some fixed JavaScript code generated by AsciiDoctor to invoke highlight.js. I change that slightly to be highlight.js version 11 compatible, preventing a warning in the browser.
* Copies images to 'website' directory, rather than only in the website ZIP that is built. Eases validation/debugging of a single docset.
* Several documentation fixes, for correct languages of source blocks, correct source block syntax, and some other changes that I stumbled upon.
* Updated legal pages of the docsets.
Closes #740v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/773#269 Improve CIF/BDD and synthesis settings classes2024-01-27T11:59:02ZDennis Hendriks#269 Improve CIF/BDD and synthesis settings classes* Best to review per commit. I did it in small steps. I did change a few things in later commits, so probably best to check also the ones after it before making comments.
* Changes:
* Naming consistency improved.
* More logical order...* Best to review per commit. I did it in small steps. I did change a few things in later commits, so probably best to check also the ones after it before making comments.
* Changes:
* Naming consistency improved.
* More logical order of the settings.
* All defaults in the defaults class, where relevant.
* Moved default of `SupervisorNameOption` into the option itself, rather than in the static method. This is backward incompatible for end users, as giving an empty value for the option no longer defaults to the default value. But that very likely should not affect end users, as they likely only set a different name, or don't provide the option at all. The change helps in the uniformity of handling the various settings.
* No more constructors with many arguments for the settings classes. Instead, use getters and setters now. Also added prevention of modification after settings are set.
* Some notes:
* Quite a bit of code in the settings classes now. But, it is all pretty simple and similar. And it is localized in those classes.
* The creation of settings in the synthesis application is much more readable now.
* The creation of settings in the tests is much simpler now, as only some settings need to be set that are relevant to the test, and setting them is more straightforward with the mutable settings classes.
Addresses #269v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/772#706 Move CIF/BDD-related classes from synthesis to a new CIF/BDD plugin.2024-01-23T07:32:52ZDennis Hendriks#706 Move CIF/BDD-related classes from synthesis to a new CIF/BDD plugin.* Best to review per commit.
* Introduced `org.eclipse.escet.cif.bdd` package. Moved the relevant classes to it. Improved the package structure a bit. Updated everything else as a result of the moves.
* Last change for #706. Work continu...* Best to review per commit.
* Introduced `org.eclipse.escet.cif.bdd` package. Moved the relevant classes to it. Improved the package structure a bit. Updated everything else as a result of the moves.
* Last change for #706. Work continues in higher-level issue #269.
Closes #706v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/770#679 PLCgen: Cleanup and fix variable handling2024-01-23T06:26:12ZAlbert Hofkamp#679 PLCgen: Cleanup and fix variable handlingSiemens targets need an additional prefix for persistent state variables which I ignored until now.
While figuring out what to do I noticed cif2plc uses the local and temp variables of the main program for state respectively temporary v...Siemens targets need an additional prefix for persistent state variables which I ignored until now.
While figuring out what to do I noticed cif2plc uses the local and temp variables of the main program for state respectively temporary variables. Assuming the writers are aligned to this use, I dropped the global state variable list, and moved those variables to the local variables of the main program POU. This caused large moves in variable declarations in the test output.
Also I cleaned up the writers a bit to use proper data values rather than to rely on magic name matching or completely ignore the input from the generator (in case of S7 timers). In addition some hard-coded additions were deleted. Adding local variables to a function now crashes rather than sneakily moving them to a semantically different variable group (since we don't have PLC functions, nothing crashed).
Finally added a prefix for variables generically, and used that for adding a non-empty prefix to state variables for S7 targets. While testing I found presets for continuous variables were in the wrong table, and moved those as well.
Introducing the prefix caused large code changes in the main programs of S7 targets.
Readable by commit.
Addresses #679v3.0Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/771#706 CIF data-based synthesis: more renaming and splitting synthesis/non-synt...2024-01-22T08:12:55ZDennis Hendriks#706 CIF data-based synthesis: more renaming and splitting synthesis/non-synthesis parts* Best to review per commit.
* Most notable changes:
* Made more functionality reusable (preprocessing, BDD factory creation, BDD statistics configuration + printing/writing).
* Made precondition check for non-determinism more config...* Best to review per commit.
* Most notable changes:
* Made more functionality reusable (preprocessing, BDD factory creation, BDD statistics configuration + printing/writing).
* Made precondition check for non-determinism more configurable.
* Create settings earlier, and use settings rather than options.
* Split synthesis settings from CIF/BDD settings.
* Split synthesis statistics from CIF/BDD statistics, athough there is some overlap since Java enums don't inheritance.
* Removed synthesis-related terminology/references/etc in non-synthesis parts.
Addresses #706v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/764#679 PLCgen: Add automatic enum conversion option.2024-01-18T09:08:14ZAlbert Hofkamp#679 PLCgen: Add automatic enum conversion option.Addresses #679Addresses #679v3.0Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/769#706 More synthesis/BDD renaming and splitting synthesis/non-synthesis parts2024-01-16T09:20:31ZDennis Hendriks#706 More synthesis/BDD renaming and splitting synthesis/non-synthesis parts* Another batch of changes. Quite a few changes, but separately they are all small. Best to review per commit.
* Overview of the changes (see commit messages for the details):
* Renamed some classes/variables/fields to be non-synthesis...* Another batch of changes. Quite a few changes, but separately they are all small. Best to review per commit.
* Overview of the changes (see commit messages for the details):
* Renamed some classes/variables/fields to be non-synthesis specific.
* Avoid sythesis-specifics in JavaDocs and comments of non-synthesis-specific classes.
* Some other JavaDoc/comment improvements.
* Split synthesis and non-synthesis specific parts for certain classes. Especially introduced a `CifDataSynthesisResult` class.
* Does not affect end users.
Addresses #706v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/767#38 AsciiDoc HTML TOC now animates collapse/expand.2024-01-15T16:04:17ZDennis Hendriks#38 AsciiDoc HTML TOC now animates collapse/expand.* Solution uses only CSS, no JavaScript.
* The animation makes it more apparent to users what happens. And I personally think it looks really cool :smile:
Addresses #38* Solution uses only CSS, no JavaScript.
* The animation makes it more apparent to users what happens. And I personally think it looks really cool :smile:
Addresses #38v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/768#38 AsciiDocHtmlModifier: fix two typos in comments.2024-01-15T11:39:17ZDennis Hendriks#38 AsciiDocHtmlModifier: fix two typos in comments.Addresses #38Addresses #38v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/766#715 JS codegen: fix init of constants defined using other constants.2024-01-12T08:32:54ZDennis Hendriks#715 JS codegen: fix init of constants defined using other constants.* Fixes the issue discussed at https://gitlab.eclipse.org/eclipse/escet/escet/-/issues/715#note_1611585.
Addresses #715* Fixes the issue discussed at https://gitlab.eclipse.org/eclipse/escet/escet/-/issues/715#note_1611585.
Addresses #715v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/765#706 CIF data-based synthesis: rename 'spec' package classes2024-01-12T08:05:03ZDennis Hendriks#706 CIF data-based synthesis: rename 'spec' package classes* Best to review per commit.
* Renamed class in the `spec` package that represent the CIF specification in BDD representations, from `Synthesis*` to `CifBdd*`. Also updates the rest of the plugin to match it.
* This does not rename every...* Best to review per commit.
* Renamed class in the `spec` package that represent the CIF specification in BDD representations, from `Synthesis*` to `CifBdd*`. Also updates the rest of the plugin to match it.
* This does not rename everything that needs to be renamed in the plugin, but focuses on the specification representation, and what refers to or uses that.
Addresses #706v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/763#38 AsciiDoc HTML breadcrumbs now include virtual TOC entries2024-01-10T08:00:20ZDennis Hendriks#38 AsciiDoc HTML breadcrumbs now include virtual TOC entries* Best to review per commit.
* Notes about the changes:
* The breadcrumbs are now based on the TOC, rather than on the page containment. This ensures consistency between the TOC and breadcrumbs.
* The virtual TOC entries that are anc...* Best to review per commit.
* Notes about the changes:
* The breadcrumbs are now based on the TOC, rather than on the page containment. This ensures consistency between the TOC and breadcrumbs.
* The virtual TOC entries that are ancestors of the current page are now also included in the breadcrumb.
* As before, the breadcrumbs end at the current page. Virtual TOC entries within the page are not part of the breadcrumb of that page.
* Note that section headings on a page are never part of breadcrumbs, as they can be in the TOC, but can't have child pages.
Addresses #38v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/761#38 Link virtual TOC entries and their targets.2024-01-09T14:55:29ZDennis Hendriks#38 Link virtual TOC entries and their targets.Some notes about the merge request:
* Best to review per commit.
* Fixed virtual TOC entries linking to the correct targets.
* Also improved virtual TOC entries/targets naming and styling consistency.
* Furthermore, fixed highlighting of...Some notes about the merge request:
* Best to review per commit.
* Fixed virtual TOC entries linking to the correct targets.
* Also improved virtual TOC entries/targets naming and styling consistency.
* Furthermore, fixed highlighting of the home page in the TOC.
* And some other small improvements. See individual commits.
Some notes about the virtual TOC entries:
* We have at certain places virtual TOC entries, wrappers that group a number of child pages:
* Chi documentation: -
* CIF documentation: SBE (2x), language tutorial (10x), reference manual (2x), tools (6x), simulator (5x)
* ESCET development documentation: index (1x)
* ESCET project documentation: -
* Tooldef documentation: reference manual (2x)
* These help to structure the pages under them, but are not actual sections (headings) on pages after splitting to multi-page HTML. Hence, they don't link to anything that exists.
* Potential solutions are:
* Make them real sections. But, the whole point was to have them be wrappers that only exist in the TOC. If they are sections/headings on the page, and there are multiple of them, you'd get them in the TOC, but the actual pages that they contain after all of them, as you can't mix sections and pages.
* Make them real pages. But, then the page needs content. This would lead to duplication, as we would need to duplicate the list of child references on the overview page and each virtual TOC entry turned new page. This would be annoying to maintain. Also, having the lists twice is not very intuitive to the user when navigating.
* Have no such wrappers. But, then we get larger groups of child pages directly under other pages. This is more difficult for users to grasp. It hinders navigation. We have the wrappers for a reason.
* Somehow relate the virtual TOC entries to their intended targets. Give the TOC entries and their targets relatable IDs (`virtual-toc-entry--<something>` and `virtual-toc-target--<something>`). This will work as desired, at the cost of an extra naming convention and some code in the multi-page HTML splitter to make it work.
* I opted for the last solution, as that is best for end users.
Addresses #38v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/762#715 Replace final C89 to JavaScript in JS documentation.2024-01-09T11:33:42ZMartijn Goorden#715 Replace final C89 to JavaScript in JS documentation.Minor documentation improvement.
Addresses #715.Minor documentation improvement.
Addresses #715.v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/760#706 CIF data-based synthesis: introduce settings class + split application/l...2024-01-22T16:54:05ZDennis Hendriks#706 CIF data-based synthesis: introduce settings class + split application/library* Eliminated use of the application framework within the CIF data-based synthesis plugin. The application class, UI command handler class, and options package, still use and depend on the application framework.
* Introduced a `CifDataSyn...* Eliminated use of the application framework within the CIF data-based synthesis plugin. The application class, UI command handler class, and options package, still use and depend on the application framework.
* Introduced a `CifDataSynthesisSettings` class to hold the settings. Changed the code to use that rather than the options.
* I tried to do things in separate commits. There are quite a few. I did forgot a few things, that I added in later commits. Also fixed a regression in a later commit. And made some further improvements in later commits. Not sure whether looking at it per commit or just at the end result is best now.
* The changes are all quite straightforward, I think.
* Some end-user error messages related to options/settings have changed.
* There are more steps to come in #706. This is about the application/library split only.
Addresses #706v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/759#38 Fix TOC item highlighting and expanding for current page section.2024-01-08T16:00:17ZDennis Hendriks#38 Fix TOC item highlighting and expanding for current page section.* Best to review per commit.
* First commit fixes TOC item highlighting and expanding for current page section.
* Second commit puts website JavaScript code in a separate file. This reduces the size of the HTML files, sharing the JavaScr...* Best to review per commit.
* First commit fixes TOC item highlighting and expanding for current page section.
* Second commit puts website JavaScript code in a separate file. This reduces the size of the HTML files, sharing the JavaScript code. Also has some other small improvements/fixes.
* Note that this fixes the TOC highlighting and expanding for TOC items that are sections on pages, rather than full pages. It does not yet fix the TOC for virtual TOC items, items that exist only in the TOC and are not pages or sections on pages. Fixing that is for a next merge request.
Addresses #38v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/758#735 Add CIF to CIF transformation to remove annotations2024-01-05T19:31:38ZDennis Hendriks#735 Add CIF to CIF transformation to remove annotations* Best to review per commit.
Closes #735* Best to review per commit.
Closes #735v3.0