eclipse-gemoc / eclipse-gemoc/gemoc-studio-modeldebugging

offer an improved generic modelIdentifier and associated debug services in GEMOC framework

Open
#131 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
6
Forks
14
PR merge metrics
No merged PRs in 30d

Description

Several debug services offered by the simulation and model animation framework rely on the concept of ModelIdentifier.

Having different ids for this modelIdentifier allows, for example, to get a presentation in the debug stack that is specific to an engine. This also ensures to get the current breakpoint only for a given engine.

For this reason, the current engines (java, moccl and ale) uses different ids. (actually, ale is reusing id of the java engine to the cost of introducing an unwanted dependency to it ! ) This is making sense if the displayed information in the stack are different for each of these engines. But this is achieved with some coding complexity cost: in the plugin.xml declaring the launchconfiguration for the engine, but also in the debugService class for any Sirius design in the language workbench (ex: https://github.com/eclipse/gemoc-studio/blob/6fc7270df6bd2e633ac29a4c331012d41974c857/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/src/org/eclipse/gemoc/example/k3fsm/design/services/FsmDebugServices.java#L38) if a sirius .design is used by several engines, the service must be duplicated (and the action in the .design must be duplicated too)

However, now, the trace metamodel is being used for both concurrent and sequential based engines a generic presentation is probably possible.
It would be useful to offer such generic services in the GEMOC framework (to not be confused with debug and model animation framework )
![image](https://user-images.githubusercontent.com/661468/68392711-a5eaa180-016a-11ea-9749-77003a1ee3b8.png) for engines accepting to share the generic modelIdentifier.
such as generic presentation, generic breakpoint

This would get several benefits for engines sharing the same modelIdentifier:
- most engine implementations would be simplified. (can share some classes such as DebugModelPresentation and SourceLocator)
- the toggleBreakpoint sirius action will be general to all engines sharing the same modelIdentifier (instead of been applicable to only a given engine)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.