Skip to content

Conversation

graalvmbot
Copy link
Collaborator

@graalvmbot graalvmbot commented Sep 23, 2025

We are aligning our development baseline back to JDK 25. Instead of the week-to-week tracking of JDK 26 early access builds, we will focus development on the JDK 25 LTS line for longer. This will reduce the maintenance cost related to pulling upstream changes frequently and will enable us to provide additional value for JDK 25 for longer.

Note that this change relies on JVMCI patches that are not (yet) backported to JDK 25. The LabsJDK source code used for the artifacts is located on the jdk25 branch in https://github.com/graalvm/labs-openjdk/tree/jdk25. The version used as of this PR can be found at https://github.com/graalvm/labs-openjdk/releases/tag/25%2B37-jvmci-b02.

zapster and others added 30 commits September 16, 2025 11:11
This reverts commit 451808a, reversing
changes made to c331944.
This reverts commit 2a65da5, reversing
changes made to 58ebbc8.
This reverts commit 0008303, reversing
changes made to 2385a96.
This reverts commit e5276df, reversing
changes made to 1c92b92.
This reverts commit 007426e, reversing
changes made to e904e09.
This reverts commit 634bfcd, reversing
changes made to f2a0e10.
This reverts commit 782b28c, reversing
changes made to c18c686.
This reverts commit b6bc12b, reversing
changes made to 06223af.
This reverts commit 4c84b4e, reversing
changes made to d08dc0e.
…ons"

This reverts commit a0e665e, reversing
changes made to f23bb72.
…aal compilation on jargraal and fix cache replacements"

This reverts commit 3ff585b, reversing
changes made to f4a4dcf.
This reverts commit de29af8, reversing
changes made to e482f98.
This reverts commit e7bc0ca, reversing
changes made to b887c36.
This reverts commit 6cbebef, reversing
changes made to 1d7170b.
…PU feature is not supported"

This reverts commit 2ce32ef.
…MacroAssembler::spin_wait"

This reverts commit f56eb9a.
…ade available"

This reverts commit b887f2d, reversing
changes made to 3d65c5c.
This reverts commit fa4c962, reversing
changes made to 75f6db7.
This reverts commit c28e6a5, reversing
changes made to 5724d5d.
This reverts commit c56e44b, reversing
changes made to c8ea2a4.
This reverts commit afeb900, reversing
changes made to 80dfcb8.
PullRequest: graal/21151
(cherry picked from commit d5d32c3)
PullRequest: graal/21393
(cherry picked from commit a6efb78)
PullRequest: graal/21514
(cherry picked from commit 4088940)
PullRequest: graal/21669
(cherry picked from commit d3c1067)
PullRequest: graal/21755
(cherry picked from commit a35cb69)
PullRequest: graal/21822
(cherry picked from commit e66918b)
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Sep 23, 2025
@zapster
Copy link
Member

zapster commented Sep 23, 2025

cc @zakkak @simonis

@zapster zapster self-assigned this Sep 23, 2025
@simonis
Copy link
Contributor

simonis commented Sep 23, 2025

@zapster will LabsJDK 25 still be synced with OpenJDK 25u?

@zapster
Copy link
Member

zapster commented Sep 23, 2025

@zapster will LabsJDK 25 still be synced with OpenJDK 25u?

Yes, we plan to update LabsJDK 25 regularly with that latest CPU releases once they are published.

@zakkak
Copy link
Collaborator

zakkak commented Sep 24, 2025

Thank you for the mention @zapster.

Yes, we plan to update LabsJDK 25 regularly with that latest CPU releases once they are published.

👍

The next question would be whether LabsJDK 25 is going to introduce new changes on top of OpenJDK 25u (which are no longer expected to make it to OpenJDK 25u). And the answer seems to be affirmative according to:

Note that this change relies on JVMCI patches that are not (yet) backported to JDK 25

This breaks Mandrel builds as we build based on OpenJDK. We (the Mandrel team) would like to discuss options on how to move forward in this new context.

@jerboaa
Copy link
Collaborator

jerboaa commented Sep 24, 2025

Note that this change relies on JVMCI patches that are not (yet) backported to JDK 25

This breaks Mandrel builds as we build based on OpenJDK. We (the Mandrel team) would like to discuss options on how to move forward in this new context.

Unfortunately this brings us back to a time where certain LabsJDK changes needed to get merged in upstream OpenJDK to continue to support later GraalVM versions with Mandrel (even if it claims to be JDK 25-based; it's not). Either that, or stop using the later GraalVM versions.

While it would be a possibility for some contributors to use LabsJDK 25 it won't be an option for the Mandrel team. So this move is bound to further disintegrate the GraalVM native-image community who still care about Java. While I understand that this might be the right move for some it bears some risk to the greater open source GraalVM native-image community. Your mileage might vary.

@thomaswue
Copy link
Member

@zakkak @jerboaa This is an intermediate step towards a solution that in our view will longer term make the overall maintenance simpler for everybody. We are working on turning the native image generator into a native image itself and in this way completely disentangling it from the HotSpot VM. Together with Project Crema (which enables the execution of arbitrary (including dynamically loaded) Java code in the context of native image (#11327), we will be able to create a GraalVM distribution that does no longer include the HotSpot VM. This reduces our reliance on upstream OpenJDK to only the Java class libraries and removes the dependency on JVMCI. To achieve the technical goals involved here, we will however need larger additions to JVMCI, which would possibly be not accepted in the upstream OpenJDK project. We will give detailed updates on the progress and road map related to these technical goals at the upcoming GraalVM Community Summit. We are also happy to discuss before that and will update the information available on GitHub about Project Crema as well as Project Terminus.

@adinn
Copy link
Collaborator

adinn commented Sep 24, 2025

While it would be a possibility for some contributors to use LabsJDK 25 it won't be an option for the Mandrel team. So this move is bound to further disintegrate the GraalVM native-image community who still care about Java. While I understand that this might be the right move for some it bears some risk to the greater open source GraalVM native-image community. Your mileage might vary.

I'd like to expand on what @jerboaa is saying here, Mandrel releases have always been based on stock OpenJDK not Labs OpenJDK for a very clear reason:

  • the Mandrel team is happy to support Quarkus apps built using a GraalVM Native product that is based on a standard OpenJDK release whose provenance and behaviour are sanctioned by the OpenJDK development, release and update process in which we are deeply involved.
  • the Mandrel team is uncomfortable with having to support Quarkus apps built using a GraalVM Native product based on a modified OpenJDK release whose provenance and behaviour are defined by whatever contingencies lead the GraalVM team to make their own modifications and in whose development we have no involvement and little or no room for input.

The issue is that having to rely on Labs JDK effectively takes certain options out of our hands. It makes it harder for us to clearly and reliably define the behaviour of the JDK/JVM used for native deployments, foresee what the consequences of changes to JDK/JVM behaviour might mean for the behaviour of the deployed native app, and debug + fix any problems that might arise as a consequence of those changes. Effectively, we are at greater risk of encountering a situation where Quarkus apps might behave differently in Native vs Hotspot deployments and have a weaker chance of identifying why that has happened and remedying the disparity.

If this current issue continues -- including if it is fixed ad hoc but then continues to repeat with some variant incompatibility being introduced -- it will be hard for us not to treat it as a blocker for supporting Quarkus Native deployments. That clearly also brings into question our team's interest in continuing to contribute to the GraalVM project.

@thomaswue
Copy link
Member

@adinn The changes to what is in upstream OpenJDK are limited to the JVMCI interface, which is unrelated to application behavior - and it is unclear whether that interface will continue to be maintained in upstream OpenJDK at all. Furthermore, this is only a temporary development step until we are no longer relying on this JVMCI interface implemented in HotSpot. We will not make changes to the parts that are shared with the HotSpot VM - i.e., the Java class libraries. Therefore, there is no additional risk in differing behavior. We are in general happy to verify that the behavior of Quarkus applications is identical.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants