changeset 22259:1348cc2e084e

Truffle/Instrumentation: javadoc
author Michael Van De Vanter <michael.van.de.vanter@oracle.com>
date Mon, 28 Sep 2015 12:34:51 -0700
parents ff9d1426d744
children 3986598b6aa0
files truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Breakpoint.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineToProbesMap.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTProber.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentRootFactory.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/EventHandlerNode.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/InstrumentationNode.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeFailure.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeListener.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeNode.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SimpleInstrumentListener.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SyntaxTag.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Visualizer.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/WrapperNode.java truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/package-info.java truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapperNode.java truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStandardASTProber.java truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapperNode.java truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SLNodeFactory.java truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/CoverageTracker.java truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/LineToProbesMap.java truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/NodeExecCounter.java
diffstat 22 files changed, 81 insertions(+), 67 deletions(-) [+]
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>