Conversation
…do cycles / equally named nodes to be detected as cycles
|
DataFlowAnalysis/ExampleModels#13 has to be merged first |
I merged that one |
Fix: In case of cycle without entry or exit pick any node as sink
|
Is picking any node for cyclic sinks semantically right? |
Nicolas-Boltz
left a comment
There was a problem hiding this comment.
I would suggest that @BenjaminArp and @uuqjz review this PR as they are the ones most familiar with the cycle finding.
For me it looks good.
@uuqjz Could you maybe elaborate a little bit more? I do not see a spot where a random node ist chosen and the code on first glance looks more or less similar to the previous code of the cyclic finder? |
This commit |
No. I just realized the issue with the example model of the WebEditor, since right now the converter behavior is adding all Pins as Input pins on set actions (something I'd change). This at least allows a TFG to be created at all, otherwise no sink is picked. Correctly one would have to identify the node in the cycle that "starts" the cycle by sending out a label and use that as sink (only when theres no flow going out of the cycle) |
|
^^ This has not been done before tho, and I fear a lot of computational complexity |
|
For the moment i suggest we disallow terminal cycles (they didnt work before either). Finding a sink in a single cycle is not too difficult but for handling multiple or nested cycles i would have to build an almost complete reverse TFG |
Fix: Ban terminal cycles Next time i really have to make sure the branch name has no uppercase letters
I described the problem in #214 |
Described in #210