On 17/10/2017 17:53, Martin Buchholz wrote:
I tried to figure out how this patch actually works. At first I
thought we were "shading" (renaming all the packages in the source
files) but now I think we're merely renaming the modules by appending
".interim" to the names. But that looks like cheating to me - we're
not allowed to have multiple modules containing the same packages, but
are getting away with it because the runtime happens to never look at
the (unused) original jdk9 modules?
The patch uses `--limit-modules` to limit the observability of modules
and prevent the jdk.compiler module in the boot JDK from being resolved.
If the boot JDK were to resolve jdk.compiler (in its own run-time image)
and jdk.compiler.interim on the module path then you would end up with
two modules containing the same classes mapped to the app class loader,
can't do that.
-Alan