Skip to content

Gradle-based Relaxed-Stacked build#9

Open
creichen wants to merge 7 commits into
mainfrom
relaxed-stacked-build
Open

Gradle-based Relaxed-Stacked build#9
creichen wants to merge 7 commits into
mainfrom
relaxed-stacked-build

Conversation

@creichen

@creichen creichen commented Mar 1, 2026

Copy link
Copy Markdown

Fully Gradle-hosted Relaxed-Stacked build of IntraJ

Since the JastAdd Gradle plugin hardcodes its output directory, we cannot use it directly to run a two-pass build; this PR solves this problem by using two Gradle subprojects, one each for the basic-stacked and the relaxed-stacked build.

Issues:

  • Right now, this build depends on specific included .jar files for cat and jastadd2. At least the jastadd2 dependency we would want to replace, once we have released a version of JastAdd with Relaxed-Stacked evaluation.
  • There are some beaver-related build failures in CI that I couldn't reproduce locally
  • .gitignore probably wants some updating

Christoph Reichenbach and others added 4 commits November 17, 2025 08:07
Must run ./run-cat.sh to re-buid cache-config.csv before
building; should probably be automated by someone who
understands Gradle
The following paper introduces Relaxed-Stacked evaluation:
  https://dl.acm.org/doi/10.1145/3687997.3695644

Relaxed-Stacked evaluation eliminates unnecessary recomputation
during circular fixed point computation.  To determine which
attributes can be optimised, we run the "cat" static analyser,
which constructs a call graph to be able to rule out cycles:

  https://github.com/IdrissRio/cat

We write the analysis results to `cache-config.csv` and use
them as input for a second build.

Since the JastAdd plugin for Gradle only supports a single
output path, we split this build into two subprojects:

  basic-stacked/build.gradle
  relaxed-stacked/build.gradle

The toplevel `build.gradle` file mainly handles configuring
and delegating to these sub-builds.
@IdrissRio

Copy link
Copy Markdown
Collaborator

LGTM 👍 I’ve opened a follow up PR that fixes the CI error: #11
Once this is merged, I think we’re good to bring everything into main. Does that sound right to you?

@creichen

Copy link
Copy Markdown
Author

That sounds great, thank you! But don't hesitate to complain if you have any issues / concerns.

@creichen creichen marked this pull request as ready for review March 30, 2026 16:51
Fix generateCacheConfig: add beaver to CAT classpath
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.

2 participants