Long-awaited State of the Values docs

Brian Goetz brian.goetz at oracle.com
Fri Dec 6 16:54:32 UTC 2019

I have posted the first two sections of "State of Valhalla" at:


This reflects numerous simplifications of the language and VM model, 
following the discussions that we started at JVMLS this year.  We have 
been able to eliminate the multiple painful dualities (LV vs QV, 
zero-default vs null-default, T vs T?) by replacing them with a much 
simpler relationship between an inline class and a companion interface.

The other major AHA buried in this document is the realization that the 
language and VM models need not align 100%.  LWorld is the right VM 
model, but we can use it as a _translation target_ rather than our 
language model.  This allows the primitives to blossom into full inline 
classes.  In the new world, we have inline classes and identity classes, 
primitives are mostly just inline classes, and the relationship between 
inlines and identity classes is isomorphic to the current relationship 
between primitives and classes.

There's a lot to absorb here, so I suggest you read it a few times and 
then bring your questions.

More information about the amber-spec-experts mailing list