GraalVM 25.2.4
GraalVM 25.2.4 has been released — the latest innovation release of Oracle's high-performance JDK with ahead-of-time Native Image compilation. This update, tagged as "GraalVM Community 25 Innovation 2 (graal 25.2.4, jdk 25.0.4)", brings several significant improvements to Native Image, GraalJS, and the Truffle framework.
Platform and Distributions
Released on July 28, 2026, GraalVM Community Edition 25.2.4 is an innovation release based on OpenJDK 25.0.4+7. Oracle GraalVM 25.2.4 is also available, based on Oracle JDK 25.0.4+7. This version is compatible with Graal Languages and other components version 25.2.4.
Native Image Improvements
Several major changes land in Native Image with this release:
- Compressed 32-bit object references are now enabled by default, generally improving memory usage and performance. This limits the heap to 32 GB; disable compressed references with
-H:-UseCompressedReferenceswhen a larger heap is required. - Native Image now always uses isolates. The deprecated
-H:+SpawnIsolatesoption remains for compatibility, but-H:-SpawnIsolatesis no longer supported and reports a build-time error. - Removed the deprecated
-H:OutlineWriteBarriersoption. Use-H:WriteBarrierOutlining=<value>instead. - Java Vector API support is enabled by default when
jdk.incubator.vectoris part of the boot module layer. Use-H:-VectorAPISupportto opt out explicitly. - resource: URLs now preserve the source root of duplicate resource entries, letting directory resources from separate class-path roots be converted to Path values and traversed independently.
- Added support for the
jdk.ShutdownJFR event.
GraalJS Update
GraalJS has been updated to ship Node.js version 24.17.0, bringing the latest Node.js runtime improvements to GraalVM users who leverage JavaScript and Node.js workloads.
Truffle Framework Enhancements
The Truffle framework received several bytecode DSL improvements:
- Bytecode DSL added
BytecodeRootNode.interceptIncomingValue(Object)andBytecodeRootNode.interceptOutgoingValue(Object)for converting values exchanged with tag instrumentation. - Bytecode DSL added multi-operand support for
@Yieldoperations. - Bytecode DSL added
@Returnfor user-defined return operations that customize the value returned from a bytecode root node. - Added
HostCompilerDirectives.BytecodeInterpreterHandlerConfig#secondarySwitch()to prevent handler outlining when a secondary bytecode interpreter switch is compiled separately.
Upgrade Notes
GraalVM 25.2.4 represents the second innovation release of 2025. If you're upgrading from 25.1.x, note that isolates are now mandatory in Native Image, and the deprecated -H:OutlineWriteBarriers option has been fully removed. The team recommends reviewing the migration guide before upgrading production workloads.
GraalVM 25.2.4 is available now for download from the official GraalVM website. Check the release notes for the full list of changes and fixes.