RFR: 8167180: [JVMCI] Exported elements referring to inaccessible types in jdk.vm.ci
Doug Simon
doug.simon at oracle.com
Thu Oct 13 20:19:08 UTC 2016
> On 13 Oct 2016, at 22:15, Christian Thalinger <cthalinger at twitter.com> wrote:
>
>>
>> On Oct 13, 2016, at 9:12 AM, Doug Simon <doug.simon at oracle.com> wrote:
>>
>>>
>>> On 13 Oct 2016, at 20:57, Christian Thalinger <cthalinger at twitter.com> wrote:
>>>
>>>
>>>> On Oct 13, 2016, at 3:25 AM, Doug Simon <doug.simon at oracle.com> wrote:
>>>>
>>>> I’d like to humbly request a compiler team member to review this change as well ;-)
>>>
>>> Looks good. I have one question:
>>> module jdk.vm.ci {
>>> exports jdk.vm.ci.services;
>>>
>>> - exports jdk.vm.ci.runtime.services;
>>> - exports jdk.vm.ci.hotspot.services;
>>> Why are these exports not required anymore?
>>
>> Because those packages no longer exist ;-) The classes have been moved to jdk.vm.ci.runtime and jdk.vm.ci.hotspot respectively.
>
> Haha, yeah, I missed that files were moved. Looks even good’er then ;-)
;-) Thanks for the review. Now I just need to wait for jdk9/hs to be open...
>
>>
>> -Doug
>>
>>>>> On 12 Oct 2016, at 16:26, Doug Simon <doug.simon at oracle.com> wrote:
>>>>>
>>>>>>
>>>>>> On 12 Oct 2016, at 16:16, Alan Bateman <Alan.Bateman at oracle.com> wrote:
>>>>>>
>>>>>> On 11/10/2016 21:44, Doug Simon wrote:
>>>>>>
>>>>>>>> On 11 Oct 2016, at 22:40, Mandy Chung <mandy.chung at oracle.com> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Oct 11, 2016, at 1:36 PM, Doug Simon <doug.simon at oracle.com> wrote:
>>>>>>>>>
>>>>>>>>> Another alternative name is JVMCIServiceLocator:
>>>>>>>>>
>>>>>>>>> /**
>>>>>>>>> * Service-provider class for the runtime to locate providers of JVMCI services where the latter are
>>>>>>>>> * not in packages exported by the JVMCI module. As part of instantiating
>>>>>>>>> * {@link JVMCIServiceLocator}, all JVMCI packages will be {@linkplain Services#exportJVMCITo(Class)
>>>>>>>>> * exported} to the module defining the class of the instantiated object.
>>>>>>>>> *
>>>>>>>>> * While the {@link #getProvider(Class)} method can be used directly, it's usually easier to use
>>>>>>>>> * {@link #getProviders(Class)}.
>>>>>>>>> */
>>>>>>>>> public abstract class JVMCIServiceLocator
>>>>>>>> This class will find the provider of a given service. I think JVMCIServiceLocator is fine.
>>>>>>> Ok, I’ll make that change in the final patch.
>>>>>>>
>>>>>> This name looks okay to me. I assume the first sentence in the javadoc will be updated too as it's a service locator now rather than a "service-provider”.
>>>>>
>>>>> Well, it is still a service provider in the sense that it’s looked up via a ServiceLoader. The service it provides is to locate other (non-ServiceLoader) services. That is, JVMCIServiceLocator is an alternative to ServiceProvider for services that need access to the JVMCI module before they can be created.
>>>>>
>>>>> -Doug
More information about the hotspot-compiler-dev
mailing list