# HG changeset patch # User Michael Van De Vanter # Date 1442942081 25200 # Node ID c4e7737981d3b8163098bebfa0e7a6e20f434737 # Parent df222c4e9bd975b60288250d4dea62f2a45ccdb3 Truffle/Instrumentation: make the Instrumenter available to language implementations via Env.getInstrumenter() diff -r df222c4e9bd9 -r c4e7737981d3 truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java --- 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 diff -r df222c4e9bd9 -r c4e7737981d3 truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleLanguage.java --- 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; } diff -r df222c4e9bd9 -r c4e7737981d3 truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/Accessor.java --- 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 {