Skip to content

Integrated cycles#209

Merged
Nicolas-Boltz merged 14 commits intomainfrom
integratedCycles
Oct 1, 2024
Merged

Integrated cycles#209
Nicolas-Boltz merged 14 commits intomainfrom
integratedCycles

Conversation

@01Parzival10
Copy link
Contributor

@01Parzival10 01Parzival10 commented Sep 24, 2024

Described in #210

@01Parzival10
Copy link
Contributor Author

01Parzival10 commented Sep 24, 2024

DataFlowAnalysis/ExampleModels#13 has to be merged first

@uuqjz
Copy link
Collaborator

uuqjz commented Sep 24, 2024

DataFlowAnalysis/ExampleModels#13 has to be merged first

I merged that one

@uuqjz
Copy link
Collaborator

uuqjz commented Sep 26, 2024

Is picking any node for cyclic sinks semantically right?

Copy link
Member

@Nicolas-Boltz Nicolas-Boltz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@Nicolas-Boltz
Copy link
Member

Nicolas-Boltz commented Sep 26, 2024

Is picking any node for cyclic sinks semantically right?

@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?

@uuqjz
Copy link
Collaborator

uuqjz commented Sep 26, 2024

@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 Fix: In case of cycle without entry or exit pick any node as sink introduced that.

@01Parzival10
Copy link
Contributor Author

Is picking any node for cyclic sinks semantically right?

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)

@01Parzival10
Copy link
Contributor Author

^^ This has not been done before tho, and I fear a lot of computational complexity

@01Parzival10
Copy link
Contributor Author

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

01Parzival10 and others added 2 commits September 26, 2024 13:16
Fix: Ban terminal cycles
Next time i really have to make sure the branch name has no uppercase letters
@01Parzival10
Copy link
Contributor Author

Is picking any node for cyclic sinks semantically right?

I described the problem in #214

Copy link
Member

@Nicolas-Boltz Nicolas-Boltz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Nicolas-Boltz Nicolas-Boltz merged commit fd46873 into main Oct 1, 2024
@Nicolas-Boltz Nicolas-Boltz deleted the integratedCycles branch October 1, 2024 11:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DFD Cycle Detection runs on Node entity names - Causes Issues with PCM-created DFDs and Pseudocycles

3 participants