All Classes and Interfaces
Class
Description
An assumption that is always valid.
A value that the compiler can assume is constant, but can be changed by invalidation.
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()
).Access to AST-based debugging support, which is could be language implementation specific in the
details chosen to be presented.
Enables instrumentation by attaching Probes to some nodes in a (newly created,
not yet executed) AST.
Property location.
Utility class to speculate on conditions to be never true or to be never false.
Utility class to speculate on branches to be never visited.
For a language where strings do not map into Java strings, provides utilities to find line
endings and to decode raw bytes into an approximate representation for tools to display.
Represents the target of a call.
Assertions about the code produced by the Truffle compiler.
Directives that influence the optimizations of the Truffle compiler.
Marks fields that should be considered final for a Truffle compilation although they are not
final while executing in the interpreter.
Marks a method that it is considered as a boundary for Truffle partial evaluation.
Marks classes as value types.
Allows options to be set to control the compilation of a specific
RootNode
, without
creating a dependency on the specific compiler used.Abstract utility class to speculate on conditions.
An exception thrown to model control flow in a Truffle interpreter.
Utility class to speculate on conditions to be never true or to be never false.
Specifies a factory method that creates a
Node
which is used to cast this child.Holds an
Assumption
, and knows how to recreate it with the same properties on
invalidation.A language-agnostic for printing out various pieces of a Truffle AST.
This is an implementation-specific class.
This is runtime specific API.
A receiver for AST execution events that provides a no-op
implementation of every event.
Default implementation of the Truffle runtime if the virtual machine does not provide a better
performing alternative.
Represents a direct call to a
CallTarget
.This is NOT public API.
This is NOT public API.
Contains utility classes shared across generated DSLNode implementations.
Represents a
ValueProfile
that speculates on the exact class of a value.This class contains methods that will be part of java.lang.Math starting with JDK 8.
Access to information and basic services in the runtime context for a Truffle-implemented guest
language.
This annotation is internally known by the dsl processor and used to expect errors for testing
purposes.
Specifies for a method that the loops with constant number of invocations should be fully
unrolled.
A method annotated with
Fallback
is treated as a Specialization
that implicitly
links all the guards of all other declared Specialization
annotated methods of the
operation in a negated form.Represents a frame containing values of local variables of the guest language.
Descriptor of the slots of frame objects.
Callback interface for
TruffleRuntime.iterateFrames(com.oracle.truffle.api.frame.FrameInstanceVisitor<T>)
.A slot in a frame that can store a value of a given type.
Exception thrown if the frame slot type does not match the access type.
Marks a type as being generated based on another class or method.
Utility class for creating output for the ideal graph visualizer.
Represents a
ValueProfile
that speculates on the object identity of a value.Imports all public static methods usable as guards for
Specialization
annotations to the
current class.Represents an indirect call to a
CallTarget
.A dynamically added/removed binding between a
Probe
, which provides notification of
execution events taking place at a Node
in a Guest
Language (GL) Truffle AST, and a receiver, which consumes
notifications on behalf of an external tool.A marker interface for Truffle nodes that support Instrumentation and
are should not be part of any Guest Language execution semantics.
An exception that should be thrown if an assumption is checked and the check fails.
Helper function that allows to dump the AST during creation to a JSON format.
Controls breaking out of an execution context, such as a shell or eval.
A specification for a location in guest language source, expressed as a line number in a specific
instance of
Source
, suitable for hash table keys with equality defined in terms of
content.A mapping from
LineLocation
(a line number in a specific piece of Source
code) to
a collection of Probe
s whose associated SourceSection
starts on that line.A mapping from
LineLocation
(a line number in a specific piece of Source
code) to
a collection of SourceSection
s that exist on that line.Property location.
Property location.
Accepts the execution count of a loop that is a child of this node.
Experimental API: may change significantly without notice.
Represents a materialized frame containing values of local variables of the guest language.
A handle that can be used to call a native function.
Class for obtaining the
NativeFunctionInterface
(if any) provided by the VM.An opaque representation of a native function pointer.
An opaque representation of a native library handle.
An assumption that is never valid.
Abstract base class for all Truffle nodes.
Marks fields that represent child nodes of this node.
Marks array fields that are children of this node.
Declares one or multiple assumptions for use inside a source code generation enabled node.
Declarative base class for node fields that are to be cloned together with the containing node.
Represents a rough estimate for the cost of a
Node
.Enables the dynamic creation of generated nodes.
This is NOT public API.
A
NodeFields
element defines a field for the generated Node
.Annotation for providing additional information on nodes.
Common base interface for all Truffle nodes.
Utility class that manages the special access methods for node instances.
Interface that allows the customization of field offsets used for
Unsafe
field
accesses.Information about a
Node
class.Information about a field in a
Node
class.Visitor for trees of nodes.
A special subtype of
SourceSection
that represents unavailable source, e.g.Experimental API.
Experimental API.
Represents a
ValueProfile
that speculates on the primitive equality or object identity of
values.A binding between a particular location in the Truffle AST representation of a running Guest
Language (GL) program (i.e.
An observer of events related to
Probe
s: creating and tagging.Implementation interfaces and classes for attaching
Probe
s to ProbeNode.WrapperNode
s.Any Truffle node implementing this interface can be "instrumented" by installing a
Probe
that intercepts execution events at the node and routes them to any
Instrument
s that have been attached to the Probe
.A node that can be inserted into a Truffle AST, and which enables instrumentation at
a particular Guest Language (GL) node.
Property objects represent the mapping between low-level stores and high-level data.
Property objects represent the mapping between low-level stores and high-level data.
Controls breaking out of all executions and ending Truffle execution.
Experimental API: may change significantly without notice.
An observer that is notified whenever a child node is replaced.
Represents the target of a call to a
RootNode
, i.e., to another tree of nodes.A root node is a node with a method to execute it given only a frame as a parameter.
Experimental API.
Shape objects create a mapping of Property objects to Locations.
Represents a predicate (boolean-valued function) of one argument.
Shape objects create a mapping of Property objects to indexes.
An abstract receiver for AST execution events that ignores
return values and supports handling all events by overriding only two methods:
SimpleEventReceiver.enter(Node, VirtualFrame)
, and
SimpleEventReceiver.returnAny(Node, VirtualFrame)
.
An exception thrown to enter a slow path.
Representation of a guest language source code unit and its contents.
Description of contiguous section of text within a
Source
of program code; supports
multiple modes of access to the text and its location.A somewhat language-agnostic set of user-sensible syntactic categories, suitable for conventional
imperative languages, and is being developed incrementally.
Program element "tags", presumed to be singletons (best implemented as enums) that define
user-visible behavior for debugging and other simple tools.
Information about a guest language program element in a Truffle AST that can be marked as
belonging to 0 or more tags.
A trap that can be set to interrupt execution at probed nodes carrying a specific tag.
Class for obtaining the Truffle runtime singleton object of this virtual machine.
A receiver of Truffle AST runtime execution events that can collect information and possibly
intervene on behalf of an external tool.
Class containing general Truffle options.
Interface representing a Truffle runtime object.
Tool access to the creation of Truffle execution engines.
Provides a way to define a custom type check for a defined type.
Each
Node
has one TypeSystem
at its root to define the types that can be used
throughout the system.References a
TypeSystem
on a node.An exception that should be thrown if the return value cannot be represented as a value of the
return type.
An assumption that combines two other assumptions.
Experimental API.
Thrown by the generated code of Truffle-DSL if no compatible Specialization could be found for
the provided values.
Utility class to speculate on certain properties of values.
Experimental API.
Represents a frame containing values of local variables of the guest language.
Visualization services for the benefit of instrumentation-based tools, possibly specialized for
each guest language and possibly specialized for relevant information from the underlying Truffle
implementation.