Mercurial > hg > truffle
changeset 22237:c4e7737981d3
Truffle/Instrumentation: make the Instrumenter available to language implementations via Env.getInstrumenter()
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Tue, 22 Sep 2015 10:14:41 -0700 |
parents | df222c4e9bd9 |
children | cccb1ac700bd |
files | truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleLanguage.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/Accessor.java |
diffstat | 3 files changed, 14 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java Mon Sep 21 21:23:09 2015 -0700 +++ b/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java Tue Sep 22 10:14:41 2015 -0700 @@ -813,7 +813,7 @@ TruffleLanguage.Env getEnv(boolean create) { if (env == null && create) { - env = SPI.attachEnv(TruffleVM.this, info.getImpl(true), out, err, in); + env = SPI.attachEnv(TruffleVM.this, info.getImpl(true), out, err, in, TruffleVM.this.instrumenter); } return env; } @@ -889,9 +889,9 @@ } @Override - protected Env attachEnv(Object obj, TruffleLanguage<?> language, OutputStream stdOut, OutputStream stdErr, InputStream stdIn) { + protected Env attachEnv(Object obj, TruffleLanguage<?> language, OutputStream stdOut, OutputStream stdErr, InputStream stdIn, Instrumenter instrumenter) { TruffleVM vm = (TruffleVM) obj; - return super.attachEnv(vm, language, stdOut, stdErr, stdIn); + return super.attachEnv(vm, language, stdOut, stdErr, stdIn, instrumenter); } @Override
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleLanguage.java Mon Sep 21 21:23:09 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleLanguage.java Tue Sep 22 10:14:41 2015 -0700 @@ -332,13 +332,15 @@ private final InputStream in; private final OutputStream err; private final OutputStream out; + private final Instrumenter instrumenter; - Env(Object vm, TruffleLanguage<?> lang, OutputStream out, OutputStream err, InputStream in) { + Env(Object vm, TruffleLanguage<?> lang, OutputStream out, OutputStream err, InputStream in, Instrumenter instrumenter) { this.vm = vm; this.in = in; this.err = err; this.out = out; this.lang = lang; + this.instrumenter = instrumenter; this.langCtx = new LangCtx<>(lang, this); } @@ -399,6 +401,10 @@ public Writer stdErr() { return new OutputStreamWriter(err); } + + public Instrumenter instrumenter() { + return instrumenter; + } } private static final AccessAPI API = new AccessAPI(); @@ -406,8 +412,8 @@ @SuppressWarnings("rawtypes") private static final class AccessAPI extends Accessor { @Override - protected Env attachEnv(Object vm, TruffleLanguage<?> language, OutputStream stdOut, OutputStream stdErr, InputStream stdIn) { - Env env = new Env(vm, language, stdOut, stdErr, stdIn); + protected Env attachEnv(Object vm, TruffleLanguage<?> language, OutputStream stdOut, OutputStream stdErr, InputStream stdIn, Instrumenter instrumenter) { + Env env = new Env(vm, language, stdOut, stdErr, stdIn, instrumenter); return env; }
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/Accessor.java Mon Sep 21 21:23:09 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/Accessor.java Tue Sep 22 10:14:41 2015 -0700 @@ -185,8 +185,8 @@ } } - protected Env attachEnv(Object vm, TruffleLanguage<?> language, OutputStream stdOut, OutputStream stdErr, InputStream stdIn) { - return API.attachEnv(vm, language, stdOut, stdErr, stdIn); + protected Env attachEnv(Object vm, TruffleLanguage<?> language, OutputStream stdOut, OutputStream stdErr, InputStream stdIn, Instrumenter instrumenter) { + return API.attachEnv(vm, language, stdOut, stdErr, stdIn, instrumenter); } protected Object eval(TruffleLanguage<?> l, Source s) throws IOException {