typetools / typetools/checker-framework

Compilation time doubling in Hibernate ORM

Open
#7,080 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
1.1k
Forks
440
Avg merge
1d 12h
Merged PRs (30d)
134

Description

After reading https://groups.google.com/g/checker-framework-discuss/c/pLYydnOjZak/m/s2ooHiHbAQAJ i.e.

It has to do all the same work as the compiler does, such as resolving overloading and overriding, inferring generics, and type-checking.

It starts to make sense to me why using checkerframework roughly doubles compilation times.

The Hibernate ORM project is now considering to disable the checkerframework by default and only run it on CI, because it slows down our day-to-day work.

Are there any potential improvements that can reduce this overhead in the future? Or is this simply a consequence of not being able to modify the compiler directly?

We only use the NullnessChecker and I would like to understand if there might be a way to reduce the overhead of this particular analysis. Or maybe you have suggestions for alternatives since nullness analysis is the only thing we care about?

Thanks in advance!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the NullnessChecker and the linked Checker Framework discussion about compilation overhead. The issue names no file, test, benchmark, or concrete acceptance criterion, so a contributor would first need to define how to measure the overhead and what improvement or alternative would count as done.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.