> I don't understand exactly what the benefit of these changes is for Calcite 
> developers or users.

Sorry this is lots of text. I do not know how to make it smaller.
Sorry if this brings bad memories.

Mihai, Julian, Calcite currently relies on Java 8, and its publicly
available builds receive no bug fixes for a long time already.

There are lots of bugs in javac (e.g. I filed one a couple of weeks
ago: https://bugs.openjdk.org/browse/JDK-8391567),
and we can't live with outdated/unsupported java compilers.

The very first mail in the thread gives an exact issue Calcite faces
should someone add/remove annotations:
Invalid bytecode file: .../elasticsearch/.../ElasticsearchJson.class

The solution is to use javac from Java 25. It has all the bug fixes,
and it can produce Java 8 compatible code.
Then we no longer rely on outdated compilers, and users get better
Calcite (fewer bugs in the bytecode).

-----

Part of the puzzle is as follows:

* "faster calcite builds" require "replace Checkerframework with
NullAway checker" because NullAway is way faster
* "nullaway" requires "going for jspecify annotations". It is a nice
thing anyway because it is a de-facto standard.
* "jspecify and nullaway" requires "upgrading javac" because java 8
often produces invalid bytecode
* "newer nullaway and error-prone" requires "java 17 or even 21 for
launching the build system"
* "running build system with Java 21 and running tests with Java
8..25" requires "teaching build system to use different JVM for tests"
...

Now's the tough part.
Five years ago I quit the project as I realized my behavior was not
acceptable: https://lists.apache.org/thread/j4nbh4st0nqbwl69b1mzrsd8p758mf28
Now I think I got better at listening.

I can easily understand if someone says "this all worked previously,
don't fix something that is not broken", so I would like to gauge
first.

I see many of the changes I contributed still hold: Gradle is still
there, `@Nullable` are still there.
So I wonder if I could ask for a bit of trust in that area.
No strings attached. Like if it misbehaves, I could help rolling it back.

Vladimir

Reply via email to