> On Oct 28, 2016, at 1:52 PM, Vladimir Kozlov <vladimir.koz...@oracle.com> 
> wrote:
> 
> Thank you, Mandy
> 
> On 10/28/16 1:31 PM, Mandy Chung wrote:
>> 
>>> On Oct 26, 2016, at 5:45 PM, Vladimir Kozlov <vladimir.koz...@oracle.com> 
>>> wrote:
>>> 
>>> http://cr.openjdk.java.net/~kvn/aot/hs.make.webrev/
>> 
>> make/gensrc/Gensrc-jdk.vm.compiler.gmk
>>   This generates module-info.java.extra at build time to augment 
>> module-info.java with `uses` and `provides`.  module-info.java.extra is 
>> expected to be checked in the source.
>> 
>>   Do you expect the list of `uses` and `provides` are often changed?
> 
> Yes, Graal code changes frequently and  we need to run annotation processor 
> to generate these dependencies for each jdk.vm.compiler (Graal) module build.
> 

When the OptionDescriptors list is changed, we can run the tool (you can add a 
make target if it helps) to generate the list of `uses` and `provides`.  Then 
update module-info.java in the source together with the changes.  That would 
work too, right?

>> The alternative is to declare `uses` and `provides` in module-info.java in 
>> the source repo so that a reader can see the module descriptor content 
>> without needing to do a build.  A test to detect if the module-info.java is 
>> out-of-sync with the annotated options.  In addition a make target to 
>> generate the list of `use` and `provides` can be used to generate 
>> module-info.java to be included in any change in the annotated options list.
> 
> What is "a reader”?

A person reading the code.

> And how to check "out-of-sync" without running 'processor’?

I meant a regression test that will run the annotation processor and compare 
with module-info.class in the image (using java.lang.module.ModuleDescriptor 
API)

Mandy

> Sorry, I am not familiar with all this modules build process.
> 
> Thanks,
> Vladimir
> 
>> 
>> Mandy
>> 

Reply via email to