Valhalla EG Jan 31, 2018
karen.kinnear at oracle.com
Tue Jan 30 22:36:26 UTC 2018
Reminder: meeting resumes Jan 31
at 9am PT/ noon ET/ 17 Dublin, 18 Grenoble/Stockholm, 20 St Petersburg
audio only: +1 646 558 8656 or +1 669 900 6833 US Toll
Initial agenda items:
JVMS final ConstantDynamic spec: last call for feedback:
summary of final changes:
JVMS changes: http://mail.openjdk.java.net/pipermail/valhalla-spec-experts/2018-January/000500.html
Summary: Changes from: http://cr.openjdk.java.net/~dlsmith/nestmates.html <http://cr.openjdk.java.net/~dlsmith/nestmates.html>
JVMS 6 Invokeinterface:
> Otherwise, if step 1 or step 2 of the lookup procedure selects a method that is not public, invokeinterface throws an IllegalAccessError.
> This is the line that we believe could be restored, slightly modified to apply to the selection lookup procedure steps in 5.4.5, so that the only non-public selected method would be a private method which is the referenced method as well as the selected method.
Concretely, we would undo this deletion, and instead modify the rule as follows:
"Otherwise, if step 1 or step 2 of the lookup procedure selects a method that is ~~not public~~ **neither public nor private**, invokeinterface throws an IllegalAccessError."
The motivation here is that invokeinterface is uniquely able to i) resolve to a public interface method, and ii) select a protected/package method of a superclass that would otherwise be inaccessible to the caller. The fact that the referenced method is in an interface is important, because anyone with the ability to extend a class can also declare a fresh superinterface that includes any method names+descriptors they're interested in.
3. LWorld Value Types: http://cr.openjdk.java.net/~acorn/LWorldValueTypes.pdf
Updated proposal - walk through
key changes: signature handling, nullability
More information about the valhalla-spec-observers