[Nestmates] RFR (S): 8194906: [Nestmates] Finalize javac and other tool changes

Karen Kinnear karen.kinnear at oracle.com
Wed May 9 20:31:04 UTC 2018


Share your concern: disableVirtualizedPrivateInvoke flag - if we want it - would be a backward compatibility flag - i.e.
only supported for cases that JDK10 supports - so invocations of private methods in the caller’s class - not for general
nestmate private methods. We chose not to go the invokespecial path for that for a reason.

thanks,
Karen

> On May 8, 2018, at 9:43 PM, David Holmes <david.holmes at oracle.com> wrote:
> 
> On 8/05/2018 7:14 PM, David Holmes wrote:
>> In preparation for putting out the mainline RFR for nestmates I've made a few updates to the javac support as Maurizio and I have discussed (generally) in email in the past:
>> webrev: http://cr.openjdk.java.net/~dholmes/8194906/webrev/
>> Changes:
>> - move test location
>> - remove disableAccessors/disablePrivateAccessors flags and rely on nestmate support for disabling private accessors
>> - add disableProtectedAccessors as an experimental flag
>> - remove virtualizePrivateAccess flag
>> - add disableVirtualizedPrivateInvoke flag
>> The disableVirtualizedPrivateInvoke flag allows us to easily switch back to issuing invokeSpecial instead of invokeVirtual/invokeInterface for private method invocations. This can be useful for running tests in a "legacy" mode without having to disable all nestmate support (by running with --release 10 for example).
> 
> For example, I just added:
> 
> http://cr.openjdk.java.net/~dholmes/8194906/webrev/test/jdk/java/lang/invoke/SpecialInterfaceCall.java.cdiff.html <http://cr.openjdk.java.net/~dholmes/8194906/webrev/test/jdk/java/lang/invoke/SpecialInterfaceCall.java.cdiff.html>
> 
> to the webrev. But I'm having some doubts about the utility and wisdom of doing this. If you generate invokespecial you have to obey all invokespecial access rules, which won't be the case in general if accessing nestmate private methods. It works for the above test, but there are others in java/lang/invoke that fail.
> 
> Thoughts?
> 
> Thanks,
> David
> 
>> Thanks,
>> David



More information about the valhalla-dev mailing list