Ahead-of-time compilation using Truffle
Guest language developers can make use of Graal's Ahead-of-Time (AOT) feature by implementing Truffle AOT. The guest language developer has to implement the RootNode.prepareForAOT()
method by returning a non-null value. If a null value is returned, Truffle/Graal understands that this language does not support building native images. To support AOT, the prepraeForAOT()
method typically might implement the following tasks:
- Provide type information about the local variables and update them in
FrameDescriptor
. This will help the AOT compiler to resolve the types during build time. - Resolve and define the arguments and return types.
Truffle DSL provides helper classes to accelerate the development of AOT features. The com.oracle.truffle.api.dsl.AOTSupport
class recursively prepares the AST for AOT. Each node in the AST has to have an implementation of the prepareForAOT()
method.
AOT compilation can be triggered by passing...