Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[4diac-dev] Proposed Breaking Changes for FORTE 1.10.0


for quite some time I’m pondering about a breaking change in FORTE.
Today I worked on monitoring of subapps there I noticed that we are
also missing some information in FORTE that would result in a further
breaking change in FORTE. Therefore I would like to present both here
and get your feedback on how to proceed:

1. The first change regards the handling of the
CEventChainExecutionThread (CECET) within FBs. Currently on reception
of an event the calling CECET is stored in an FB member var and then
used for sending output events. This has the advantage that it does not
need to be handed down the call stack within the FB (e.g.,
executeEvent, enterStatexxx, sendOutputEvent). However it has the big
drawback that each FB needs to have storage to for this pointer. As our
typical call stack is most of the time 2 or 3 already after having more
then 3 or 4 FBs in your device less memory would be used if we would
not store this pointer. Furthermore it would make some concurrency
issues easier. Therefore I would like to propose to remove the storage
to CECET within FBs and move it to the stack. 

2. The second change I would like to propose is required for monitoring
subapps. Currently we manage FBs within resources following their sub-
app hierarchy in so called FB containers. However for backwards
compatibility FBs are not aware of this data structure and store only a
pointer to their resource. Therefore it is  not possible for FBs to
retrieve their full qualified name consisting of the subapp hierarchy
they are contained in. In order to allow this a required change would
be to change the reference to the resource to a reference to the fb
container. As part of this change the constructor sequence of FBs would

I see both changes important for the future of FORTE. However both
changes would require that all existing FBs will need adjustments and a
new code generator would be required. Therefore putting this here for
discussion. Maybe you have better ideas for solving this issue. 


P.S.: If it is easier for you we can also discuss certain parts of this
problem on the 4diac matter most channel (https://mattermost.eclipse.or
g/eclipse), and I’ll put the outcomes to the mailing list.

Back to the top