comparison truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/Accessor.java @ 22386:086776aa7548

Caching Source -> CallTarget mapping per PolyglotEngine.Language
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Thu, 19 Nov 2015 09:40:21 +0100
parents 299c279c87b3
children 5692953272eb
comparison
equal deleted inserted replaced
22385:0e86a9f324bf 22386:086776aa7548
47 import com.oracle.truffle.api.instrument.Visualizer; 47 import com.oracle.truffle.api.instrument.Visualizer;
48 import com.oracle.truffle.api.instrument.WrapperNode; 48 import com.oracle.truffle.api.instrument.WrapperNode;
49 import com.oracle.truffle.api.nodes.Node; 49 import com.oracle.truffle.api.nodes.Node;
50 import com.oracle.truffle.api.nodes.RootNode; 50 import com.oracle.truffle.api.nodes.RootNode;
51 import com.oracle.truffle.api.source.Source; 51 import com.oracle.truffle.api.source.Source;
52 import java.util.Map;
52 53
53 /** 54 /**
54 * Communication between PolyglotEngine, TruffleLanguage API/SPI, and other services. 55 * Communication between PolyglotEngine, TruffleLanguage API/SPI, and other services.
55 */ 56 */
56 public abstract class Accessor { 57 public abstract class Accessor {
151 152
152 protected Env attachEnv(Object vm, TruffleLanguage<?> language, OutputStream stdOut, OutputStream stdErr, InputStream stdIn, Instrumenter instrumenter) { 153 protected Env attachEnv(Object vm, TruffleLanguage<?> language, OutputStream stdOut, OutputStream stdErr, InputStream stdIn, Instrumenter instrumenter) {
153 return API.attachEnv(vm, language, stdOut, stdErr, stdIn, instrumenter); 154 return API.attachEnv(vm, language, stdOut, stdErr, stdIn, instrumenter);
154 } 155 }
155 156
156 protected Object eval(TruffleLanguage<?> l, Source s) throws IOException { 157 protected Object eval(TruffleLanguage<?> l, Source s, Map<Source, CallTarget> cache) throws IOException {
157 return API.eval(l, s); 158 return API.eval(l, s, cache);
158 } 159 }
159 160
160 protected Object evalInContext(Object vm, SuspendedEvent ev, String code, FrameInstance frame) throws IOException { 161 protected Object evalInContext(Object vm, SuspendedEvent ev, String code, FrameInstance frame) throws IOException {
161 return API.evalInContext(vm, ev, code, frame); 162 return API.evalInContext(vm, ev, code, frame);
162 } 163 }