Porting to support JEP 401: Value Classes and Objects (Preview)
yangfei at iscas.ac.cn
yangfei at iscas.ac.cn
Fri Jan 16 07:42:27 UTC 2026
Hi Dan,
Nice work! Thanks for letting us know.
We are looking at the code changes as well and will try to prepare a RISC-V port.
Thanks,
Fei
-----Original Messages-----
From:"Doerr, Martin" <martin.doerr at sap.com>
Sent Time:2026-01-09 06:24:31 (Friday)
To: "Dan Smith" <daniel.smith at oracle.com>, "porters-dev at openjdk.org" <porters-dev at openjdk.org>
Cc: "Amit Kumar" <amit.kumar220 at ibm.com>
Subject: Re: Porting to support JEP 401: Value Classes and Objects (Preview)
Hi Dan,
Thanks for the heads-up! We will look into it and plan a PPC64 port.
Best regards,
Martin
Von: porters-dev <porters-dev-retn at openjdk.org> im Auftrag von Dan Smith <daniel.smith at oracle.com>
Datum: Dienstag, 6. Januar 2026 um 00:22
An: porters-dev at openjdk.org <porters-dev at openjdk.org>
Betreff: Porting to support JEP 401: Value Classes and Objects (Preview)
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.
More information about the porters-dev
mailing list