escet merge requestshttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests2024-03-28T17:15:24Zhttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/846Draft: #718 Update release notes for v3.0.2024-03-28T17:15:24ZDennis HendriksDraft: #718 Update release notes for v3.0.Addresses #718Addresses #718v3.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/844#794 Add CIF check to check list type limits.2024-03-28T11:09:57ZAlbert Hofkamp#794 Add CIF check to check list type limits.Closes #794Closes #794v4.0https://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/839#679 PLCgen: Forbid pure monitor events.2024-03-28T13:14:51ZAlbert Hofkamp#679 PLCgen: Forbid pure monitor events.Events that are always used as monitor event cause infinite looping in the event transition code and are thus undesired.
This patch adds a check against such events in plcgen.Events that are always used as monitor event cause infinite looping in the event transition code and are thus undesired.
This patch adds a check against such events in plcgen.v4.0Albert HofkampAlbert Hofkamphttps://gitlab.eclipse.org/eclipse/escet/escet/-/merge_requests/696#319 Add sub-plant creation functionality2024-03-26T17:35:44ZAlbert Hofkamp#319 Add sub-plant creation functionalityThis patch constructs subplant (and sub-requirement) specifications for multi-level synthesis.
Is readable by commit, although it is pretty dense code. It takes the original specification, and copies parts of it to zero or more partial ...This patch constructs subplant (and sub-requirement) specifications for multi-level synthesis.
Is readable by commit, although it is pretty dense code. It takes the original specification, and copies parts of it to zero or more partial specifications.
The `PartialSpecBuilder` handles the global flow to construct partial specifications. It uses a `PartialSpecBuilder` for each specification that must be created. The manager class handles the details of copying and keeping track of things.
For each partial specification, first the needed plants and requirements are deep-cloned in a minimal way. Next, dangling objects are resolved by deep-cloning more parts of the original specification. This may also lead to new dangling objects of course.
Resolving continues until everything is resolved. At that point the objects in the partial specification are all contained and they can be written out to a file.
One thing to keep in mind is that deep-cloning keeps a record of **all** copied objects. This makes that `EnumLiteral` and `Field` classes can be resolved. (Not sure the latter always works, I am not quite sure where these objects can be contained.)
To get stable output, I had to maintain the same order in contained lists with declarations, components, etc, between the original and the partial specification. I believe the cause is somewhere in the `EcoreUtil` classes.
@mgoorden7u4 Could you have a look at the output of the lock model to check if the result makes sense? It has been added to `oee.cif.tests/tests/multilevel`
Addresses #318
Closes #319v4.0Albert HofkampAlbert Hofkamp