> On Apr 30, 2016, at 3:53 PM, Alan Bateman <alan.bate...@oracle.com> wrote:
> 
>> On 30/04/2016 08:32, David Holmes wrote:
>> 
>> Just to add my concerns here, I was changing the launcher and building 
>> images and that caused the jmods to be rebuilt as well. I would not expect 
>> that so do we have missing dependency information in the build?
> By "changing the launcher" then do you mean the native code, say in 
> jdk/src/java.base/share/native/? There are many modules with native launchers 
> and the launcher code is compiled for each one. If you instead mean 
> LauncherHelper or other java code then it's in java.base and so the classes 
> in that module need to be recompiled and of course everything depends on 
> java.base.


Maybe the build system can generate more fine grained dependencies?

If only private or non exported classes/packages are updated, no other modules 
need to be rebuilt

If only an exported package is updated, then only other modules that import 
this package need to be rebuilt

Ioi


> As regards the jmod files then they are the packaged modules. The linker 
> consumes these so they need to be built before we create the images. Also the 
> packaged modules are copied into the `jdk` image (by jlink) as it is needed 
> to create custom images.
> 
> Anyway points to mention:
> 
> 1. The jmod files are currently huge. This is mostly because of debug info. 
> Erik fixed this recently in jdk9/dev via JDK-8155632 but it may not have got 
> to all forests yet.
> 
> 2. We have changes coming (should be in jdk9/dev by mid next week) that 
> avoids the need to generate the packaged modules in reverse topology order. 
> This is the change to the where the integrity hashes are recorded that I 
> mentioned in the first reply. This may help with the build times a bit 
> although generating the packaged modules is I/O bound so mileage may vary.
> 
> -Alan

Reply via email to