comparison graal/com.oracle.truffle.api/src/com/oracle/truffle/api/ExecutionContext.java @ 15279:0c6d8a08e31b

Truffle: Major cleanup and extension of the Truffle Instrumentation framework in com.oracle.truffle.api
author Michael Van De Vanter <michael.van.de.vanter@oracle.com>
date Sun, 20 Apr 2014 20:37:27 -0700
parents 3f27e57439ed
children be0c151d912b
comparison
equal deleted inserted replaced
14862:0e713dba33bb 15279:0c6d8a08e31b
22 * or visit www.oracle.com if you need additional information or have any 22 * or visit www.oracle.com if you need additional information or have any
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.debug.*; 27 import com.oracle.truffle.api.instrument.*;
28 import com.oracle.truffle.api.source.*; 28 import com.oracle.truffle.api.source.*;
29 29
30 /** 30 /**
31 * Information about the runtime context of a Truffle program. 31 * Access to information and basic services in the runtime context for a Truffle-implemented guest
32 * language.
32 * <p> 33 * <p>
33 * <strong>Disclaimer:</strong> this interface is under development and will change. 34 * <strong>Disclaimer:</strong> this interface is under development and will change.
34 */ 35 */
35 public interface ExecutionContext { 36 public interface ExecutionContext {
36 37
44 * Gets access to source management services. 45 * Gets access to source management services.
45 */ 46 */
46 SourceManager getSourceManager(); 47 SourceManager getSourceManager();
47 48
48 /** 49 /**
49 * Gets access to debugging services. Returns an inert instance if no services installed. 50 * Gets access to AST instrumentation services.
50 */ 51 */
51 DebugContext getDebugContext(); 52 Instrumentation instrumentation();
52 53
54 /**
55 * Access to information visualization services for the specific language.
56 */
57 Visualizer visualizer();
58
59 /**
60 * Add instrumentation to subsequently constructed Truffle ASTs for the guest language; every
61 * one added will have the opportunity to add instrumentation.
62 *
63 * @throws IllegalArgumentException if prober not usable for the guest language.
64 */
65 void addNodeProber(ASTNodeProber nodeProber);
53 } 66 }