# Package com.oracle.truffle.api

Interface Summary
Interface | Description
--- | ---
Assumption | An assumption is a global boolean flag that starts with the value true (i.e., the assumption is valid) and can subsequently be invalidated (using `Assumption.invalidate()`).
CallTarget | Represents the target of a call.
CompilerOptions | Allows options to be set to control the compilation of a specific `RootNode`, without creating a dependency on the specific compiler used.
LoopCountReceiver | Accepts the execution count of a loop that is a child of this node.
ReplaceObserver | An observer that is notified whenever a child node is replaced.
RootCallTarget | Represents the target of a call to a `RootNode`, i.e., to another tree of nodes.
TruffleRuntime | Interface representing a Truffle runtime object.
TypedObject |

Class Summary
Class | Description
--- | ---
CompilerAsserts | Assertions about the code produced by the Truffle compiler.
CompilerDirectives | Directives that influence the optimizations of the Truffle compiler.
ExactMath | This class contains methods that will be part of java.lang.Math starting with JDK 8.
ExecutionContext | Access to information and basic services in the runtime context for a Truffle-implemented guest language.
Truffle | Class for obtaining the Truffle runtime singleton object of this virtual machine.
TruffleOptions | Class containing general Truffle options.

Exception Summary
Exception | Description
--- | ---
OptimizationFailedException |

Annotation Types Summary
Annotation Type | Description
--- | ---
CompilerDirectives.CompilationFinal | Marks fields that should be considered final for a Truffle compilation although they are not final while executing in the interpreter.
CompilerDirectives.TruffleBoundary | Marks a method that it is considered as a boundary for Truffle partial evaluation.
CompilerDirectives.ValueType | Marks classes as value types.