Skip to content

Java/Cfg: Introduce new shared CFG library and replace the Java CFG.#21290

Draft
aschackmull wants to merge 29 commits intogithub:mainfrom
aschackmull:cfg/new-shared
Draft

Java/Cfg: Introduce new shared CFG library and replace the Java CFG.#21290
aschackmull wants to merge 29 commits intogithub:mainfrom
aschackmull:cfg/new-shared

Conversation

@aschackmull
Copy link
Contributor

@aschackmull aschackmull commented Feb 6, 2026

This PR introduces a new shared CFG library, which encapsulated the control flow semantics of the most common AST constructs. Additionally, the Java CFG is replaced with an instantiation of this new library.
Control flow semantics of individual AST nodes are given in a modular non-recursive way, which allows seamless integration of the few Java-specific control flow definitions with the shared parts by way of simple union.

Any existing Java libraries with implicit reliance on the exact structure of the CFG have been updated.

Commit-by-commit review is strongly encouraged. There are a few initial setup commits, then the big commit with the main change followed by a long tail of commits to fix various tests and dependent Java libraries.

@aschackmull aschackmull force-pushed the cfg/new-shared branch 6 times, most recently from f54bdf4 to 0e7c3ba Compare February 16, 2026 14:04
@aschackmull aschackmull force-pushed the cfg/new-shared branch 2 times, most recently from 7fda944 to d5c9063 Compare February 17, 2026 14:03
@aschackmull aschackmull force-pushed the cfg/new-shared branch 2 times, most recently from 3437f86 to b90ee55 Compare February 18, 2026 09:25
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

Comments