# Package com.oracle.truffle.api

Interface Summary
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
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
OptimizationFailedException

Annotation Types Summary
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.