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.
What is "a reader”?
A person reading the code.
I don't think it will help "reader" to have 174 lines which are hard to read in
module-info.java:
provides com.oracle.graal.nodes.graphbuilderconf.NodeIntrinsicPluginFactory
with com.oracle.graal.hotspot.nodes.PluginFactory_AcquiredCASLockNode;
I would agree if it was only 20-30 dependencies but not so many.
Regards,
Vladimir
On 10/28/16 2:23 PM, Mandy Chung wrote:
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