Mercurial > hg > truffle
changeset 22259:1348cc2e084e
Truffle/Instrumentation: javadoc
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Breakpoint.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Breakpoint.java Mon Sep 28 12:34:51 2015 -0700 @@ -28,6 +28,7 @@ import javax.sound.midi.Instrument; +import com.oracle.truffle.api.instrument.Instrumenter; import com.oracle.truffle.api.instrument.Probe; import com.oracle.truffle.api.source.Source; @@ -117,8 +118,8 @@ } /** - * Enables or disables this breakpoint's AST instrumentation. The breakpoint is enabled by - * default. + * Enables or disables this breakpoint's AST {@linkplain Instrumenter instrumentation}. The + * breakpoint is enabled by default. * * @param enabled <code>true</code> to activate the instrumentation, <code>false</code> to * deactivate the instrumentation so that it has no effect.
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineToProbesMap.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineToProbesMap.java Mon Sep 28 12:34:51 2015 -0700 @@ -40,8 +40,8 @@ import com.oracle.truffle.api.source.SourceSection; /** - * An {@link InstrumentationTool} that builds a map of every {@link Probe} attached to some AST, - * indexed by {@link Source} and line number. + * An {@linkplain Instrumenter.Tool Instrumentation-based Tool} that builds a map of every + * {@link Probe} attached to some AST, indexed by {@link Source} and line number. */ final class LineToProbesMap extends Instrumenter.Tool<LineToProbesMap> {
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTProber.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTProber.java Mon Sep 28 12:34:51 2015 -0700 @@ -27,8 +27,8 @@ import com.oracle.truffle.api.nodes.RootNode; /** - * Enables instrumentation by attaching {@linkplain Probe Probes} to some nodes in a (newly created, - * not yet executed) {@link RootNode}. + * Enables {@linkplain Instrumenter Instrumentation} by attaching {@linkplain Probe Probes} to some + * nodes in a (newly created, not yet executed) {@link RootNode}. * * @see Instrumenter#probe(com.oracle.truffle.api.nodes.Node) */
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentRootFactory.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentRootFactory.java Mon Sep 28 12:34:51 2015 -0700 @@ -39,7 +39,8 @@ /** * Provider of {@linkplain AdvancedInstrumentRoot AST fragment} instances to be executed by the - * Instrumentation Framework at a {@linkplain Probe Probed} site in a guest-language AST. + * {@linkplain Instrumenter Instrumentation Framework} at a {@linkplain Probe Probed} site in a + * guest-language AST. * <p> * <strong>Notes:</strong> * <ul>
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/EventHandlerNode.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/EventHandlerNode.java Mon Sep 28 12:34:51 2015 -0700 @@ -29,7 +29,7 @@ /** * An Instrumentation-managed {@link Node} that synchronously propagates notification of AST - * Execution Events through the Instrumentation Framework. + * Execution Events through the {@linkplain Instrumenter Instrumentation Framework} . */ public abstract class EventHandlerNode extends Node implements InstrumentationNode {
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/InstrumentationNode.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/InstrumentationNode.java Mon Sep 28 12:34:51 2015 -0700 @@ -27,9 +27,10 @@ import com.oracle.truffle.api.nodes.Node; /** - * A marker interface for Truffle {@linkplain Node nodes} that internally implement the - * <em>Instrumentation Framework</em>. Such nodes should not be part of any Guest Language execution - * semantics, and should in general not be visible to ordinary Instrumentation clients. + * A marker interface for the Truffle {@linkplain Node Nodes} that internally implement the + * {@linkplain Instrumenter Instrumentation Framework} . Such nodes should not be part of any Guest + * Language execution semantics, and should in general not be visible to ordinary Instrumentation + * clients. */ public interface InstrumentationNode {
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeFailure.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeFailure.java Mon Sep 28 12:34:51 2015 -0700 @@ -46,7 +46,7 @@ WRAPPER_NODE("The node to be probed is a wrapper"), /** - * The node to be probed does not support instrumentation. + * The node to be probed does not support {@linkplain Instrumenter Instrumentation} . */ NOT_INSTRUMENTABLE("The node to be project is \"not instrumentable\""),
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeListener.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeListener.java Mon Sep 28 12:34:51 2015 -0700 @@ -28,7 +28,8 @@ import com.oracle.truffle.api.nodes.RootNode; /** - * An observer of events related to {@link Probe}s: creating and tagging. + * An observer of events related to {@link Probe}s: creation of new Probes and the addition of new + * {@linkplain SyntaxTag SyntaxTags} to existing Probes. */ public interface ProbeListener {
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeNode.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeNode.java Mon Sep 28 12:34:51 2015 -0700 @@ -36,7 +36,7 @@ /** * Implementation class & interface for enabling the attachment of {@linkplain Probe Probes} to - * Truffle ASTs. + * Truffle ASTs, part of the {@linkplain Instrumenter Instrumentation Framework}. * <p> * A {@link ProbeNode} is the head of a chain of nodes acting on behalf of * {@linkplain ProbeInstrument instruments}. It is attached to an AST as a child of a
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SimpleInstrumentListener.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SimpleInstrumentListener.java Mon Sep 28 12:34:51 2015 -0700 @@ -27,7 +27,8 @@ import com.oracle.truffle.api.source.SourceSection; /** - * A receiver of Truffle AST execution events that can act on behalf of an external client. + * A receiver of Truffle AST execution events (containing minimal information) that can act on + * behalf of an external client. * <p> * The {@link Probe} instance provides access to the {@link SourceSection} associated with the * event, as well as any {@link SyntaxTag}s that have been applied at that program's location. @@ -37,8 +38,8 @@ * execution state should use {@link StandardInstrumentListener}. * <p> * Clients are free, of course, to record additional information in the listener implementation that - * carries additional information about the context and reason for the particular {@link ProbeInstrument} - * that is to be created from the listener. + * carries additional information about the context and reason for the particular + * {@link ProbeInstrument} that is to be created from the listener. * <p> * Notification is fully synchronous, so overrides have performance implications. Non-trivial * methods should be coded with Truffle guidelines and cautions in mind.
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SyntaxTag.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SyntaxTag.java Mon Sep 28 12:34:51 2015 -0700 @@ -25,8 +25,9 @@ package com.oracle.truffle.api.instrument; /** - * Program element "tags", presumed to be singletons (best implemented as enums) that define - * user-visible behavior for debugging and other simple tools. These categories should correspond to + * Program element "tags" such as <code>"STATEMENT"</code>, presumed to be singletons (best + * implemented as enums) that define user-visible behavior for debugging and other + * {@linkplain Instrumenter Instrumentation-based} tools. These categories should correspond to * program structures, for example "statement" and "assignment", that are meaningful * ("human-sensible") to guest language programmers. * <p>
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Visualizer.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Visualizer.java Mon Sep 28 12:34:51 2015 -0700 @@ -29,9 +29,9 @@ import com.oracle.truffle.api.nodes.Node; /** - * Visualization services for the benefit of instrumentation-based tools, possibly specialized for - * each guest language and possibly specialized for relevant information from the underlying Truffle - * implementation. + * Visualization services for the benefit of {@linkplain Instrumenter Instrumentation-based} tools, + * possibly specialized for each guest language and possibly specialized for relevant information + * from the underlying Truffle implementation. * <p> * <strong>Disclaimer:</strong> experimental interface under development. */ @@ -61,7 +61,7 @@ /** * Converts a value in the guest language to a display string. If - * + * * @param trim if {@code > 0}, them limit size of String to either the value of trim or the * number of characters in the first line, whichever is lower. */
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/WrapperNode.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/WrapperNode.java Mon Sep 28 12:34:51 2015 -0700 @@ -27,8 +27,8 @@ import com.oracle.truffle.api.nodes.Node; /** - * A {@link Node} instance that must be inserted into a Truffle AST in order to enable - * {@linkplain ProbeInstrument instrumentation} at a particular Guest Language (GL) node. + * A specialized {@link Node} instance that must be inserted into a Truffle AST in order to enable + * {@linkplain Instrumenter instrumentation} at a particular Guest Language (GL) node. * <p> * The implementation must be GL-specific. A wrapper <em>decorates</em> a GL AST node (the wrapper's * <em>child</em>) by acting as a transparent <em>proxy</em> with respect to the GL's execution @@ -41,10 +41,10 @@ * at the wrapped AST node during program execution. * <p> * When a GL AST is cloned, the {@link WrapperNode}, its {@link EventHandlerNode} and any - * {@linkplain ProbeInstrument instrumentation} are also cloned; they are in effect part of the GL AST. - * An instance of {@link Probe} represents abstractly the instrumentation at a particular location - * in a GL AST; it tracks all the copies of the Wrapper and attached instrumentation, and acts as a - * single point of access for tools. + * {@linkplain ProbeInstrument instrumentation} are also cloned; they are in effect part of the GL + * AST. An instance of {@link Probe} represents abstractly the instrumentation at a particular + * location in a GL AST; it tracks all the copies of the Wrapper and attached instrumentation, and + * acts as a single point of access for tools. * <p> * Implementation guidelines: * <ol>
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/package-info.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/package-info.java Mon Sep 28 12:34:51 2015 -0700 @@ -24,7 +24,7 @@ */ /** - * <h4>The Truffle Instrumentation Framework</h4> + * <h4>Truffle {@linkplain com.oracle.truffle.api.instrument.Instrumenter Instrumentation}: access to execution events for Debuggers and other tools.</h4> * <p> * This framework permits client * {@linkplain com.oracle.truffle.api.instrument.Instrumenter.Tool tools}, @@ -157,7 +157,7 @@ * may optionally be attached for notification <em>before</em> every <em>AST execution event</em> where the specified * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag tag} is present.</li> * <li>One (but no more than one) - * {@linkplain com.oracle.truffle.api.instrument.StandardBeforeInstrumentListener StandardBeforeInstrumentListener} + * {@linkplain com.oracle.truffle.api.instrument.StandardAfterInstrumentListener StandardAfterInstrumentListener} * may optionally be attached for notification <em>after</em> every <em>AST execution event</em> where the specified * {@linkplain com.oracle.truffle.api.instrument.SyntaxTag tag} is present.</li> * <li>The
--- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java Mon Sep 28 12:34:51 2015 -0700 @@ -190,11 +190,12 @@ /* * * <p> <b>Tools:</b><br> The use of some of Truffle's support for developer tools (based on the - * Truffle Instrumentation Framework) are demonstrated in this file, for example: <ul> <li>a - * {@linkplain NodeExecCounter counter for node executions}, tabulated by node type; and</li> <li>a - * simple {@linkplain CoverageTracker code coverage engine}.</li> </ul> In each case, the tool is - * enabled if a corresponding local boolean variable in this file is set to {@code true}. Results - * are printed at the end of the execution using each tool's <em>default printer</em>. + * Truffle {@linkplain Instrumenter Instrumentation Framework}) are demonstrated in this file, for + * example: <ul> <li>a {@linkplain NodeExecCounter counter for node executions}, tabulated by node + * type; and</li> <li>a simple {@linkplain CoverageTracker code coverage engine}.</li> </ul> In each + * case, the tool is enabled if a corresponding local boolean variable in this file is set to {@code + * true}. Results are printed at the end of the execution using each tool's <em>default + * printer</em>. */ @TruffleLanguage.Registration(name = "SL", version = "0.5", mimeType = "application/x-sl") public final class SLLanguage extends TruffleLanguage<SLContext> {
--- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapperNode.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapperNode.java Mon Sep 28 12:34:51 2015 -0700 @@ -42,9 +42,10 @@ import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.instrument.EventHandlerNode; -import com.oracle.truffle.api.instrument.ProbeInstrument; +import com.oracle.truffle.api.instrument.Instrumenter; import com.oracle.truffle.api.instrument.KillException; import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeInstrument; import com.oracle.truffle.api.instrument.WrapperNode; import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.NodeCost; @@ -56,9 +57,9 @@ /** * A Truffle node that can be inserted into a Simple AST (assumed not to have executed yet) to - * enable "instrumentation" of an {@link SLExpressionNode}. Tools wishing to interact with AST - * execution may attach {@link ProbeInstrument}s to the {@link Probe} uniquely associated with the - * wrapper, and to which this wrapper routes execution events. + * enable {@linkplain Instrumenter Instrumentation} of an {@link SLExpressionNode}. Tools wishing to + * interact with AST execution may attach {@link ProbeInstrument}s to the {@link Probe} uniquely + * associated with the wrapper, and to which this wrapper routes execution events. */ @NodeInfo(cost = NodeCost.NONE) public final class SLExpressionWrapperNode extends SLExpressionNode implements WrapperNode {
--- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStandardASTProber.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStandardASTProber.java Mon Sep 28 12:34:51 2015 -0700 @@ -58,7 +58,7 @@ /** * A visitor which traverses a completely parsed Simple AST (presumed not yet executed) and enables - * instrumentation at a few standard kinds of nodes. + * {@linkplain Instrumenter Instrumentation} at a few standard kinds of nodes. */ public class SLStandardASTProber implements ASTProber {
--- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapperNode.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapperNode.java Mon Sep 28 12:34:51 2015 -0700 @@ -42,9 +42,10 @@ import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.instrument.EventHandlerNode; -import com.oracle.truffle.api.instrument.ProbeInstrument; +import com.oracle.truffle.api.instrument.Instrumenter; import com.oracle.truffle.api.instrument.KillException; import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeInstrument; import com.oracle.truffle.api.instrument.WrapperNode; import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.NodeCost; @@ -53,9 +54,9 @@ /** * A Truffle node that can be inserted into a Simple AST (assumed not to have executed yet) to - * enable "instrumentation" of a {@link SLStatementNode}. Tools wishing to interact with AST - * execution may attach {@link ProbeInstrument}s to the {@link Probe} uniquely associated with the - * wrapper, and to which this wrapper routes execution events. + * enable {@linkplain Instrumenter Instrumentation} of a {@link SLStatementNode}. Tools wishing to + * interact with AST execution may attach {@link ProbeInstrument}s to the {@link Probe} uniquely + * associated with the wrapper, and to which this wrapper routes execution events. */ @NodeInfo(cost = NodeCost.NONE) public final class SLStatementWrapperNode extends SLStatementNode implements WrapperNode {
--- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SLNodeFactory.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SLNodeFactory.java Mon Sep 28 12:34:51 2015 -0700 @@ -40,8 +40,15 @@ */ package com.oracle.truffle.sl.parser; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.oracle.truffle.api.frame.FrameDescriptor; import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.instrument.Instrumenter; import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.source.Source; import com.oracle.truffle.api.source.SourceSection; @@ -80,11 +87,6 @@ import com.oracle.truffle.sl.nodes.local.SLWriteLocalVariableNode; import com.oracle.truffle.sl.nodes.local.SLWriteLocalVariableNodeGen; import com.oracle.truffle.sl.runtime.SLContext; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; /** * Helper class used by the SL {@link Parser} to create nodes. The code is factored out of the @@ -345,7 +347,8 @@ /** * Returns a {@link SLReadLocalVariableNode} if this read is a local variable or a * {@link SLFunctionLiteralNode} if this read is global. In Simple, the only global names are - * functions. </br> There is currently no instrumentation for this node. + * functions. </br> There is currently no instrumentation{@linkplain Instrumenter + * Instrumentation} for this node. * * @param nameToken The name of the variable/function being read * @return either:
--- a/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/CoverageTracker.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/CoverageTracker.java Mon Sep 28 12:34:51 2015 -0700 @@ -33,9 +33,9 @@ import java.util.Map.Entry; import java.util.TreeSet; -import com.oracle.truffle.api.instrument.ProbeInstrument; import com.oracle.truffle.api.instrument.Instrumenter; import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeInstrument; import com.oracle.truffle.api.instrument.ProbeListener; import com.oracle.truffle.api.instrument.SimpleInstrumentListener; import com.oracle.truffle.api.instrument.StandardSyntaxTag; @@ -48,15 +48,16 @@ import com.oracle.truffle.api.source.SourceSection; /** - * An {@link InstrumentationTool} that counts interpreter <em>execution calls</em> to AST nodes that - * hold a specified {@linkplain SyntaxTag syntax tag}, tabulated by source and line number - * associated with each node. Syntax tags are presumed to be applied external to the tool. If no tag - * is specified, {@linkplain StandardSyntaxTag#STATEMENT STATEMENT} is used, corresponding to - * conventional behavior for code coverage tools. + * An {@linkplain Instrumenter.Tool Instrumentation Tool} that counts interpreter + * <em>execution calls</em> to AST nodes that hold a specified {@linkplain SyntaxTag syntax tag}, + * tabulated by source and line number associated with each node. Syntax tags are presumed to be + * applied external to the tool. If no tag is specified, {@linkplain StandardSyntaxTag#STATEMENT + * STATEMENT} is used, corresponding to conventional behavior for code coverage tools. * <p> * <b>Tool Life Cycle</b> * <p> - * See {@link InstrumentationTool} for the life cycle common to all such tools. + * See {@linkplain Instrumenter.Tool Instrumentation Tool} for the life cycle common to all such + * tools. * <p> * <b>Execution Counts</b> * <p>
--- a/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/LineToProbesMap.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/LineToProbesMap.java Mon Sep 28 12:34:51 2015 -0700 @@ -40,8 +40,8 @@ import com.oracle.truffle.api.source.SourceSection; /** - * An {@link InstrumentationTool} that builds a map of every {@link Probe} attached to some AST, - * indexed by {@link Source} and line number. + * An {@linkplain Instrumenter.Tool Instrumentation Tool} that builds a map of every {@link Probe} + * attached to some AST, indexed by {@link Source} and line number. */ public final class LineToProbesMap extends Instrumenter.Tool<LineToProbesMap> {
--- a/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/NodeExecCounter.java Mon Sep 28 11:27:48 2015 -0700 +++ b/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/NodeExecCounter.java Mon Sep 28 12:34:51 2015 -0700 @@ -37,11 +37,11 @@ import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.instrument.ASTProber; -import com.oracle.truffle.api.instrument.ProbeInstrument; import com.oracle.truffle.api.instrument.Instrumenter; import com.oracle.truffle.api.instrument.Probe; import com.oracle.truffle.api.instrument.ProbeException; import com.oracle.truffle.api.instrument.ProbeFailure; +import com.oracle.truffle.api.instrument.ProbeInstrument; import com.oracle.truffle.api.instrument.ProbeListener; import com.oracle.truffle.api.instrument.StandardInstrumentListener; import com.oracle.truffle.api.instrument.SyntaxTag; @@ -53,14 +53,15 @@ import com.oracle.truffle.api.nodes.RootNode; /** - * An {@link InstrumentationTool} that counts interpreter <em>execution calls</em> to AST nodes, - * tabulated by the type of called nodes; counting can be enabled <em>all</em> nodes or restricted - * to nodes with a specified {@linkplain SyntaxTag tag} that is presumed to be applied external to - * the tool. + * An {@linkplain Instrumenter.Tool Instrumentation Tool} that counts interpreter + * <em>execution calls</em> to AST nodes, tabulated by the type of called nodes; counting can be + * enabled <em>all</em> nodes or restricted to nodes with a specified {@linkplain SyntaxTag tag} + * that is presumed to be applied external to the tool. * <p> - * <b>Tool Life Cycle</b> + * s <b>Tool Life Cycle</b> * <p> - * See {@link InstrumentationTool} for the life cycle common to all such tools. + * See {@linkplain Instrumenter.Tool Instrumentation Tool} for the life cycle common to all such + * tools. * </p> * <b>Execution Counts</b> * <p>