Interface TruffleRuntime

  • All Known Implementing Classes:
    DefaultTruffleRuntime

    public interface TruffleRuntime
    Interface representing a Truffle runtime object. The runtime is responsible for creating call targets and performing optimizations for them.
    • Method Detail

      • getName

        java.lang.String getName()
        Name describing this runtime implementation for debugging purposes.
        Returns:
        the name as a String
      • createLoopNode

        LoopNode createLoopNode​(RepeatingNode body)
        Experimental API. May change without notice.
      • createAssumption

        Assumption createAssumption()
        Creates a new assumption object that can be checked and invalidated.
        Returns:
        the newly created assumption object
      • createAssumption

        Assumption createAssumption​(java.lang.String name)
        Creates a new assumption object with a given name that can be checked and invalidated.
        Parameters:
        name - the name for the new assumption
        Returns:
        the newly created assumption object
      • createVirtualFrame

        VirtualFrame createVirtualFrame​(java.lang.Object[] arguments,
                                        FrameDescriptor frameDescriptor)
        Creates a new virtual frame object that can be used to store values and is potentially optimizable by the runtime.
        Returns:
        the newly created virtual frame object
      • createMaterializedFrame

        MaterializedFrame createMaterializedFrame​(java.lang.Object[] arguments)
        Creates a new materialized frame object that can be used to store values.
        Returns:
        the newly created materialized frame object
      • createMaterializedFrame

        MaterializedFrame createMaterializedFrame​(java.lang.Object[] arguments,
                                                  FrameDescriptor frameDescriptor)
        Creates a new materialized frame object with the given frame descriptor that can be used to store values.
        Parameters:
        frameDescriptor - the frame descriptor describing this frame's values
        Returns:
        the newly created materialized frame object
      • createCompilerOptions

        CompilerOptions createCompilerOptions()
        Creates an object which allows you to test for support of and set options specific for this runtime.
        Returns:
        the newly created compiler options object
      • iterateFrames

        <T> T iterateFrames​(FrameInstanceVisitor<T> visitor)
        Accesses the current stack, i.e., the contents of the Frames and the associated CallTargets. Iteration starts at the caller frame, i.e., it does not include the current frame. Iteration continues as long as FrameInstanceVisitor.visitFrame(com.oracle.truffle.api.frame.FrameInstance), which is invoked for every FrameInstance, returns null. Any non-null result of the visitor indicates that frame iteration should stop.
        Parameters:
        visitor - the visitor that is called for every matching frame.
        Returns:
        the last result returned by the visitor (which is non-null to indicate that iteration should stop), or null if the whole stack was iterated.
      • getCurrentFrame

        FrameInstance getCurrentFrame()
        Accesses the current frame, i.e., the frame of the closest CallTarget. It is important to note that this FrameInstance supports only slow path access.
      • getCapability

        <T> T getCapability​(java.lang.Class<T> capability)
        Requests a capability from the runtime.
        Parameters:
        capability - the type of the interface representing the capability
        Returns:
        an implementation of the capability or null if the runtime does not offer it
      • notifyTransferToInterpreter

        void notifyTransferToInterpreter()
        Internal API method. Do not use.