Greetings, Here’s a proposal of a JVMS draft to move from the LW1/container model to LW2, based on the discussions we had during the Valhalla offsite in Burlington.
http://cr.openjdk.java.net/~fparain/L-world/LW2-JVMS-draft-20181009.pdf This is a very rough draft, trying to introduce the notions of nullable and null-free value types. This change is more difficult to specify than expected. If the notion of reference is already defined in the JVMS, the distinction between reference and type is not always very clean, which makes harder to distinct the type of the reference from the type of the instance pointed by the reference. Several new concepts have been defined in this draft: nullable type, null-free-type, type descriptor, fundamental type. Their application across the JVMS s not consistent yet, but it is likely to be future work to clean up the JVMS once the right set of new concepts have been defined. Some concepts from LW1 have been removed: the ValueTypes attribute and the value types consistency checks. Q-signatures have been added back, but are slightly different in meaning than their first version from vbytecodes/MVT. This is a document aiming at clarifying the path toward LW2, and enable engineering teams to start prototyping. It is still incomplete and many questions are still unanswered. So, it’s more a support for discussion and exploration rather than a proposal for a full LW2 specification. Thank you, Fred