Class StandardTags.RootTag

java.lang.Object
com.oracle.truffle.api.instrumentation.Tag
com.oracle.truffle.api.instrumentation.StandardTags.RootTag
Enclosing class:
StandardTags

public static final class StandardTags.RootTag extends Tag
Marks program locations as root of a function, method or closure. The root prolog should be executed by this node. In particular, when the implementation copies Frame.getArguments() into frame slots, it should do it here for the instrumentation to work correctly. As a result, local scope might be incomplete for instruments, as the prolog does not run before this node is entered and epilog may do destructions before this node is exited.

Use case descriptions:

  • Debugger: Use this tag to unwind frames.
The RootTag uses the identifier "ROOT". A node tagged with StandardTags.RootTag must provide a source section, if its root node provides a source section.

If the a node tagged with root returns a non null value then it must be an interop value. There are assertions in place verifying this when Java assertions are enabled (-ea).

Since:
0.12