Value class spec updates
daniel.smith at oracle.com
Fri Jun 16 06:00:14 UTC 2017
Please see the following JVM spec documents:
 A minor update to the previously-shared document—changes detailed below.
 An adjustment to the Value Classes spec introducing CONSTANT_ClassType to represent direct value class types.
 An adjustment to the Value Classes spec to allow value classes to be declared explicitly, rather than derived.
Changes to :
- Allowed vbox to trigger initialization of the VCC.
- Reordered runtime exceptions of vunbox (NPE, not ICCE, if the input is null).
- Added some minor changes to account for the broader domain of CONSTANT_Class strings in 4.7.3, 4.7.5, 188.8.131.52, and 'new'.
On my TODO list:
- Investigate exactly which steps should be taken when loading a $Value class triggers loading of a VCC
- Clean up verification rules to enforce the 4.9.1 static constraints (and maybe move some format checking/static constraints to resolution time?)
 and  are not necessarily part of MVT, but are natural next steps that we have discussed recently.  sets us up for introducing as many type structures as we want and moving away from using CONSTANT_Class to represent types (while continuing to provide legacy support).  seems the best path towards dropping the "$Value" convention and, ultimately, having a Q/L pair of types pointing to a single class name. Not sure whether  is a viable stopping point for tools and APIs, though, without taking another step to add support for boxed L types.
More information about the valhalla-spec-observers