Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

POC: simple dataflow analysis #690

Draft
wants to merge 5 commits into
base: datev-loon-staging-20222
Choose a base branch
from

Conversation

alexanderpann
Copy link
Member

@alexanderpann alexanderpann commented Jul 22, 2023

The implementation supports detecting:

  • unused assignments
  • unreachable nodes (only for FailExpr at the moment)
  • unused arguments (interface: IArgument)

One implementation challenge I faced is unwanted dependencies between languages that shouldn't have dependencies, such as org.iets3.core.expr.base and another language. The data flow declarations sometimes need knowledge of concepts of other languages.

Bugs /open questions:

  • The data flow of fail expressions should be ignored in certain cases such as assert statements.
  • Should unreachable node errors be reduced to warnings in case of false positives? Does this analysis make sense at all?
  • What is the correct ancestor to start with when reporting unreachable odes?
  • What is the performance limit of the analysis? I've used the Base Language limitation of 400 data flow instructions which seems quite arbitrary to me.
  • How to deal with top-level content where the order of usage is not important? Should the analysis be restricted to (block) expressions?
Screenshot 2023-07-22 at 19 17 20

@alexanderpann alexanderpann changed the title POC: simple dataflow analysis for KernelF POC: simple dataflow analysis Jul 22, 2023
@alexanderpann alexanderpann changed the base branch from master to maintenance/mps20222 March 10, 2024 18:02
Base automatically changed from maintenance/mps20222 to datev-loon-staging-20222 August 13, 2024 09:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant