This API beforehand was incubated in JDK 16 via JDK 23. It could be re-incubated in JDK 24 with no API modifications and no substantial implementations relative to JDK 23. Goals of the proposal embody clearly and concisely expressing a variety of vector computations in an API that’s platform-agnostic, that gives dependable runtime compilation and efficiency on x64 and AArch54 architectures, that degrades gracefully and nonetheless capabilities when a vector computation can’t be expressed at runtime, and that aligns with Project Valhalla, leveraging enhancements to the Java object mannequin.
The first JDK 24-targeted characteristic, formally referred to as “Prepare to Restrict the Use of JNI,” requires issuing warnings about makes use of of JNI and adjusting the international operate and reminiscence (FFM) API, featured in JDK 22, to situation warnings in a constant method. These warnings are meant to arrange for a future launch that ensures integrity by default by uniformly limiting JNI and the FFM API. Goals of the plan embody preserving JNI as an ordinary technique to interoperate with native code, getting ready the Java ecosystem for future releases that disallow interoperation with native code by default, and aligning the usage of JNI and the FFM API so library maintainers can migrate from one to the opposite with out requiring builders to alter command-line choices.
The second characteristic, late barrier growth for the G1 rubbish collector, is meant to simplify the implementation of G1’s obstacles. The G1 rubbish collector’s obstacles report details about software reminiscence accesses, by shifting their growth from early within the C2 compilation pipeline to later. Goals embody lowering the execution time of C2 compilation when utilizing the G1 collector, making G1 obstacles understandable to HotSpot builders who lack a deep understanding of C2, and guaranteeing that C2 preserves invariants concerning the relative ordering of reminiscence accesses, safepoints, and obstacles. A fourth characteristic is preserving the standard of C2-generated JIT (just-in-time)-compiled code, by way of velocity and measurement.