Draft JEPs for primitive class features

Dan Smith daniel.smith at oracle.com
Tue Feb 9 22:19:04 UTC 2021

I've drafted the following JEPs to cover the initial preview of the Valhalla project's core features:


Primitive Objects (Preview)

Describes primitive objects and classes, and the language's use of reference and value types.


Unify the Basic Primitives with Objects (Preview)

Describes language and library changes to treat the basic primitives (int, double, etc.) as special primitive class types, replacing boxing/unboxing with standard reference/value conversions.


Please look them over and make sure they reflect your understanding of the features. Most of this has been discussed previously, but these are the most comprehensive summaries of the feature set that we've put together. (And quite possibly some of it is new to you, or I left something important out!)

There will be a third major component, Universal Type Variables, to cover the interaction of erased generics with primitive value types. I'm working on that one currently.

My intent is to submit all three to become Candidate JEPs in the near future, and then we'll pursue the formal specification, implementation, and review processes in parallel over the coming months. These are preview features that will probably be delivered all together when they're ready, no earlier than 18.

More information about the valhalla-spec-observers mailing list