escet merge requestshttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests2022-06-15T21:29:10Zhttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/332#196 Add graphs as representation to VarOrdererHelper.2022-06-15T21:29:10ZDennis Hendriks#196 Add graphs as representation to VarOrdererHelper.The DCSH algorithm is based on multiple node ordering algorithms, working on graphs. This merge request adds graphs as a representation that can be used by data-based synthesis variable ordering algorithms.
For now, graphs are created f...The DCSH algorithm is based on multiple node ordering algorithms, working on graphs. This merge request adds graphs as a representation that can be used by data-based synthesis variable ordering algorithms.
For now, graphs are created from the existing hyper-edges:
- This ensures consistency between the representations.
- We could later opt for other ways to create the hyper-edges/graphs.
Also added some extra utility methods for use by variable ordering algorithms, to work with the various representations.
Addresses #196v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/331#176 Upgrade to Eclipse 2022-062023-04-23T11:11:44ZFerdie Reijnen#176 Upgrade to Eclipse 2022-06Closes #176
Closes #76Closes #176
Closes #76v0.8https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/330#369 Fix outdated comments in SynthesisToCifConverter regarding explicit kinds2022-06-12T18:11:05ZFerdie Reijnen#369 Fix outdated comments in SynthesisToCifConverter regarding explicit kindsCloses #369Closes #369v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/329#381 Third party dependencies license check update (2022-06-12)2022-06-12T16:43:54ZFerdie Reijnen#381 Third party dependencies license check update (2022-06-12)Closes #381Closes #381v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/328#374 Use default maximum available memory for product as determined by JVM2022-06-16T13:43:07ZDennis Hendriks#374 Use default maximum available memory for product as determined by JVM- For product and product runtime launch configuration.
- Also updated product documentation.
Closes #374- For product and product runtime launch configuration.
- Also updated product documentation.
Closes #374v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/326#370 Generalized CIF to Supremica precondition checks to reusable checks.2022-06-13T15:25:41ZDennis Hendriks#370 Generalized CIF to Supremica precondition checks to reusable checks.Model walkers:
- `ModelWalkerGenerator` now also generates composite model walkers.
- Removed unused `rootClassName` argument/variable from `ModelWalkerGenerator`.
EMF code generators
- Removed 'v1x0x0' from JavaDoc.
- Small improvement...Model walkers:
- `ModelWalkerGenerator` now also generates composite model walkers.
- Removed unused `rootClassName` argument/variable from `ModelWalkerGenerator`.
EMF code generators
- Removed 'v1x0x0' from JavaDoc.
- Small improvements and alignments for EMF code generators.
CIF (pre)condition checkers:
- Added generic CIF (pre)condition check(er) functionality.
- Added various preconditions checks. Based on the ones used by CIF to Supremica. Some more general checks as well.
- Change `CifToSupremicaPreChecker` to use generic checker, and updated CIF to Supremica expected test output. Other checkers to be done in separate branches.
CIF common:
- Added `CifTextUtils.hasName/getNamedSelfOrAncestor`.
I recommend reviewing per commit.
Addresses #370v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/325#372 Updated DEPENDENCIES.txt for changed output of license check tool.2022-06-04T15:52:28ZDennis Hendriks#372 Updated DEPENDENCIES.txt for changed output of license check tool.Closes #372Closes #372v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/324#371 Improved CIF data-based synthesis variable ordering API2022-05-31T13:00:13ZDennis Hendriks#371 Improved CIF data-based synthesis variable ordering APIThere are quite a few changes in this branch:
* `AutoVarOrderer` is now `VarOrderer` and is an interface instead of a base class. It now longer forces a representation of the specification and internal storage decisions upon the actual a...There are quite a few changes in this branch:
* `AutoVarOrderer` is now `VarOrderer` and is an interface instead of a base class. It now longer forces a representation of the specification and internal storage decisions upon the actual algorithms. The initialization and cleanup is also gone. There is now just a single method that algorithms should implement.
* `VarOrderHelper` contains the hyper-edges, which is currently the only representation of the specification. More representations can be easily added to it.
* `VarOrderHelper` also contains various utility methods, moved from `AutoVarOrderer`.
* Moved all non-algorithm-specific functionality out of `AutoVarOrderer` to `CifToSynthesisConverter`. It now determines whether to apply algorithms or not, and indicates in debug output why it is skipped. Or also prints the general debug output, such as number of hyper-edges.
* The variable ordering algorithms (through the `VarOrderer` interface), no longer reorder the variables in `SynthesisAutomaton`. They just compute new orders for the variables. `CifToSynthesisConverter` applies the final order to `SynthesisAutomaton`. This keeps the 'original order' stable. Also, it makes it easier to implement a `ChoiceVarOrderer` that applies multiple algorithms to the same input order and chooses the best order produced by various algorithms.
* The `VarOrderer` interface has `dbgLevel` to allow arbitrary trees of algorithms. For instance, atomic algorithms such as FORCE and sliding window can now easily be combined with sequence, choice, reverse, etc wrappers algorithms to form complex algorithm trees. Since we get arbitrary nesting levels, `dbgLevel` allows printing intuitive debug output matching the algorithm tree structure.
* As a result of the changes, with `CifToSynthesisConverter` handling the non-algorithm-specific things, with `dbgLevel` being introduced, and with the reason for skipping automatic variable ordering being printed, the debug output of the regression tests have changed. However, these are only debug output changes. The algorithms function as before, and produce the same variable orders. Functionality, it works as before for end users.
* I got confused several times while working on this about terminology. Terms like 'order' and 'indices' were used in different ways, which was confusing, and led to regression bugs. Hence, I now use 'order' for orders of the variables (including per variable in the new order its original 0-based index), and (new) indices when referring to per variable in its original order its new 0-based index. Previously 'order' and 'indices' where sometimes used to refer to both these meaning. I've improved and clarified in various places the naming, JavaDoc, comments, etc, to hopefully avoid such confusion in the future.
I did several iterations of changing the API, not just for the current algorithms, but also to support future extensions (#196). This is the design I ended up with, that seems to fit well.
If you want to review this, I propose to review it commit by commit. I completely reworked my final solution into smaller commits, for reviewing efficiency. Each commit message has further details on the changes. However, some things only become clear in a later commit, as the changes in different commits are somewhat intertwined, and I could not spend days on even better-reviewable commits.
Closes #371
Addresses #196v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/323#340 Improved v0.6-M1 release notes.2022-05-27T13:10:53ZDennis Hendriks#340 Improved v0.6-M1 release notes.Closes #340Closes #340v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/322#340 develop to master for v0.6-M12022-05-26T13:47:24ZDennis Hendriks#340 develop to master for v0.6-M1Addresses #340Addresses #340v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/321#340 Updated release notes for v0.6-M1.2022-05-27T11:18:36ZDennis Hendriks#340 Updated release notes for v0.6-M1.Addresses #340Addresses #340v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/319#364 CIF data-based synthesis performance test models: water_lock2023-03-14T12:59:59ZFerdie Reijnen#364 CIF data-based synthesis performance test models: water_lockAddresses #364Addresses #364v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/318#367 Improved website style. Cleaned up unused CSS styles.2022-05-12T07:40:40ZDennis Hendriks#367 Improved website style. Cleaned up unused CSS styles.Closes #367Closes #367v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/317#364 CIF data-based synthesis performance test models: wizard + festo2022-05-19T12:13:08ZFerdie Reijnen#364 CIF data-based synthesis performance test models: wizard + festoAddresses #364
* Added benchmark import wizard.
* Added FESTO benchmark as an example.Addresses #364
* Added benchmark import wizard.
* Added FESTO benchmark as an example.v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/316#365 Update paper references in AsciiDoc files2022-05-06T05:05:36ZFerdie Reijnen#365 Update paper references in AsciiDoc filesCloses #365Closes #365v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/315#311 Add warning for plant referencing requirements in CIF2024-01-19T09:51:36ZFerdie Reijnen#311 Add warning for plant referencing requirements in CIFCloses #311Closes #311v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/314#344 Add Design Structure Matrix (DSM) clustering (2nd branch)2022-05-09T08:26:51ZAlbert Hofkamp#344 Add Design Structure Matrix (DSM) clustering (2nd branch)Closes #344
EDIT: Also don't forget about the previous branch!Closes #344
EDIT: Also don't forget about the previous branch!v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/313#362 Upgrade to JavaBDD 3.0.02022-05-03T20:25:32ZDennis Hendriks#362 Upgrade to JavaBDD 3.0.0Closes #362Closes #362v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/312#361 Lowered maven.minimal.version to real minimal version.2022-05-01T06:41:33ZDennis Hendriks#361 Lowered maven.minimal.version to real minimal version.- Lowered maven.minimal.version to real minimal version.
- Also only update it if needed.
- And indicated more literally what other versions to update for Tycho.
Closes #361- Lowered maven.minimal.version to real minimal version.
- Also only update it if needed.
- And indicated more literally what other versions to update for Tycho.
Closes #361v0.6https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/311#111 Build railroad diagrams during the build2022-09-29T11:47:53ZDennis Hendriks#111 Build railroad diagrams during the build- Railroad diagram generator code adapted to be a library.
- No application framework app/handler/options/exceptions/paths.
- New main and library methods.
- Custom logging functionality.
- Project build updates.
- Added railroa...- Railroad diagram generator code adapted to be a library.
- No application framework app/handler/options/exceptions/paths.
- New main and library methods.
- Custom logging functionality.
- Project build updates.
- Added railroad diagram generator Maven mojo.
- Reordered common.asciidoc .classpath entries. They are displayed in the specified order.
- Added missing test launch config for common.asciidoc project.
- Generate railroad diagrams during the build.
- Read railroad diagram configurations with buffered I/O.
- License header check updates.
Closes #111v0.6