On Thu, 3 Sep 2026 09:21:11 GMT, Stefan Karlsson <[email protected]> wrote:
> JEP 401 delivered the preview feature of Value Objects. > > During the lifetime of the Valhalla project there were many ideas and names, > and at one point the value types were called inline types. The HotSpot code > was changed to use the name "inline types" instead of "value types" (and > inline klass instead of value klass) > [JDK-8249257](https://bugs.openjdk.org/browse/JDK-8249257). > > Later the concept and name "inline type" were dropped, but HotSpot retained > the name. This causes confusion when working with the code. Some reasons: > > 1) There's no obvious connection to what's described in JEP 401 or the Java > code. > > 2) It is easy to incorrectly assume that these are types that have been > flattened (inlined) into other objects. > > 3) The name clash with C++'s concept of inlining > > My proposal is that we revert back to talking about "values" instead of > "inlines", and that we do this before JDK 28 ships, so that we don't have a > release where we use the "inline" terminology. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). FWIW, I asked around about doing this change before JEP 401 was delivered. At that point it was deemed to add risk to the delivery of the feature, so I delayed this suggestion until post-integration. From internal discussions among HotSpot devs, the suggestion for this rename seems to have broad support, but it is not entirely non-controversial. Some of the controversial points that I know of: 1) Extra work and churn to do the rename. 2) Future Valhalla features could be restructuring the value class hierarchy, which could require yet another rename of the C++ classes in HotSpot. 3) We have the abstract value classes and concrete value classes. It is only the concrete value classes that get an `InlineKlass`. The abstract value classes get an `InstanceKlass`. If `InlineKlass` is renamed to `ValueKlass`, there is a risk of a misunderstanding that we have `ValueKlass` for abstract value classes. ------------- PR Comment: https://git.openjdk.org/jdk/pull/32673#issuecomment-5523765878
