All Classes and Interfaces
Class
Description
A base class for an exception thrown during the execution of a guest language program.
The following snippet shows the guest language exception implementation.
The following snippet shows the guest language exception implementation.
Abstract base class for Truffle strings.
Mechanism for referring to fields and methods otherwise inaccessible due to Java language access
control rules.
An event representing an allocation of a guest language value.
An instrumentation filter of allocations of guest language values.
Listener to be notified about guest language value allocations.
Reporter of guest language value allocations.
Allows a method annotated with
CField
to have a value type that is narrower (smaller
number of bits) than the C type.Allows a method annotated with
CField
to have a value type that is wider (larger number
of bits) than the C type.This annotation allows to add additional annotations to existing methods but keep the
implementation as it is.
This class provides methods to query annotation information on
AnnotatedElement
s while
trying to prevent, at image build time, side-effecting changes that impact the analysis results.Helper class to prepare AOT enabled nodes for AOT in
RootNode.prepareForAOT()
.An exception thrown if a executable or instantiable object was provided with the wrong number of
arguments.
This class provides additional operations for
String
as well as character and byte
arrays, which may be intrinsified by a compiler.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()
).Deprecated, for removal: This API element is subject to removal in a future version.
Binds and executes an expression at most once for every execution of the node.
Defines a default bind expression for a given type.
Represents a standard node for guest language blocks.
Represents a contract how block element nodes can be executed.
Deprecated.
BranchProfiles are profiles to speculate on branches that are unlikely to be visited.
A request that guest language program execution be suspended at specified locations on behalf of
a debugging client session.
Specifies a breakpoint kind.
This listener is called when a breakpoint is resolved at the target location.
Utility methods to write to and read from arrays of bytes.
Parent class for a bytecode builder generated by the Bytecode DSL.
The configuration to use while generating bytecode.
Builder to generate a
BytecodeConfig
programmatically.Abstract class implemented by generated code to encode
BytecodeConfig
data.Base interface for a bytecode root node to get additional debug event that are normally not
available.
Implement this class to quickly get some debug output for events in the bytecode node.
Represents a class that can deserialize constants from a byte stream.
Interface for a generated class that can deserialize a
BytecodeRootNode
from a byte
input.Accessor class used to abstract away frame and bytecode array accesses in the generated code.
Class representing an exception thrown by a
BytecodeBuilder
when the program cannot be
encoded, for example, when the bytecode exceeds the maximum addressable bytecode size.Abstract definition of a label.
Abstract definition of a local variable in the interpreter.
A materialized bytecode location.
Represents the current bytecode for a Bytecode DSL root node.
Interface for Truffle bytecode nodes which can be on-stack replaced (OSR).
Functional interface containing a method to parse one or more nodes using a
BytecodeBuilder
.Base interface to be implemented by the bytecode root node of a Bytecode DSL interpreter.
A
BytecodeRootNodes
instance encapsulates one or more bytecode root nodes produced from a
single parse.Represents a class that can serialize constants in a bytecode interpreter.
Interface for a generated class that can serialize a
BytecodeRootNode
to a byte
buffer.Contains code to support Bytecode DSL interpreters.
Special list to weakly keep track of clones.
Represents the tier of a given
BytecodeNode
.A ByteSequence is a readable sequence of
byte
values.
Specialized value profile to capture certain properties of
byte
runtime values.
A parameter annotated with
Cached
in a Specialization
refers to a cached
value of a specialization instance.Disallows any sharing with other cached parameters.
Allows sharing between multiple Cached parameters between multiple specializations or
exported library messages.
The cached library annotation allows to use
Truffle
Libraries
conveniently in specializations
or exported messages
.Represents the target of a call.
Denotes a method as a bitfield access of a
C struct
.A pointer to a 8-bit C primitive value.
A pointer to a pointer to a 8-bit C primitive value.
Qualifies a C type as const in an entry-point method signature.
Denotes a method as a C constant value.
Allows access to the value of a
CConstant
during image generation.Defines the context for most other annotations of the C interface: the C header files that need
to be imported, the C macros that need to be defined to properly configure these headers, and
additional flags that should be passed to the C compiler when analyzing the definitions.
Describes a C context.
A pointer to a C primitive 'double' value.
Annotates a method that is a VM entry point.
A
BooleanSupplier
that always returns true
.The built-in methods which can be aliased.
Marker interface for all
exception handler
classes.Special placeholder value for
CEntryPoint.exceptionHandler()
to print the caught exception and
treat it as a fatal error
.Designates an
Isolate
parameter to use as the execution context.Designates an
IsolateThread
parameter to use as the execution context.A
BooleanSupplier
that always returns false
.A function pointer to an
entry point method
that can be, for example, handed
out to C code so that C code can call back into Java code.Annotation to import a C enumeration to Java.
Provides additional properties for a field (i.e., an enumeration value) of Java enumeration
annotated with
CEnum
.Annotation for a method that returns the Java enumeration object for a given C integer value.
Annotation for a method that returns the C integer value for a Java enumeration object.
Denotes a method as a field access of a
C struct
.Denotes a method as a field address computation of a
C struct
.Denotes a method as a field offset access of a
C struct
.A pointer to a C primitive 'float' value.
Denotes a
native
method that calls directly from Java to C, without following the JNI
protocol.Describes the thread state transition performed when the C function is invoked.
Base interface for all function pointers.
Defines the C header file for entry points enclosed by the annotated class or method.
Container for Header file properties.
A pointer to a 32-bit C primitive value.
A pointer to a pointer to a 32-bit C primitive value.
Denotes an external library that needs to be linked in.
A pointer to a 64-bit C primitive value.
Informational only.
Pointer to executable code.
A machine-word-sized value that can be compared for equality.
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.
ConditionProfiles are useful to profile the outcome of conditions.
Defines a constant operand for an operation.
Repeat annotation for
ConstantOperand
.A polyglot context for Graal guest languages that allows to
evaluate
code.A context local reference that refers to a value that is created for each polyglot context.
Listener to be notified about changes of contexts in guest language application.
A context thread local reference that refers to a value that is created for each polyglot context
and thread.
Representation of a continuation closure, consisting of a resumable
RootNode
, the
interpreter state, and a yielded result.Abstract class representing the root node for a continuation.
An exception thrown to model control flow in a Truffle interpreter.
CountingConditionProfiles are useful to profile the outcome of conditions.
Denotes Java interface that imports a C pointer type.
Specifies a factory method that creates a
Node
which is used to cast this child.A pointer to a 16-bit C primitive value.
Denotes Java interface that imports a C struct.
Utility methods to convert between Java types and C types.
An auto-closable that holds a Java
CharSequence
as a null-terminated C char[] array.An auto-closable that holds a Java
CharSequence
[] array as a null-terminated array of
null-terminated C char[]s.Defines a name for C type to be used in an entry-point method signature.
Informational only.
Qualifies a C integer type as unsigned in an entry-point method signature.
Utility methods that provide access to the current isolate.
Holds an
Assumption
, and knows how to recreate it with the same properties on
invalidation.Representation of a polyglot context in a guest language execution.
Listener to be notified about changes of contexts in guest language application.
Information about an exception thrown from a guest language.
Represents an exception catch location.
Class that simplifies implementing a debugger on top of Truffle.
Represents a single debugging session of a Debugger.
Set of debugger-specific tags.
Representation of guest language scope at the current suspension point, or a top scope.
Represents a frame in the guest language stack.
Represents a trace element in the guest language stack trace.
Listener to be notified about changes of threads in guest language application.
Represents a value accessed using the debugger API.
Service provider interface implemented by external default exports of a library.
A trivial static object factory that allocates static objects of type
Object
.A trivial default implementation of
StaticProperty
.Mechanism to ensures that an element is not used.
If a
Node
subtype is annotated with this annotation then replacement
is denied.Represents a direct call to a
CallTarget
.Deprecated.
Specialized value profile to capture certain properties of
double
runtime values.APIs to support share code in generated code.
Interface implemented by specialization data classes.
A library that allows to dynamically dispatch to export library classes.
Represents a dynamic object, members of which can be dynamically added and removed at run time.
Using this annotation, subclasses can define additional dynamic fields to be used by the
object layout.
DynamicObject
access library.Service provider interface implemented by library exports if they needed to be loaded eagerly
with a library.
Memory efficient map data structure that dynamically changes its representation depending on the
number of entries and is specially optimized for small number of entries.
Utility methods for the
EconomicMap
.Wraps an existing
Map
as an EconomicMap
.Memory efficient set data structure.
Thread local reference class to remember the current encapsulating node of an interpreter on the
stack.
An execution engine for Graal guest languages that allows to inspect the
the installed
guest languages
, instruments
and
their available options.Represents an access policy to the process environment for the guest languages of a context.
Defines an exceptional epilog operation.
Defines a return epilog operation.
Strategy for comparing two objects.
An instrumentation handle for a subscription to a
filtered stream of execution event notifications.
Represents the context of an execution event.
This class contains exact math related methods that are generally useful for dynamic language
implementations.
Introspection class modeling the meta-information of an exception handler in a bytecode
interpreter.
Represents the kind of the exception handler.
Represents a type of a Truffle exception.
Represents an executable node in a Truffle AST.
This annotation declares a
child
field to be executed and used as dynamic input
values for specializations
.Represents a source execute event from a
ExecuteSourceListener
.A listener attached by an
Instrumenter
to specific sources of a guest language program to
listen to execute source events.Allows tracing of calls to
execute
methods of a Node
.An execution event object passed to an execution listener consumer.
A listener attached by an
Instrumenter
to specific locations of a guest language program
to listen to execution events.An event node created by an
ExecutionEventNodeFactory
for a specific locations of a guest
language program to listen to instrumentation events.Event node factories are factories of event nodes for a
program location
.Execution listeners allow to instrument the execution of guest languages.
Represents an execution signature of a
RootNode
.Specifies that loops originating from within this method should be fully unrolled.
Controls the behavior of the
ExplodeLoop
annotation.Allows to export messages of Truffle libraries.
Repeat annotation for
ExportLibrary
.Exports the annotated method or class as library message.
Explicitly ignores warning messages originating from the
ExportLibrary
annotation.
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.Features allow clients to intercept the native image generation and run custom initialization
code at various stages.
Access methods available for
Feature.afterAnalysis(org.graalvm.nativeimage.hosted.Feature.AfterAnalysisAccess)
.Access methods available for
Feature.afterCompilation(org.graalvm.nativeimage.hosted.Feature.AfterCompilationAccess)
.Access methods available for
Feature.afterHeapLayout(org.graalvm.nativeimage.hosted.Feature.AfterHeapLayoutAccess)
.Access methods available for
Feature.afterImageWrite(org.graalvm.nativeimage.hosted.Feature.AfterImageWriteAccess)
.Access methods available for
Feature.afterRegistration(org.graalvm.nativeimage.hosted.Feature.AfterRegistrationAccess)
.Access methods available for
Feature.beforeAnalysis(org.graalvm.nativeimage.hosted.Feature.BeforeAnalysisAccess)
.Access methods available for
Feature.beforeCompilation(org.graalvm.nativeimage.hosted.Feature.BeforeCompilationAccess)
.Access methods available for
Feature.beforeHeapLayout(org.graalvm.nativeimage.hosted.Feature.BeforeHeapLayoutAccess)
.Access methods available for
Feature.beforeImageWrite(org.graalvm.nativeimage.hosted.Feature.BeforeImageWriteAccess)
.Access methods available for
Feature.beforeUniverseBuilding(org.graalvm.nativeimage.hosted.Feature.BeforeUniverseBuildingAccess)
.Access methods available for
Feature.duringAnalysis(org.graalvm.nativeimage.hosted.Feature.DuringAnalysisAccess)
.Access methods available for
Feature.duringSetup(org.graalvm.nativeimage.hosted.Feature.DuringSetupAccess)
.Access methods that are available for all feature methods.
Access methods available for
Feature.isInConfiguration(org.graalvm.nativeimage.hosted.Feature.IsInConfigurationAccess)
.Access methods available for
Feature.onAnalysisExit(org.graalvm.nativeimage.hosted.Feature.OnAnalysisExitAccess)
.Access reachability methods available for
Feature.afterAnalysis(org.graalvm.nativeimage.hosted.Feature.AfterAnalysisAccess)
and
Feature.duringAnalysis(org.graalvm.nativeimage.hosted.Feature.DuringAnalysisAccess)
.A transformer for a field value that can be registered using
Feature.BeforeAnalysisAccess.registerFieldValueTransformer(java.lang.reflect.Field, org.graalvm.nativeimage.hosted.FieldValueTransformer)
.Service-provider for
Truffle
files.A selector for determining which
FileSystem
should handle operations on a given
Path
.Read-only bitset designed for partial evaluation.
Deprecated.
Specialized value profile to capture certain properties of
float
runtime values.Forces quickening for an
Operation
specialization
.Repeat annotation for
ForceQuickening
.Represents a frame containing values of local variables of the guest language.
Descriptor of the slots of frame objects.
Builder API for frame descriptors with indexed slots.
Internal frame accessor methods for internal Truffle components that are trusted.
Represents a current frame instance on the stack.
Access mode for
FrameInstance.getFrame(FrameAccess)
.Callback interface for
TruffleRuntime.iterateFrames(com.oracle.truffle.api.frame.FrameInstanceVisitor<T>)
.Exception thrown if the frame slot kind does not match the expected kind.
Allows nodes with specializations to be prepared for AOT.
Excludes the annotated
Specialization
from AOT preparation.Implemented by generated code.
Generates a bytecode interpreter using the Bytecode DSL.
This annotation should only be used for testing to generate multiple variants of the interpreter
with slightly different
configurations
.The annotation used to declare a variant.
Allows to enable or disable the generation of the cached version of a Truffle DSL node.
Marks a type as being generated based on another class or method of a class.
Generates code for a node that makes this node inlinable when used in
cached
parameters of specializations
.Libraries are specified with
public
and abstract
Java classes that
extend the Library class and are annotated by @GenerateLibrary
.Makes a library message abstract, but allows to keep a default implementation.
Specifies
library
implementations provided by default as a fallback.Annotate nodes or base classes of nodes to generate factory handlers implementing the
NodeFactory
interface.Make the code generated for an annotated
node
package-private.Generates an uncached version of a node with specializations.
Generates a default wrapper subclass of an annotated
InstrumentableNode
subclass.Annotates a method which should not be instrumented in the generated wrapper subclass.
Annotates a method to be used as incoming value converter.
Annotates a method to be used as outgoing value converter.
An interface to be implemented by
yield exceptions
.A unique key to be used for private object fields; excluded from enumeration and compared by
object identity.
A utility class to find various paths of the running GraalVM, as well as the version.
Represents the host access policy of a polyglot context.
If
HostAccess.SCOPED
is used, placing this annotation on an exported host function
excludes it from parameter scoping, i.e.Annotation used by the predefined
HostAccess.EXPLICIT
access policy to mark public
constructors, methods and fields in public classes that should be accessible by the guest
application.Allows guest language to implement a Java type.
List of default host object mappings of mutable target types available in
Value.as(Class)
.Represents the precedence of a target type mapping.
Directives that influence the optimizations of the host compiler.
Marks a method that is an implementation of a Truffle interpreter, and which should receive
additional optimization budget.
Deprecated.
use is no longer needed.
Hints to Truffle host inlining that a particular method is partial evaluatable, but it would
be a good place for a cutoff when performing host inlining.
Methods annotated with
Idempotent
must be methods that may cause side effects but will
always cause the same side effects for repeated invocations with the same parameters.Utility class to retrieve information about the context in which code gets executed.
A key-value store of singleton objects.
Marks an implicit cast method.
Imports all
public
and static
methods and fields of the provided
classes for the use in DSL expressions of the annotated class or its subclasses.Deprecated.
Represents an indirect call to a
CallTarget
.Injects the annotated field into the
TargetClass
.Inject accessor methods for the field denoted using an
Alias
annotation.BranchProfiles are profiles to speculate on branches that are unlikely to be visited.
Specialized value profile to capture certain properties of
byte
runtime values.ConditionProfiles are useful to profile the outcome of conditions.
CountingConditionProfiles are useful to profile the outcome of conditions.
Specialized value profile to capture certain properties of
byte
runtime values.Specialized value profile to capture the exact class of
reference
runtime values.Specialized value profile to capture certain properties of
float
runtime values.Specialized value profile to capture certain properties of
int
runtime values.Specialized value profile to capture certain properties of
long
runtime values.
InlinedLoopConditionProfiles are designed to profile the outcome of loop conditions.
A profile is a Truffle utility class that uses the
Truffle compiler
directives
to guard for and/or forward runtime information to the compiler.Contains classes to support node object inlining in Truffle.
Represents a field for boolean primitives in inlined nodes.
Represents a field for byte primitives in inlined nodes.
Represents a field for char primitives in inlined nodes.
Represents a field for double primitives in inlined nodes.
Represents a field for float primitives in inlined nodes.
Base class for inlined field references.
An inline targert for an inlinable node.
Represents a field for int primitives in inlined nodes.
Represents a field for long primitives in inlined nodes.
Represents a field for references in inlined nodes.
Used to specify fields for node object inlining in inline methods for the
inline target
.Used to specify multiple
InlineSupport.RequiredField
.Represents a field for short primitives in inlined nodes.
Represents a field for updating state fields in inlined nodes.
Marks a field to be accessed with unsafe.
Represents metadata for an instruction in a bytecode node.
Represents metadata for an argument of an instruction in a bytecode node.
Represents a branch profile.
Represents the kind of an
Instruction.Argument
.A handle for an instrument installed in an
engine
.Interface implemented by AST
nodes
that may be instrumentable: an AST
location where Truffle
instruments are permitted to listen to before and after using execution event listeners.Nodes that the instrumentation framework inserts into guest language ASTs (between
instrumentable
guest language nodes and their parents) for the
purpose of interposing on execution events and reporting them via the instrumentation
framework.Instrumentations are operations that can be dynamically enabled at runtime.
Provides capabilities to attach listeners for execution, load, output and allocation events.
Represents public information about an instrument.
Wrapper object containing a
TruffleString
's internal byte array, along with a byte offset
and length defining the region in use.Represents an internal resource of a language that can be lazily unpacked to a cache user
directory.
Represents a supported CPU architecture.
Access to common utilities for unpacking resource files.
The annotation used to lookup
InternalResource
by an id.Represents a supported operating system.
Used to register an optional
InternalResource
using a ServiceLoader
.Common super class for exceptions that can occur when sending
interop
messages
.Represents the library that specifies the interoperability message protocol between Truffle
languages, tools and embedders.
Deprecated.
Annotate a DSL operation using this annotation to be introspectable.
Contains introspection utilities for Truffle DSL.
Internal marker interface for DSL generated code to access reflection information.
Represents dynamic introspection information of a specialization of a DSL operation.
Specialized value profile to capture certain properties of
int
runtime values.An exception thrown if an array does not contain a element with an index.
An exception that should be thrown if an assumption is checked and the check fails.
An exception thrown if a buffer access if out of bounds.
Annotation for an invocation method defined in a sub-interface of
CFunctionPointer
.Represents an IO access configuration of a polyglot context.
Builder to create a custom
IO access configuration
.Pointer to the runtime data structure for an isolate.
Support for the creation, access to, and tear-down of isolates.
Parameters for the creation of an isolate.
Builder for a
Isolates.CreateIsolateParameters
instance.An exception thrown in the context of managing isolates.
Identifies a protection domain for an isolate.
Pointer to the runtime data structure for a thread.
Deprecated.
This class is deprecated and will be removed in a future version.
If a class annotated with
TargetClass
is also annotated with Substitute
, all
non-substituted methods in that class are by default treated as deleted
.A handle for a Graal language installed in an
engine
.Represents public information about a language.
Deprecated.
since 21.1.
Internal package access helper.
Deprecated.
Implementation detail.
Base class for all Truffle library specifications.
Base class for generated export classes.
Internal interface for generated code only.
Library factories allow to create instances of libraries used to call library messages.
Represents a source load event from a
LoadSourceListener
.A listener attached by an
Instrumenter
to specific locations of a guest language program
to listen to load source events.Represents a source section load event from a
LoadSourceSectionListener
.A listener attached by an
Instrumenter
to specific locations of a guest language program
to listen to sources section load events.Operation parameter that allows an operation to get, set, and clear the value of a local.
Operation parameter that allows an operation to get, set, or clear locals declared in a
contiguous range.
Introspection class modeling a local variable and its liveness info in a bytecode interpreter.
Property location.
Marker interface for location identities.
Concurrent lock-free pool data structure.
Thread-safe and lock-free prefix-tree implementation in which keys are sequences of 64-bit
values, and the values are 64-bit values.
Policy for allocating objects of the lock-free prefix tree.
Allocator that allocates objects directly on the managed heap.
Allocator that internally maintains several pools of preallocated objects, and allocates
objects from those pools.
Low-level handler for log messages of native images.
Deprecated.
Specialized value profile to capture certain properties of
long
runtime values.
LoopConditionProfiles are designed to profile the outcome of loop conditions.
A loop node calls
repeating nodes
as long as
it returns true
.Cursor to iterate over a mutable map.
Represents a materialized frame containing values of local variables of the guest language.
Operation parameter that allows an operation to get, set, and clear the value of a local from a
materialized frame of the current root node or an outer root node.
This class contains mathematical methods that are not already provided by
Math
that are generally useful for language implementations.Represents a description of library message.
An endpoint representing one side of
message transport
.Allows to take over transport of message communication initiated by an instrument.
Thrown when a transport connection is vetoed.
This exception is thrown when a JNI query tries to access an element that was not
registered
for JNI access in the program.
This exception is thrown when a reflective query (such as
Class.getMethod(String, Class[])
) tries to access an element that was not registered
for reflection in the program.Represents a mutable variant of a
TruffleString
.Node to get the given
AbstractTruffleString
as a managed
MutableTruffleString
, meaning that the resulting string's backing memory is not a
native pointer.Node to get a
AbstractTruffleString
as a MutableTruffleString
.Node to create a new
MutableTruffleString
by concatenating two strings.Node to forcibly assign any encoding to a string.
Node to create a new
MutableTruffleString
from a byte array.Node to create a new
MutableTruffleString
from an interop object representing a
native pointer.MutableTruffleString.SubstringNode
, but with byte indices.Node to create a new mutable substring of a string.
Node to get a given string in a specific encoding.
Node to write a byte into a mutable string.
An allocation function for native buffers.
Add a filter for source sections that are nearest to the given source position, according to the
guest language control flow.
Builder to configure
NearestSectionFilter
before creating its instance.Useful to annotate methods, fields or parameters bound by any DSL expression to indicate that it
never returns a
null
or default primitive value.Abstract base class for all nodes in the Truffle Abstract Syntax Tree (AST).
Marks fields that represent child nodes of this node.
Marks array fields that are children of this node.
Information about a
Node
class.Declarative base class for node fields that are to be cloned together with the containing node.
Deprecated.
in 24.1 without replacement
Enables the dynamic creation of generated nodes.
A
NodeFields
element defines a field for the generated Node
.Annotation for providing additional information on nodes.
Common base interface for all Truffle nodes.
Node Library provides access to guest language information associated with a particular
Node
location.Utility class that manages the special access methods for node instances.
Visitor for trees of nodes.
Methods annotated with
NonIdempotent
must be methods that may cause side effects but may
not always cause the same side effects for repeated invocations with the same parameters.The opaque representation of a handle to a Java object given out to unmanaged code.
Manages a set of
ObjectHandles
.Deprecated.
no replacement; dynamic type no longer needs to inherit from
ObjectType
.Declares an operation.
Defines an operation using an existing
Node
.Designates a
Node
class as eligible for proxying.Repeat annotation for
OperationProxy
.Describes the attributes of an option whose
value
is in a static field
annotated by this annotation.Must be applied on classes containing
option
fields to specify a name prefix
if the prefix cannot be inferred by language or instrument.Categorizes options according to user relevance.
Represents metadata for a single option.
An interface to a set of
OptionDescriptor
s.Represents the option key for an option specification.
Represents a mapping between
String
keys and values.Categorizes options according to their stability.
Represents a type of an option that allows to convert string values to Java values.
Represents a set of option values based on an
OptionDescriptor
.Utility class representing a pair of values.
Holder for a pinned object, such that the object doesn't move until the pin is removed.
Root of the interface hierarchy for architectures, OS, and supported combinations of them.
Supported architecture: ARMv8 64-bit.
Supported architecture: x86 64-bit.
Supported operating system: Android.
Supported leaf platform: Android on AArch64 64-bit.
Basis for all Apple operating systems (MacOS and iOS).
Basis for all Apple operating systems on AMD64 (MACOS_AMD64 & IOS_AMD64).
Basis for all Apple operating systems on AMD64 (MACOS_AMD64 & IOS_AMD64).
Marker for elements (types, methods, or fields) that are only visible during native image
generation and cannot be used at run time, regardless of the actual platform.
Supported operating system: iOS.
Supported leaf platform: iOS on AArch 64-bit.
Supported leaf platform: iOS on x86 64-bit.
Supported operating system: Linux.
Supported leaf platform: Linux on AArch64 64-bit.
Basis for all Linux operating systems on AARCH64 (LINUX_AARCH64 & ANDROID_AARCH64).
Supported leaf platform: Linux on x86 64-bit.
Basis for all Linux operating systems on AMD64 (LINUX_AMD64).
Supported leaf platform: Linux on RISC-V 64-bit.
Supported operating system: MacOS.
Supported leaf platform: MacOS on AArch 64-bit.
Supported leaf platform: MacOS on x86 64-bit.
Supported architecture: RISC-V 64-bit.
Supported operating system: Windows.
Supported leaf platform: Windows on AArch 64-bit.
Supported leaf platform: Windows on x86 64-bit.
Restricts the annotated element (type, method, or field) to the specified
Platform
groups.Lowest-level memory access of native C memory.
Marker interface for all
word types
that have the semantic of a pointer (but not
necessarily all the memory access methods defined in Pointer
).Represents an access policy for polyglot builtins in the guest languages.
A polyglot exception represents errors that contain Graal guest languages on the stack trace.
Represents a
ValueProfile
that speculates on the primitive equality or object identity of
values.
Represents an event sink for instrumentation events that is embedded in the AST using wrappers if
needed.
Service-provider for guest languages process builder.
Subprocess attributes passed to
start
method.Represents a source of subprocess input or a destination of subprocess output.
Utility class to get and set properties of the OS process at run time.
A profile is a Truffle utility class that uses the
Truffle compiler
directives
to guard for and/or forward runtime information to the compiler.Defines a prolog operation that executes before the body of a Root operation.
Property objects represent the mapping between property identifiers (keys) and storage locations.
A lightweight property getter that allows getting the value of a
DynamicObject
property without any lookup or cache dispatch.Specifies a set of tags that are provided by a
language
implementation.Proxy interfaces allow to mimic guest language objects, arrays, executables, primitives and
native objects in Graal languages.
Interface to be implemented to mimic guest language arrays.
Interface to be implemented to mimic guest language objects that represents dates.
Interface to be implemented to mimic guest language objects that represents durations.
Interface to be implemented to mimic guest language objects that are executable.
Interface to be implemented to mimic guest language hash maps.
Interface to be implemented to mimic guest language objects that represents timestamps.
Interface to be implemented to mimic guest language objects that are instantiable.
Interface to be implemented to mimic guest language iterables.
Interface to be implemented to mimic guest language iterators.
Interface to be implemented to mimic native pointers.
Interface to be implemented to mimic guest language objects that contain members.
Interface to be implemented to mimic guest language objects that represents times.
Interface to be implemented to mimic guest language objects that represents timezones.
Denotes a method as a field access of a
structured C memory
.Denotes a method as a field address computation of a
RawStructure
.Denotes a method as a field offset access of a
RawStructure
.Denotes a Java interface that is a pointer to a
RawStructure
.Denotes Java interface that represents C memory, but without a
C struct
definition.Supported API is available to replace this non-API annotation: Use
Feature.BeforeAnalysisAccess.registerFieldValueTransformer(java.lang.reflect.Field, org.graalvm.nativeimage.hosted.FieldValueTransformer)
.The reflection library allows to send to and proxy messages of receivers.
A pointer which is relocated when the native image is loaded at runtime.
A node that is repeatedly invoked as part of a Truffle loop control structure.
An observer that is notified whenever a child node is replaced.
Enables reporting of polymorphic specializations from this node or exported message to the
runtime.
Nodes (and their subclasses) or specializations annotated with this annotation will be
excluded from consideration when
reporting
polymorphic specializations
.Specializations annotated with this annotation are considered megamorphic.
Event triggered by a resource limit for a context.
Represents resource limits configuration that is used to configure contexts.
Represents the target of a call to a
RootNode
, i.e., to another tree of nodes.Represents the root node in a Truffle AST.
This class provides methods that can be called during native-image building to configure class
initialization behavior.
This class provides methods that can be called during native image generation to register
classes, methods, and fields for JNI access at run time.
Used for manipulating options at run time.
This class can be used to make creating dynamic proxy classes at run time valid.
This class provides methods that can be called during native image generation to register
classes, methods, and fields for reflection at run time.
This class can be used to register Java resources and ResourceBundles that should be accessible
at run time.
This class provides methods that can be called before and during analysis, to register classes
for serialization at image runtime.
This class provides methods that can be called during native image generation to define system
property setting for image runtime.
Thread-safe prefix-tree implementation in which keys are sequences of 64-bit values, and the
values are 64-bit values.
Utility class with helpers for serialization code.
A Shape is an immutable descriptor of the current object "shape" of a DynamicObject, i.e., object
layout, metadata (type, flags),
and a mapping of properties to storage locations.
Builder class to construct initial
Shape
instances.Builder class to construct derived
Shape
instances.Declares a short-circuiting operation.
Defines the behaviour of a
ShortCircuitOperation
.Repeat annotation for
ShortCircuitOperation
.Represents a signed word-sized value.
Contains static methods that provide access to the size of dereferenced SystemJava pointer
types (i.e.
An exception thrown to enter a slow path.
Representation of a source code unit and its contents that can be evaluated in a language.
Representation of a source code unit and its contents that can be evaluated in an execution
context
.Representation of a guest language source syntax element, that is used for debugging purposes.
A source filter represents an expression for a subset of guest language sources that are used in
an Truffle interpreter.
Introspection class modeling source section information for a range of bytecodes.
Introspection class modeling a tree of
SourceInformation
instances.Description of contiguous section of text within a
Source
of program code.; supports
multiple modes of access to the text and its location.Description of contiguous section of text within a
Source
of program code.; supports
multiple modes of access to the text and its location.A source section filter represents an expression for a subset of tagged source sections that are
used in an Truffle interpreter.
Represents a range between two indices within a
source section
filter
.Represents a predicate for source objects.
Defines a method of a node subclass to represent one specialization of an operation.
Represents a specialization statistics utiltiy that can be
entered
to collect
additional statistics about Truffle DSL nodes.Used on nodes to always enable specialization statistics.
Class to collect statistics information per node.
Contains static methods for memory allocation in the stack frame.
Set of standard tags usable by language agnostic tools.
Marks program locations that represent a call to other guest language functions, methods or
closures.
Marks program locations as to be considered expressions of the languages.
Marks program locations to be considered as reads of variables of the languages.
Marks program locations as bodies of a function, method or closure.
Marks program locations as root of a function, method or closure.
Marks program locations that represent a statement of a language.
Marks program locations to be considered as try blocks, that are followed by catch.
Marks program locations to be considered as writes of variables of the languages.
StaticProperty objects represent the mapping between property
identifiers and storage locations within static objects.
A StaticShape is an immutable descriptor of the layout of a static object and is a good entry
point to learn about the Static Object Model.
Builder class to construct
StaticShape
instances.Represents a debugger step configuration.
An exception thrown if an iterator is finished.
When used to annotate a method, it indicates that a method declaration is intended to be a
substitute for a method declaration in another class.
Use to suppress Truffle DSL warnings in whole packages using a package-info.java class.
Describes where, within a guest language source section, the suspend position is.
Access for
Debugger
clients to the state of a guest language execution thread that has
been suspended, for example by a Breakpoint
or stepping action.A filter to limit the suspension locations.
Base class for tags used in the Truffle instrumentation framework.
Annotation applied to
Tag
subclasses to specify the tag identifier.Logical tree representation of the
Tag
operations of a bytecode program.Class that implements tag tree
NodeLibrary
dispatch for tag tree items.A class annotated with this annotation denotes a class that modifies methods of fields of another
class, called the "original" class.
The default value for the
TargetClass.onlyWith()
attribute.Marker value for
TargetClass.classLoader()
that no custom classloader should be used.Marker value for
TargetClass.classNameProvider()
that no class name provider should be used.Specifies additional properties for an element also annotated with
Alias
, Delete
,
Substitute
, AnnotateOriginal
, or KeepOriginal
.Functionality related to execution in threads.
Interface that a callback handler needs to implement.
Provides methods that are available during the execution of a
Threading.RecurringCallback
.Represents an action that is executed at a
safepoint
location of the
guest language execution.Argument class for
ThreadLocalAction.perform(Access)
.Listener that allows to be notified when threads become active and deactivated.
Listener to be notified about changes of threads in guest language application.
An error handler for transcoding operations such as
TruffleString.SwitchEncodingNode
.Class for obtaining the Truffle runtime singleton object of this virtual machine.
A handle on a context of a set of Truffle languages.
An abstract representation of a file used by Truffle languages.
Represents a file's attribute.
A view over file's attributes values obtained by
getAttributes
.A detector for finding
file
's MIME type and encoding.The service provider interface (SPI) for Truffle instruments: clients of Truffle instrumentation
that may observe and inject behavior into interpreters written using the Truffle framework.
Context local factory for Truffle instruments.
Provider for creating context local and context thread local references.
Context local factory for Truffle instruments.
Access to instrumentation services as well as input, output, and error streams.
Annotation that registers an
instrument
implementations for
automatic discovery.Used to register a
TruffleInstrument
using a ServiceLoader
.A Truffle language implementation contains all the services a language should provide to make it
composable with other languages.
Context local factory for Truffle languages.
Provider for creating context local and context thread local references.
Defines the supported policy for reusing
languages
per context.Represents a reference to the current context.
Context thread local factory for Truffle languages.
Represents execution environment of the
TruffleLanguage
.Mode of exit operation.
Request for inline parsing.
Represents a reference to the current language instance.
Request for parsing.
The annotation to use to register your language to the
Polyglot
API
.Used to register a
TruffleLanguage
using a ServiceLoader
.Support for logging in Truffle languages and instruments.
Interface for any entity of a Truffle guest language implementations that can be shared across
other language implementations.
An
OptionDescriptors
enhanced to provide a sandbox policy for options.Class containing general Truffle options.
A builder used to create an external subprocess.
Interface representing a Truffle runtime object.
A service that provides access to a
TruffleRuntime
implementation.Truffle safepoints allow interrupting the guest language execution to execute thread-local
actions submitted by a language or tool.
Just like
TruffleSafepoint.Interruptible
but allows partial evaluation.Just like
TruffleSafepoint.InterruptibleFunction
but allows partial evaluation.An interrupter allows a foreign thread to interrupt the execution on a separate thread.
Function interface that represent interruptable Java methods.
Function interface that represent interruptable Java methods.
Represents a guest language stack trace.
Represents a guest stack trace element.
Represents a primitive String type, which can be reused across languages.
Node to get the given
AbstractTruffleString
as a managed TruffleString
,
meaning that the resulting string's backing memory is not a native pointer.Node to get the given
AbstractTruffleString
as a TruffleString
.Node to find the index of the first occurrence of any byte from a given array.
TruffleString.IndexOfCodePointNode
, but with byte indices.Node to find the byte index of the first occurrence of a codepoint present in a given
codepoint set.
TruffleString.IndexOfStringNode
, but with byte indices.Node to convert a given byte index to a codepoint index.
Node to get the number of bytes occupied by the codepoint starting at a given byte index.
Node to find the index of the first occurrence of any
char
from a given array.Node to read a codepoint at a given byte index.
Node to read a codepoint at a given codepoint index.
Node to convert a given codepoint index to a byte index.
Node to get the number of codepoints in a string.
A set of codepoints in a given encoding.
Provides information about a string's content.
Node to check if a string's code range is equal to the given
TruffleString.CodeRange
.Represents a string's compaction level, i.e.
Node to compare two strings byte-by-byte.
Node to compare two UTF-16 strings.
Node to compare two UTF-32 strings.
Node to concatenate two strings.
Node to copy a region of a string into a byte array.
Node to copy a region of a string into native memory.
Node to create a
TruffleStringIterator
.Node to create a
TruffleStringIterator
.The list of encodings supported by
TruffleString
.Node to check two strings for equality.
Error handling instructions for operations that return integer values, such as indices or
code points.
Node to forcibly assign any encoding to a string.
Node to create a new
TruffleString
from a byte array.Node to create a new UTF-16
TruffleString
from a char array.Node to create a new
TruffleString
from a single codepoint.Node to create a new UTF-32
TruffleString
from an int-array.Node to create a new
TruffleString
from a Java string.Node to create a new
TruffleString
from a long
value.Node to create a new
TruffleString
from an interop object representing a native
pointer.Node to get a string's "byte-based"
TruffleString.CodeRange
.Node to get a string's possibly imprecise
TruffleString.CodeRange
.Node to get a string's precise
TruffleString.CodeRange
.Node to get a string's internal byte array.
Node to get a
native
string's pointer object.Node to get a string's
TruffleString.CompactionLevel
.Node to get a string's hash code.
Node to find the index of the first occurrence of a given code point.
Node to find the index of the first occurrence of a given string.
Node to find the index of the first occurrence of any
int
from a given array.Node to check if a string is encoded correctly.
TruffleString.LastIndexOfCodePointNode
, but with byte indices.TruffleString.LastIndexOfStringNode
, but with byte indices.Node to find the codepoint index of the last occurrence of a given code point.
Node to find the index of the last occurrence of a given string.
Node to force materialization of any lazy internal data.
This exception may be thrown by
TruffleString.ParseIntNode
, TruffleString.ParseLongNode
or
TruffleString.ParseDoubleNode
to indicate that the given string cannot be parsed as an integer,
long or double value.Node to parse a given string as a double value.
Node to parse a given string as an int value.
Node to parse a given string as a long value.
Node to read a single byte from a string.
Node to read a single char from a UTF-16 string.
Node to check for a region match, byte-by-byte.
Node to check codepoint equality of two string regions.
Node to repeat a given string
N
times.TruffleString.SubstringNode
, but with byte indices.Node to create a substring of a given string.
Node to get a given string in a specific encoding.
Node to get a
String
representation of a TruffleString
.Node to replace all invalid bytes in a given string, such that the resulting string is
valid
.Extended parameter type for the operations
TruffleString.ByteIndexOfStringNode
,
TruffleString.LastByteIndexOfStringNode
and TruffleString.RegionEqualByteIndexNode
.Node to create a new
TruffleString.WithMask
from a string and a byte array.Node to create a new
TruffleString.WithMask
from a UTF-16 string and a char array.Node to create a new
TruffleString.WithMask
from a UTF-32 string and an int array.The
TruffleString
equivalent to StringBuilder
.Node to append a single byte to a string builder.
Node to append a single char to a string builder.
Node to append a codepoint to a string builder.
Node to append an integer to a string builder.
Node to append a substring of a given
String
to a string builder.Node to append a
long
value to a string builder.Node to append a given
TruffleString
to a string builder.Node to append a substring of a given
TruffleString
to a string builder.Node to materialize a string builder as a
TruffleString
.The UTF-16-specific variant of
TruffleStringBuilder
.The UTF-32-specific variant of
TruffleStringBuilder
.The UTF-8-specific variant of
TruffleStringBuilder
.An iterator object that allows iterating over a
TruffleString
's codepoints, without
having to re-calculate codepoint indices on every access.Returns the next codepoint in the string.
Returns the previous codepoint in the string.
A builder for threads that have access to the appropriate
TruffleContext
.Creates a new weak reference that is safe to be used in compiled code paths.
Overrides the standard way of casting a certain type in a
TypeSystem
.Overrides the standard way of checking for a certain type in a
TypeSystem
.Represents a generic type
T
.Type guards are the most common form of guards used in Truffle languages.
References a
TypeSystem
on a node.Marks a node unadoptable, this means that the parent pointer will never be written by the Truffle
framework.
An exception that should be thrown if the return value cannot be represented as a value of the
return type.
A
CField
also annotated with this annotation gets a unique LocationIdentity
assigned, i.e., reads and writes do not interfere with reads and writes to any other field and
are optimized without regarding other fields.An exception thrown if an object does not contain a member with such an identifier.
An exception thrown if an object does not contain a hash entry with such a key.
Contains static methods that allow allocate/free of unmanaged memory, i.e., memory that is not
under the control of the garbage collector.
Unmodifiable memory efficient map.
Unmodifiable memory efficient set data structure.
Cursor to iterate over a map without changing its contents.
Represents an unsigned word-sized value.
An exception thrown if a
TruffleObject
does not support a interop message.Thrown by the generated code of Truffle-DSL if no compatible Specialization could be found for
the provided values.
An exception thrown if a
TruffleObject
does not support the type of one or more
arguments.Represents a polyglot value that can be accessed using a set of language agnostic operations.
Enum like class representing the supported string encodings.
Specialized value profile to capture certain properties of
Object
runtime values.Annotation that indicates a parameter taking 0 or more values.
A version utility to canonicalize and compare GraalVM versions.
Represents a frame containing values of local variables of the guest language.
Used for doing VM runtime operations.
A
void*
pointer to an opaque C value of an unknown type, without any methods to read or
write.The root of the interface hierarchy for machine-word-sized values.
Provides factory method to create machine-word-sized values.
A untyped C pointer to any machine-word-sized value, e.g., a pointer to another pointer or a
pointer to a
UnsignedWord
or SignedWord
value.