Hello, porters! The Valhalla project has been implementing JEP 401: Value Classes and Objects (Preview) in a branch of our Github repository. Over the next few months, we will be preparing to target and integrate the JEP.
This will be a very large commit touching many components of HotSpot, so now is a good time to start aligning your ports with the anticipated changes and ensuring conformance with the updated specifications. Some pointers: Value Classes JEP: https://openjdk.org/jeps/401 Supplementary strict field initialization JEP: https://openjdk.org/jeps/8350458 JVMS changes (value classes): https://cr.openjdk.org/~dlsmith/jep401/jep401-20251210/specs/value-objects-jvms.html JVMS changes (field initialization): https://cr.openjdk.org/~dlsmith/jep401/jep401-20251210/specs/strict-fields-jvms.html Git branch: https://github.com/openjdk/valhalla/tree/lworld As a baseline, you may want to focus on *compliance* without adopting any of the value object *optimizations*. A compliant JVM will recognize and validate the ACC_IDENTITY and ACC_STRICT_INIT flags, and will follow the new semantics for 'acmp', 'ifnull', and 'monitorenter'; but can ignore the contents of 'LoadableDescriptors', and need not support scalarized or flattened object encodings. Please reach out to valhalla-dev, or to me personally, if you need any help or clarifications to align with these changes.
