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

http://cr.openjdk.java.net/~briangoetz/valhalla/sov/01-background.html
http://cr.openjdk.java.net/~briangoetz/valhalla/sov/02-object-model.html

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.


Reply via email to