JEPs proposed to target JDK 9 (2016/10/19)
vladimir.kozlov at oracle.com
Wed Oct 19 22:00:57 UTC 2016
Sorry, David, I don't understand what do you mean under "set of known
entry points into the code" and "change the set".
AOT compiler is not JIT compiler. It is static compiler (similar to
javac) which loads specified classes and compiles their methods
*without* executing these methods (in most cases). It does execute class
initializer <clinit> but we may address that in a future to avoid side
effects. There are also methods which are executed by Graal.
AOT also records fingerprint (checksum) calculated during class loading
to make sure that aot methods are used for the same class when
application is run. As result if class redefinition or other methods
change class corresponding aot methods will be not used anymore.
On 10/19/16 12:39 PM, David M. Lloyd wrote:
> On 10/19/2016 12:14 PM, mark.reinhold at oracle.com wrote:
>> 295: Ahead-of-Time Compilation
> I have a question on this one - maybe it's best addressed specifically
> to John Rose though, and please forgive my relatively shallow
> understanding of the JIT and this new AOT compiler.
> Does the AOT compiler depend on knowing all possible entry points into
> certain methods? Is it possible for things like --add-exports with
> reflection, which change the set of known entry points into the code, to
> cause unexpected operation? I saw no mention of these things on the JEP
> page but it was my understanding that AOT compilation depends on this
> kind of information.
More information about the jdk9-dev