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

Reply via email to