escet merge requestshttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests2023-10-24T20:09:07Zhttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/672#678 Free dropped bits for CifBddBitVector resize.2023-10-24T20:09:07ZFerdie Reijnen#678 Free dropped bits for CifBddBitVector resize.Closes #678Closes #678v2.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/671#661 Large expressions in exception reporting crash the CIF simulator2023-10-16T18:39:09ZMartijn Goorden#661 Large expressions in exception reporting crash the CIF simulatorCloses #661.Closes #661.v2.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/663#655 Bug in CifToSynthesisConverter for resizing value vector2023-10-09T08:36:11ZFerdie Reijnen#655 Bug in CifToSynthesisConverter for resizing value vectorCloses #665Closes #665v2.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/657#658 Fix 'cifexplorer' script: use correct plugin to find application.2023-09-25T13:32:25ZDennis Hendriks#658 Fix 'cifexplorer' script: use correct plugin to find application.Closes #658Closes #658v1.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/649#649 EventDisabler now uses try-with-resources to read event names file.2023-09-16T19:12:17ZDennis Hendriks#649 EventDisabler now uses try-with-resources to read event names file.- Fixes a resource leak, where the file stream was never closed.
Closes #649- Fixes a resource leak, where the file stream was never closed.
Closes #649v1.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/647#646 FESTO benchmark model: removed duplicate invariants.2023-09-11T06:05:48ZDennis Hendriks#646 FESTO benchmark model: removed duplicate invariants.* Changed as discussed in #646.
* Output has not changed in any meaningful way: [output.diff](/uploads/ddfb49607beea93b561b166812ee728e/output.diff) / [generated.diff](/uploads/13bd5979b8ffe9c855d84e0e7f0dfd63/generated.diff)
Closes #646* Changed as discussed in #646.
* Output has not changed in any meaningful way: [output.diff](/uploads/ddfb49607beea93b561b166812ee728e/output.diff) / [generated.diff](/uploads/13bd5979b8ffe9c855d84e0e7f0dfd63/generated.diff)
Closes #646v1.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/637#639 Fix performance regression in finite response checker2023-08-28T12:58:55ZDennis Hendriks#639 Fix performance regression in finite response checker- If only finite response is checked, the unneeded global guarded updates are no longer computed. This fixes the performance regression.
- The controller checker now also requires at least one enabled check. This prevents performing lots...- If only finite response is checked, the unneeded global guarded updates are no longer computed. This fixes the performance regression.
- The controller checker now also requires at least one enabled check. This prevents performing lots of calculations in preparation, that are then not used by any check.
- Best reviewed per commit.
Closes #639v1.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/622#620 CIF to Supremica transformation now only generates at most one guard per...2023-07-06T19:51:14ZDennis Hendriks#620 CIF to Supremica transformation now only generates at most one guard per edgeCloses #620Closes #620v1.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/618#611 CIF simulator handles large expressions2023-10-06T07:12:13ZMartijn Goorden#611 CIF simulator handles large expressionsI implemented a new data structure `ExprCodeGeneratorResult` that collects information while generating code for expressions. It encapsulates parts of the expression in new methods during the analysis of the expression tree. It returns t...I implemented a new data structure `ExprCodeGeneratorResult` that collects information while generating code for expressions. It encapsulates parts of the expression in new methods during the analysis of the expression tree. It returns this information back to the caller of `ExprCodeGenerator` such that the caller can include these additional methods. (`ExprCodeGenerator` itself is not handling the actual file content, so cannot directly write the methods to file once it creates a new one.)
The current implementation solves the problem in #611. For the model [SupConnectTwo.cif](/uploads/b94dc7dea97b7e803612efd4f2eca1fa/SupConnectTwo.cif), it generates [Aut_sup.java](/uploads/454589dc1d7dce78e98eb94a8abfa331/Aut_sup.java), which can be sucessfully parsed. Furthermore, the current changes still pass all original test cases.
I would like to get some feedback on this idea, hence the draft labeling. Some things to take into account.
- Only the guard code generation takes the new data structure correctly into account. Other places that call methods from `ExprCodeGenerator` don't do it fully correctly (as long as no method for a sub expression is generated, it works fine). If the approach is fine, I will adjust these other calls as well.
- The generation of the new methods code might possibly be also done in the new class `ExprCodeGeneratorResult`. The caller of methods in `ExprCodeGenerator` than only need to insert these new methods in the right place in their files.
- If more than two `ExprCodeGeneratorResult` objects are to be merge, the check whether they together exceed the limit is done only after merging them (and thus only a single new method will be created). Maybe if a subset of them already exceed the limit, they should already be encapsulated by a new method before continuoing with the merge.
- The current limit is not optimized. For the model above, it works with `limit = 1,000`, but not with `limit = 10,000`.
- Originally, when the evaluation of a guard fails during run-time, an exception is thrown that includes the full guard. This is also not possible for very long guards (you will get a `static string is too long` error). What would be a good alternative exception text that can indicate which guard causes the problem.
- No new test case is yet included.
Best reviewed per commit, but some later commits fix some problems though.
Closes #611v2.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/609#610 CIF data-based synthesis BDD operation cache size/ratio improvements and...2023-06-21T21:00:58ZDennis Hendriks#610 CIF data-based synthesis BDD operation cache size/ratio improvements and fixes* Upgrade from JavaBDD 5.0.0 to 6.0.0, to fix the inverted BDD operation cache ratio bug, also improving the precision of the option.
* Improved and extended the CIF data-based synthesis performance documentation.
* Improved the documen...* Upgrade from JavaBDD 5.0.0 to 6.0.0, to fix the inverted BDD operation cache ratio bug, also improving the precision of the option.
* Improved and extended the CIF data-based synthesis performance documentation.
* Improved the documentation of the BDD operation cache size/ratio options.
Closes #610v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/592#590 Renamed org.eclipse.escet.cif.common.checkers package.2023-05-30T19:42:08ZDennis Hendriks#590 Renamed org.eclipse.escet.cif.common.checkers package.* Removed the `common` part, to make package match plugin name.
* Best reviewed per commit.
Closes #590* Removed the `common` part, to make package match plugin name.
* Best reviewed per commit.
Closes #590v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/581#589 Fix PLC statement copying2023-05-13T13:11:51ZAlbert Hofkamp#589 Fix PLC statement copying- Adds debugging output for `ExprGenResult` which is nice to keep.
- Use the right for for copying PLC statements.
- Updates test expectations.
Closes #589- Adds debugging output for `ExprGenResult` which is nice to keep.
- Use the right for for copying PLC statements.
- Updates test expectations.
Closes #589v0.10Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/559#567 Fix CIF synthesis analysis tool command line script ending prematurely2023-04-24T19:07:16ZPatrick van Berkel#567 Fix CIF synthesis analysis tool command line script ending prematurelyCurrently the Synthesis Analysis Application ends immediately after the creation of the UI causing the application and UI to close.
To enable the standalone application `./bin/cifsynthanalys` to wait for the editor to complete the publi...Currently the Synthesis Analysis Application ends immediately after the creation of the UI causing the application and UI to close.
To enable the standalone application `./bin/cifsynthanalys` to wait for the editor to complete the public method `waitUntilClosed()` has been added to the `ControlEditor`. This method blocks the calling thread using `wait()`. To release the waiting thread a `DisposeListener` has been added which will notify all waiting threads when the editors `contents` is being disposed.
Addresses #567v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/557#567 Reference correct plugin_name in eventbased standalone application.2023-04-20T20:53:05ZPatrick van Berkel#567 Reference correct plugin_name in eventbased standalone application.All scripts which execute the stand-alone application based on the org.eclipse.escet.cif.eventbased package now reference the correct plugin name i.s.o. the package name.
This merge request has been tested by executing the following sta...All scripts which execute the stand-alone application based on the org.eclipse.escet.cif.eventbased package now reference the correct plugin name i.s.o. the package name.
This merge request has been tested by executing the following standalone applications (on both Windows and Ubuntu) using the `-h` argument.
```
cifabstr, cifctrlchk, cifdfamin, ciflngeqv, cifncchk,
cifnfadfa, cifobschk, cifprod, cifproj, cifsupsynth,
cifsynthanalys, ciftrim, ciftrimchk
```
These scripts have not been tested on MacOS.
Addresses #567.v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/551#377 Legacy hyper-edge creator: consider location invariants.2023-04-05T06:29:57ZDennis Hendriks#377 Legacy hyper-edge creator: consider location invariants.- Previously, for each location, the automaton invariants were handled, where the location invariants were to be processed.
- It was a copy/paste bug.
- This could affect synthesis performance.
Closes #377- Previously, for each location, the automaton invariants were handled, where the location invariants were to be processed.
- It was a copy/paste bug.
- This could affect synthesis performance.
Closes #377v0.10https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/537#552 Fix BDD variable order option name in CIF documentation.2023-03-21T12:26:29ZDennis Hendriks#552 Fix BDD variable order option name in CIF documentation.* Rename 'BDD variable order' option in CIF docs to correct name.
* Improve JavaDoc of `BddVariableOrderOption` class.
Closes #552* Rename 'BDD variable order' option in CIF docs to correct name.
* Improve JavaDoc of `BddVariableOrderOption` class.
Closes #552v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/535#550 Export non-exported packages to silence warnings.2023-03-20T08:13:22ZDennis Hendriks#550 Export non-exported packages to silence warnings.Closes #550Closes #550v0.9https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/528#546 Write DMM as text in Dmm.toString()2023-04-01T10:45:57ZAlbert Hofkamp#546 Write DMM as text in Dmm.toString()Closes #546
Multi-level Dmm output in tests is a text-file rather than a pure CSV file, therefore using normal EOL sequences is sufficient.Closes #546
Multi-level Dmm output in tests is a text-file rather than a pure CSV file, therefore using normal EOL sequences is sufficient.v0.9Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/518#540 Refactor AppStream to detect all EOL sequences.2023-04-01T10:45:57ZAlbert Hofkamp#540 Refactor AppStream to detect all EOL sequences.Implementing recognizing `\r`, `\n`, and `\r\n` sequences as an EOL sequence, to be replaced by the configured replacement in `AppStream`.
Addresses #540Implementing recognizing `\r`, `\n`, and `\r\n` sequences as an EOL sequence, to be replaced by the configured replacement in `AppStream`.
Addresses #540v0.9Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/517#543 Incorrect command line option max memory stats for databased synthesis2023-03-02T05:16:40ZFerdie Reijnen#543 Incorrect command line option max memory stats for databased synthesisCloses #543Closes #543v0.9