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

Decide which kind of static analysis we want to do #6

Open
kozross opened this issue Dec 19, 2024 · 0 comments
Open

Decide which kind of static analysis we want to do #6

kozross opened this issue Dec 19, 2024 · 0 comments
Labels
milestone-4 Static analyzer question Further information is requested

Comments

@kozross
Copy link
Member

kozross commented Dec 19, 2024

Milestone 4 requires us to build a static analysis tool operating over Covenant's serial form. In order for this to be meaningful, it must meet three criteria:

  1. Static: we cannot evaluate, or simulate evaluating, either Covenant itself or UPLC as part of the analysis.
  2. Meaningful: should be something that would be of genuine use.
  3. Novel: not something that can be done against UPLC.

To give some examples of what wouldn't be suitable:

  • CTE (compile-time evaluation) wouldn't be static or novel: not only can UPLC do this, it requires simulation in basically any non-trivial case.
  • Outputting the node count of the Covenant IR graph wouldn't be meaningful: nobody is really interested in that.
  • DCE (dead code elimination) wouldn't be novel: you can do that with UPLC just fine.

Ideally we want to know what kind of analysis tool we're building before we decide Covenant's exact form, as this could make our lives much easier. A security-oriented analysis tool would also be quite good to have, assuming we can find such a case.

@kozross kozross added question Further information is requested milestone-4 Static analyzer labels Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
milestone-4 Static analyzer question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant