Refactored Graal Backends using Strategy Pattern #108
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Graal backends face evolution issues. This refactor implements the strategy pattern in the Graal backends to prevent these issues from occurring. These issues were initially pointed out in #89, we introduced our proposed solution in #104, and made a PR earlier for only the CoLic backend in #107.
This PR implements a complete refactor of the Graal backends. Because the commits have to be signed off and we didn't do that during development, this branch has (almost) all changes squashed.
To split up the work in chunks, we recommend checking out these PRs: PR CoLic, PR CoVuln, PR CoCom + CoLang, PR Codep + CoQua. We combined the PR for some backends, as some of them use the same analyzers.
Note that the changes in #107 are included in this PR as well (including the CI fix), so if this PR is approved and merged, there's no need to review/merge that one. On top of that, it probably wouldn't do the project much good if only #107 is merged.