On 2018-05-19T12:26:55 +0100
Alan Bateman <alan.bate...@oracle.com> wrote:
>
> The requires table in the Module attribute can be used by compilers to 
> record version information about dependences. javac does record the 
> version information, I don't know if there is a way to disable that. In 
> any case, I assume your question will be partly answered by looking at 
> the output of `java --list-modules` on the different builds. If you 
> download OpenJDK builds from jdk.java.net/10 then you should see that 
> the standard and JDK-specific modules all report their version string as 
> "10" or "10.0.1" as they have been built with configure options that 
> make it so. At a guess, your mail may have included the output from an 
> exploded (as opposed to images) build.

That's a good point: What I thought I was looking at was the compiler
inserting it's own version into the class file (as in "this class file
was compiled by compiler version 10-internal") as opposed to the
versions of the modules being inserted.

Having the platform module versions present still implies
non-reproducibility but perhaps that's workable in some way.

On 2018-05-19T13:49:40 +0200
Remi Forax <fo...@univ-mlv.fr> wrote:

> I think it's the opposite, by default the compiler add the version of the 
> required module,
> so the AdoptOpenJDK version does the right thing, you should have the module 
> compiled version by default,
> the real question is why the compiler of the openjdk version 10.0.1 doesn't 
> generate the required module version.

That is another good point! This build is the one distributed on Arch
Linux. This was the procedure used to build it (no patches are applied):

  
https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/java10-openjdk#n58

-- 
Mark Raynsford | http://www.io7m.com

Reply via email to