comparison graal/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleRuntime.java @ 15064:f675818d9ad0

new getStackTrace and getCurrentFrame functionality in TruffleRuntime
author Lukas Stadler <lukas.stadler@oracle.com>
date Fri, 11 Apr 2014 11:53:11 +0200
parents 64dcb92ee75a
children 607e33885130
comparison
equal deleted inserted replaced
15063:36e1a11a72b3 15064:f675818d9ad0
23 * questions. 23 * questions.
24 */ 24 */
25 package com.oracle.truffle.api; 25 package com.oracle.truffle.api;
26 26
27 import com.oracle.truffle.api.frame.*; 27 import com.oracle.truffle.api.frame.*;
28 import com.oracle.truffle.api.impl.*;
28 import com.oracle.truffle.api.nodes.*; 29 import com.oracle.truffle.api.nodes.*;
29 30
30 /** 31 /**
31 * Interface representing a Truffle runtime object. The runtime is responsible for creating call 32 * Interface representing a Truffle runtime object. The runtime is responsible for creating call
32 * targets and performing optimizations for them. 33 * targets and performing optimizations for them.
88 * 89 *
89 * @param frameDescriptor the frame descriptor describing this frame's values 90 * @param frameDescriptor the frame descriptor describing this frame's values
90 * @return the newly created materialized frame object 91 * @return the newly created materialized frame object
91 */ 92 */
92 MaterializedFrame createMaterializedFrame(Object[] arguments, FrameDescriptor frameDescriptor); 93 MaterializedFrame createMaterializedFrame(Object[] arguments, FrameDescriptor frameDescriptor);
94
95 /**
96 * Accesses the current stack, i.e., the contents of the {@link Frame}s and the associated
97 * {@link CallTarget}s. For this functionality to work each call needs to go through
98 * {@link DefaultCallNode#callProxy(MaterializedFrameNotify, CallTarget, VirtualFrame, Object[])}
99 * instead of calling {@link CallTarget#call(Object[])} directly.
100 *
101 * @return a lazy collection of {@link FrameInstance}.
102 */
103 Iterable<FrameInstance> getStackTrace();
104
105 /**
106 * Accesses the current frame, i.e., the frame of the closest {@link CallTarget}. It is
107 * important to note that this {@link FrameInstance} supports only slow path access.
108 */
109 FrameInstance getCurrentFrame();
93 } 110 }