Long-awaited State of the Values docs
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