On 19/05/2018 10:18, Mark Raynsford wrote:
Hello!

I've been interested for a while in making all of my software builds
reproducible [0]. I don't think there's ever been any kind of
written guarantee that the output of javac will be completely
deterministic, but to date it seems like it actually has been. However,
I was a bit disappointed today to find that the output of one of the
builds at AdoptOpenJDK [1] seems to be inserting compiler version
information into compiled module descriptors. It doesn't seem to be
doing this for any other class files.
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.

-Alan

Reply via email to