[Swift-commit] r8268 - www/Swift-T

wozniak at ci.uchicago.edu wozniak at ci.uchicago.edu
Thu Oct 9 13:02:24 CDT 2014


Author: wozniak
Date: 2014-10-09 13:02:24 -0500 (Thu, 09 Oct 2014)
New Revision: 8268

Modified:
   www/Swift-T/guide.html
Log:
Note about argv() defaults


Modified: www/Swift-T/guide.html
===================================================================
--- www/Swift-T/guide.html	2014-10-09 15:18:28 UTC (rev 8267)
+++ www/Swift-T/guide.html	2014-10-09 18:02:24 UTC (rev 8268)
@@ -3,29 +3,26 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.6.3" />
+<meta name="generator" content="AsciiDoc 8.6.9" />
 <title>Swift/T Guide</title>
 <style type="text/css">
-/* Sans-serif font. */
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+  font-family: Georgia,serif;
+}
+
+/* Title font. */
 h1, h2, h3, h4, h5, h6,
 div.title, caption.title,
 thead, p.table.header,
-div#toctitle,
-span#author, span#revnumber, span#revdate, span#revremark,
-div#footer {
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
   font-family: Arial,Helvetica,sans-serif;
 }
 
-/* Serif font. */
-div.sectionbody {
-  font-family: Georgia,"Times New Roman",Times,serif;
-}
-
-/* Monospace font. */
-tt {
-  font-size: inherit;
-}
-
 body {
   margin: 1em 5% 1em 5%;
 }
@@ -48,11 +45,6 @@
   color: #083194;
 }
 
-tt {
-  font-size: inherit;
-  color: navy;
-}
-
 h1, h2, h3, h4, h5, h6 {
   color: #527bbd;
   margin-top: 1.2em;
@@ -72,6 +64,9 @@
 h3 + * {
   clear: left;
 }
+h5 {
+  font-size: 1.0em;
+}
 
 div.sectionbody {
   margin-left: 0;
@@ -92,41 +87,47 @@
 ul > li     { color: #aaa; }
 ul > li > * { color: black; }
 
-pre {
+.monospaced, code, pre {
+  font-family: "Courier New", Courier, monospace;
+  font-size: inherit;
+  color: navy;
   padding: 0;
   margin: 0;
 }
+pre {
+  white-space: pre-wrap;
+}
 
-span#author {
+#author {
   color: #527bbd;
   font-weight: bold;
   font-size: 1.1em;
 }
-span#email {
+#email {
 }
-span#revnumber, span#revdate, span#revremark {
+#revnumber, #revdate, #revremark {
 }
 
-div#footer {
+#footer {
   font-size: small;
   border-top: 2px solid silver;
   padding-top: 0.5em;
   margin-top: 4.0em;
 }
-div#footer-text {
+#footer-text {
   float: left;
   padding-bottom: 0.5em;
 }
-div#footer-badges {
+#footer-badges {
   float: right;
   padding-bottom: 0.5em;
 }
 
-div#preamble {
+#preamble {
   margin-top: 1.5em;
   margin-bottom: 1.5em;
 }
-div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
+div.imageblock, div.exampleblock, div.verseblock,
 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
 div.admonitionblock {
   margin-top: 1.0em;
@@ -184,7 +185,7 @@
   margin-left: 1.0em;
   margin-right: 10%;
   border-left: 5px solid #f0f0f0;
-  color: #777777;
+  color: #888;
 }
 
 div.quoteblock > div.attribution {
@@ -224,7 +225,7 @@
 }
 
 div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; }
+span.image img { border-style: none; vertical-align: text-bottom; }
 a.image:visited { color: white; }
 
 dl {
@@ -267,36 +268,13 @@
   margin-bottom: 0.1em;
 }
 
-div.tableblock > table {
-  border: 3px solid #527bbd;
-}
-thead, p.table.header {
-  font-weight: bold;
-  color: #527bbd;
-}
 tfoot {
   font-weight: bold;
 }
 td > div.verse {
   white-space: pre;
 }
-p.table {
-  margin-top: 0;
-}
-/* Because the table frame attribute is overriden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
-  border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
-  border-left-style: none;
-  border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
-  border-top-style: none;
-  border-bottom-style: none;
-}
 
-
 div.hdlist {
   margin-top: 0.8em;
   margin-bottom: 0.8em;
@@ -362,14 +340,14 @@
 }
 
 @media print {
-  div#footer-badges { display: none; }
+  #footer-badges { display: none; }
 }
 
-div#toc {
+#toc {
   margin-bottom: 2.5em;
 }
 
-div#toctitle {
+#toctitle {
   color: #527bbd;
   font-size: 1.1em;
   font-weight: bold;
@@ -377,7 +355,7 @@
   margin-bottom: 0.1em;
 }
 
-div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
   margin-top: 0;
   margin-bottom: 0;
 }
@@ -394,7 +372,170 @@
   font-size: 0.9em;
 }
 
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
 
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+  margin-top: 1.0em;
+  margin-bottom: 1.5em;
+}
+div.tableblock > table {
+  border: 3px solid #527bbd;
+}
+thead, p.table.header {
+  font-weight: bold;
+  color: #527bbd;
+}
+p.table {
+  margin-top: 0;
+}
+/* Because the table frame attribute is overriden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+  border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+  border-left-style: none;
+  border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+  border-top-style: none;
+  border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+  margin-top: 1.0em;
+  margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+  font-weight: bold;
+  color: #527bbd;
+}
+p.tableblock {
+  margin-top: 0;
+}
+table.tableblock {
+  border-width: 3px;
+  border-spacing: 0px;
+  border-style: solid;
+  border-color: #527bbd;
+  border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+  border-width: 1px;
+  padding: 4px;
+  border-style: solid;
+  border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+  border-left-style: hidden;
+  border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+  border-top-style: hidden;
+  border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+  border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+  text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+  text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+  text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+  vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+  vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+  vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+  padding-top: 0.5em;
+  padding-bottom: 0.5em;
+  border-top: 2px solid silver;
+  border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+  border-style: none;
+}
+body.manpage div.sectionbody {
+  margin-left: 3em;
+}
+
+ at media print {
+  body.manpage div#toc { display: none; }
+}
+
+
+
 /* SWIFT/T GUIDE CUSTOMIZATIONS */
 
 a:visited {
@@ -407,7 +548,6 @@
 </style>
 <script type="text/javascript">
 /*<![CDATA[*/
-window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}
 var asciidoc = {  // Namespace.
 
 /////////////////////////////////////////////////////////////////////
@@ -449,7 +589,7 @@
 
   function tocEntries(el, toclevels) {
     var result = new Array;
-    var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
+    var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
     // Function that scans the DOM tree for header elements (the DOM2
     // nodeIterator API would be a better technique but not supported by all
     // browsers).
@@ -469,6 +609,25 @@
   }
 
   var toc = document.getElementById("toc");
+  if (!toc) {
+    return;
+  }
+
+  // Delete existing TOC entries in case we're reloading the TOC.
+  var tocEntriesToRemove = [];
+  var i;
+  for (i = 0; i < toc.childNodes.length; i++) {
+    var entry = toc.childNodes[i];
+    if (entry.nodeName.toLowerCase() == 'div'
+     && entry.getAttribute("class")
+     && entry.getAttribute("class").match(/^toclevel/))
+      tocEntriesToRemove.push(entry);
+  }
+  for (i = 0; i < tocEntriesToRemove.length; i++) {
+    toc.removeChild(tocEntriesToRemove[i]);
+  }
+
+  // Rebuild TOC entries.
   var entries = tocEntries(document.getElementById("content"), toclevels);
   for (var i = 0; i < entries.length; ++i) {
     var entry = entries[i];
@@ -496,24 +655,44 @@
  */
 
 footnotes: function () {
+  // Delete existing footnote entries in case we're reloading the footnodes.
+  var i;
+  var noteholder = document.getElementById("footnotes");
+  if (!noteholder) {
+    return;
+  }
+  var entriesToRemove = [];
+  for (i = 0; i < noteholder.childNodes.length; i++) {
+    var entry = noteholder.childNodes[i];
+    if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+      entriesToRemove.push(entry);
+  }
+  for (i = 0; i < entriesToRemove.length; i++) {
+    noteholder.removeChild(entriesToRemove[i]);
+  }
+
+  // Rebuild footnote entries.
   var cont = document.getElementById("content");
-  var noteholder = document.getElementById("footnotes");
   var spans = cont.getElementsByTagName("span");
   var refs = {};
   var n = 0;
   for (i=0; i<spans.length; i++) {
     if (spans[i].className == "footnote") {
       n++;
-      // Use [\s\S] in place of . so multi-line matches work.
-      // Because JavaScript has no s (dotall) regex flag.
-      note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+      var note = spans[i].getAttribute("data-note");
+      if (!note) {
+        // Use [\s\S] in place of . so multi-line matches work.
+        // Because JavaScript has no s (dotall) regex flag.
+        note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+        spans[i].innerHTML =
+          "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+          "' title='View footnote' class='footnote'>" + n + "</a>]";
+        spans[i].setAttribute("data-note", note);
+      }
       noteholder.innerHTML +=
         "<div class='footnote' id='_footnote_" + n + "'>" +
         "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
         n + "</a>. " + note + "</div>";
-      spans[i].innerHTML =
-        "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
-        "' title='View footnote' class='footnote'>" + n + "</a>]";
       var id =spans[i].getAttribute("id");
       if (id != null) refs["#"+id] = n;
     }
@@ -533,9 +712,32 @@
       }
     }
   }
+},
+
+install: function(toclevels) {
+  var timerId;
+
+  function reinstall() {
+    asciidoc.footnotes();
+    if (toclevels) {
+      asciidoc.toc(toclevels);
+    }
+  }
+
+  function reinstallAndRemoveTimer() {
+    clearInterval(timerId);
+    reinstall();
+  }
+
+  timerId = setInterval(reinstall, 500);
+  if (document.addEventListener)
+    document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+  else
+    window.onload = reinstallAndRemoveTimer;
 }
 
 }
+asciidoc.install(2);
 /*]]>*/
 </script>
 </head>
@@ -592,7 +794,7 @@
 <p>
 Many operating systems provide packages with MPI implementations
   that are usable, but often outdated.
-  E.g. the <tt>mpich2</tt> package on Debian/Ubuntu.
+  E.g. the <code>mpich2</code> package on Debian/Ubuntu.
 </p>
 </li>
 <li>
@@ -607,8 +809,8 @@
 </p>
 <div class="paragraph"><p>Swift/T attempts to use MPI 3.0 functionality by default.  If you
 are using an MPI implementation that does not support the MPI 3.0 standard,
-you must set <tt>MPI_VERSION=2</tt> (if using the <tt>exm-setup.zsh</tt> build process),
-or provide the <tt>--enable-mpi-2</tt> configure option (if using
+you must set <code>MPI_VERSION=2</code> (if using the <code>exm-setup.zsh</code> build process),
+or provide the <code>--enable-mpi-2</code> configure option (if using
 the manual build process).</p></div>
 </li>
 </ul></div>
@@ -623,7 +825,7 @@
 Tcl is available through the package manager on many systems.
    You may need to install an additional Tcl development package
    in addition to the standard tcl package,
-   e.g. <tt>tcl8.6</tt> plus <tt>tcl8.6-dev</tt> on Debian/Ubuntu systems.
+   e.g. <code>tcl8.6</code> plus <code>tcl8.6-dev</code> on Debian/Ubuntu systems.
 </p>
 </li>
 <li>
@@ -640,7 +842,7 @@
 <div class="ulist"><ul>
 <li>
 <p>
-You can check if SWIG is installed by running <tt>swig -version</tt>
+You can check if SWIG is installed by running <code>swig -version</code>
 </p>
 </li>
 <li>
@@ -669,7 +871,7 @@
 </p>
 <div class="listingblock">
 <div class="content">
-<pre><tt>wget http://www.mcs.anl.gov/exm/local/downloads/exm-0.5.0.tar.gz</tt></pre>
+<pre><code>wget http://www.mcs.anl.gov/exm/local/downloads/exm-0.5.0.tar.gz</code></pre>
 </div></div>
 <div class="paragraph"><p>Cf. <a href="http://www.mcs.anl.gov/exm/local/downloads/downloads.html">Swift/T Downloads</a>
 for other packages</p></div>
@@ -680,15 +882,15 @@
 </p>
 <div class="listingblock">
 <div class="content">
-<pre><tt>tar xfz exm-trunk.tar.gz
-cd exm-trunk</tt></pre>
+<pre><code>tar xfz exm-trunk.tar.gz
+cd exm-trunk</code></pre>
 </div></div>
 </li>
 <li>
 <p>
-Edit the settings file: <tt>exm-settings.sh</tt>
+Edit the settings file: <code>exm-settings.sh</code>
 </p>
-<div class="paragraph"><p>At a minimum, you must set the install directory with <tt>EXM_PREFIX</tt>.
+<div class="paragraph"><p>At a minimum, you must set the install directory with <code>EXM_PREFIX</code>.
 On a standard system, no further configuration may be needed.
 In many cases, however, you will need to modify additional
 configuration settings so that all prerequisites can
@@ -701,7 +903,7 @@
 <td class="icon">
 <div class="title">Tip</div>
 </td>
-<td class="content">Save your <tt>exm-settings.sh</tt> when you download a new package</td>
+<td class="content">Save your <code>exm-settings.sh</code> when you download a new package</td>
 </tr></table>
 </div>
 </li>
@@ -711,16 +913,16 @@
 </p>
 <div class="listingblock">
 <div class="content">
-<pre><tt>./exm-setup.zsh</tt></pre>
+<pre><code>./exm-setup.zsh</code></pre>
 </div></div>
-<div class="paragraph"><p>If <tt>exm-setup.zsh</tt> does not succeed on your system, see Section
+<div class="paragraph"><p>If <code>exm-setup.zsh</code> does not succeed on your system, see Section
 <a href="#Build_configuration">Build configuration</a> below.</p></div>
 <div class="admonitionblock">
 <table><tr>
 <td class="icon">
 <div class="title">Tip</div>
 </td>
-<td class="content">if you want more control than <tt>exm-setup.zsh</tt> provides, you can
+<td class="content">if you want more control than <code>exm-setup.zsh</code> provides, you can
     build Swift/T with the
     <a href="#Manual_build_configuration">manual configure/make workflow</a>.</td>
 </tr></table>
@@ -732,8 +934,8 @@
 </p>
 <div class="listingblock">
 <div class="content">
-<pre><tt>PATH=${PATH}:/path/to/exm-install/turbine/bin
-PATH=${PATH}:/path/to/exm-install/stc/bin</tt></pre>
+<pre><code>PATH=${PATH}:/path/to/exm-install/turbine/bin
+PATH=${PATH}:/path/to/exm-install/stc/bin</code></pre>
 </div></div>
 </li>
 </ol></div>
@@ -743,26 +945,26 @@
 <div class="sect1">
 <h2 id="_usage">3. Usage</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>Swift code is conventionally written in <tt>*.swift</tt> files.  Turbine
-code is stored in Tcl files <tt>*.tcl</tt>.  After writing the Swift program
-<tt>program.swift</tt>, run:</p></div>
+<div class="paragraph"><p>Swift code is conventionally written in <code>*.swift</code> files.  Turbine
+code is stored in Tcl files <code>*.tcl</code>.  After writing the Swift program
+<code>program.swift</code>, run:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>stc program.swift</tt></pre>
+<pre><code>stc program.swift</code></pre>
 </div></div>
-<div class="paragraph"><p>This will compile the program to <tt>program.tcl</tt>.  A second, optional
+<div class="paragraph"><p>This will compile the program to <code>program.tcl</code>.  A second, optional
 argument may be given as an alternate output file name.</p></div>
 <div class="paragraph"><p>Then, to run the program, use Turbine:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>turbine -n 4 program.tcl</tt></pre>
+<pre><code>turbine -n 4 program.tcl</code></pre>
 </div></div>
 <div class="paragraph"><p>See the <a href="#Turbine">Turbine section</a> for more information about
 running the program.</p></div>
 <div class="paragraph" id="stc_arguments"><p>STC accepts the following arguments:</p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>-A <em>name</em>=<em>value</em></tt>
+<code>-A <em>name</em>=<em>value</em></code>
 </dt>
 <dd>
 <p>
@@ -773,7 +975,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-D <em>macro</em>=<em>value</em></tt>
+<code>-D <em>macro</em>=<em>value</em></code>
 </dt>
 <dd>
 <p>
@@ -781,7 +983,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-E</tt>
+<code>-E</code>
 </dt>
 <dd>
 <p>
@@ -790,7 +992,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-I</tt>
+<code>-I</code>
 </dt>
 <dd>
 <p>
@@ -798,7 +1000,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-O</tt>
+<code>-O</code>
 </dt>
 <dd>
 <p>
@@ -806,15 +1008,15 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-j</tt>
+<code>-j</code>
 </dt>
 <dd>
 <p>
-Set the location of the <tt>java</tt> executable.
+Set the location of the <code>java</code> executable.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-p</tt>
+<code>-p</code>
 </dt>
 <dd>
 <p>
@@ -822,7 +1024,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-u</tt>
+<code>-u</code>
 </dt>
 <dd>
 <p>
@@ -830,7 +1032,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-v</tt>
+<code>-v</code>
 </dt>
 <dd>
 <p>
@@ -838,7 +1040,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-V</tt>
+<code>-V</code>
 </dt>
 <dd>
 <p>
@@ -846,16 +1048,16 @@
 </p>
 </dd>
 </dl></div>
-<div class="paragraph"><p>STC runs as a Java program.  You may use <tt>-j</tt> to set the Java VM
-executable.  This Java VM must be compatible with the <tt>javac</tt> used to
+<div class="paragraph"><p>STC runs as a Java program.  You may use <code>-j</code> to set the Java VM
+executable.  This Java VM must be compatible with the <code>javac</code> used to
 compile STC.</p></div>
 <div class="paragraph"><p>By default, STC runs the user script through the C preprocessor
-(<tt>cpp</tt>), enabling arbitrary macro processing, etc.  The <tt>-D</tt>, <tt>-E</tt>,
-<tt>-I</tt>, and <tt>-p</tt> options are relevant to this feature.</p></div>
+(<code>cpp</code>), enabling arbitrary macro processing, etc.  The <code>-D</code>, <code>-E</code>,
+<code>-I</code>, and <code>-p</code> options are relevant to this feature.</p></div>
 <div class="paragraph"><p>Additional arguments for advanced users/developers:</p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>-C</tt>
+<code>-C</code>
 </dt>
 <dd>
 <p>
@@ -863,7 +1065,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-l</tt>
+<code>-l</code>
 </dt>
 <dd>
 <p>
@@ -871,7 +1073,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-L</tt>
+<code>-L</code>
 </dt>
 <dd>
 <p>
@@ -879,7 +1081,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-T</tt>
+<code>-T</code>
 </dt>
 <dd>
 <p>
@@ -887,7 +1089,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-t</tt>
+<code>-t</code>
 </dt>
 <dd>
 <p>
@@ -901,24 +1103,24 @@
 <h2 id="_program_structure">4. Program structure</h2>
 <div class="sectionbody">
 <div class="paragraph"><p>Swift programs are composed of <em>composite</em> functions.  These
-share syntax with C-like languages.  The program starts in <tt>main()</tt>.
+share syntax with C-like languages.  The program starts in <code>main()</code>.
 The following is a complete Swift program:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>main
-{}</tt></pre>
+<pre><code>main
+{}</code></pre>
 </div></div>
-<div class="paragraph"><p>STC input is preprocessed by <tt>cpp</tt>, the C preprocessor.</p></div>
+<div class="paragraph"><p>STC input is preprocessed by <code>cpp</code>, the C preprocessor.</p></div>
 <div class="paragraph"><p>Hello world is written as:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>import io;
+<pre><code>import io;
 main
 {
   printf("Hello world");
-}</tt></pre>
+}</code></pre>
 </div></div>
-<div class="paragraph"><p>The newline is supplied by <tt>printf()</tt>.</p></div>
+<div class="paragraph"><p>The newline is supplied by <code>printf()</code>.</p></div>
 <div class="paragraph"><p>Swift programs eventually call <em>leaf</em> functions, which are the primary
 way to do work.  From the perspective of the Swift script, they are
 atomic operations that wait for input variables and set output
@@ -932,17 +1134,17 @@
 <div class="paragraph"><p>Swift supports C/C++-style comments:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>// This is a comment
+<pre><code>// This is a comment
 /* This is a
 comment */
 /** Also a
-comment */</tt></pre>
+comment */</code></pre>
 </div></div>
 <div class="paragraph"><p>Additionally, if the preprocessor is disabled, single-line comments
 starting with # are supported:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt># This will work if source file is not preprocessed</tt></pre>
+<pre><code># This will work if source file is not preprocessed</code></pre>
 </div></div>
 </div>
 </div>
@@ -954,8 +1156,8 @@
 function and variable definitions from that module into your program.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>import io;
-import mypackage.mymodule;</tt></pre>
+<pre><code>import io;
+import mypackage.mymodule;</code></pre>
 </div></div>
 <div class="paragraph"><p>The mechanisms for locating source files is as follows:</p></div>
 <div class="ulist"><ul>
@@ -973,31 +1175,31 @@
 </li>
 <li>
 <p>
-Additional directories can be added with the <tt>-I</tt> option to STC.
+Additional directories can be added with the <code>-I</code> option to STC.
 </p>
 </li>
 <li>
 <p>
-Swift source files must have a <tt>.swift</tt> suffix.  E.g. <tt>import io;</tt>
-  looks for a file called <tt>io.swift</tt>.
+Swift source files must have a <code>.swift</code> suffix.  E.g. <code>import io;</code>
+  looks for a file called <code>io.swift</code>.
 </p>
 </li>
 <li>
 <p>
-In the case of a multi-part import name, E.g. <tt>import mypackage.mymodule</tt>,
-  then, it looks for <tt>mymodule.swift</tt> in subdirectory <tt>mypackage</tt>.
+In the case of a multi-part import name, E.g. <code>import mypackage.mymodule</code>,
+  then, it looks for <code>mymodule.swift</code> in subdirectory <code>mypackage</code>.
 </p>
 </li>
 </ul></div>
-<div class="paragraph"><p>The alternative <tt>#include</tt> statement textually includes an entire
+<div class="paragraph"><p>The alternative <code>#include</code> statement textually includes an entire
 file using the C preprocessor at the point of the statement.
-Note that <tt>#include</tt> will only work if the preprocessor is enabled
-on the current file.  In contrast to <tt>import</tt>, <tt>#include</tt> will run the
-C preprocessor on any included modules.  <tt>import</tt> is recommended over
-<tt>#include</tt> unless the imported module requires preprocessing.</p></div>
+Note that <code>#include</code> will only work if the preprocessor is enabled
+on the current file.  In contrast to <code>import</code>, <code>#include</code> will run the
+C preprocessor on any included modules.  <code>import</code> is recommended over
+<code>#include</code> unless the imported module requires preprocessing.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>#include <mypackage/mymodule.swift></tt></pre>
+<pre><code>#include <mypackage/mymodule.swift></code></pre>
 </div></div>
 </div>
 </div>
@@ -1007,19 +1209,19 @@
 <div class="paragraph"><p>Swift expressions are evaluated in <em>dataflow</em> order:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>int z1,z2;
+<pre><code>int z1,z2;
 int y;
 int x = f(y);
 y = g(2);
 z1 = h(x,y,1);
 z2 = h(x,y,2);
-int output = r(z1,z2);</tt></pre>
+int output = r(z1,z2);</code></pre>
 </div></div>
 <div class="paragraph"><p>This allows code to execute as concurrently as possible, limited
-only by data availability.  In this example, <tt>g()</tt> runs first, because it
-is dependent only on a literal.  When <tt>y</tt> is set, <tt>f()</tt> runs, setting
-<tt>x</tt>.  Then, two invocations of <tt>h()</tt> execute.  Finally, <tt>z1</tt> and <tt>z2</tt>
-are set, allowing <tt>r()</tt> to run.</p></div>
+only by data availability.  In this example, <code>g()</code> runs first, because it
+is dependent only on a literal.  When <code>y</code> is set, <code>f()</code> runs, setting
+<code>x</code>.  Then, two invocations of <code>h()</code> execute.  Finally, <code>z1</code> and <code>z2</code>
+are set, allowing <code>r()</code> to run.</p></div>
 <div class="paragraph"><p>Variables may be assigned only once.  Multiple assignment is often
 detected at compile time, and will always be detected at run time,
 resulting in a run time error.  If variable is not assigned,
@@ -1034,25 +1236,25 @@
 <h2 id="_composite_functions">8. Composite functions</h2>
 <div class="sectionbody">
 <div class="paragraph"><p>Swift code is written in composite functions.  The composite function
-<tt>main</tt> is required.</p></div>
+<code>main</code> is required.</p></div>
 <div class="paragraph"><p>Composite functions have the form:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>[(<output list>)] function_name [(<input list>)]
+<pre><code>[(<output list>)] function_name [(<input list>)]
 {
   statement;
   statement;
   ...
-}</tt></pre>
+}</code></pre>
 </div></div>
-<div class="paragraph"><p>An empty input or output list may be omitted or written as <tt>()</tt>.</p></div>
+<div class="paragraph"><p>An empty input or output list may be omitted or written as <code>()</code>.</p></div>
 <div class="paragraph"><p>The output list may have more than one entry.  Thus, assignments
 may be written as:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>x1, x2 = f(i1, i2);
+<pre><code>x1, x2 = f(i1, i2);
 // or equivalently:
-(x1, x2) = f(i1, i2);</tt></pre>
+(x1, x2) = f(i1, i2);</code></pre>
 </div></div>
 </div>
 </div>
@@ -1069,7 +1271,7 @@
 <div class="paragraph"><p>Swift has the conventional types:</p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>string</tt>
+<code>string</code>
 </dt>
 <dd>
 <p>
@@ -1077,7 +1279,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>int</tt>
+<code>int</code>
 </dt>
 <dd>
 <p>
@@ -1085,7 +1287,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>float</tt>
+<code>float</code>
 </dt>
 <dd>
 <p>
@@ -1093,7 +1295,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>boolean</tt>
+<code>boolean</code>
 </dt>
 <dd>
 <p>
@@ -1101,7 +1303,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>file</tt>
+<code>file</code>
 </dt>
 <dd>
 <p>
@@ -1109,7 +1311,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>blob</tt>
+<code>blob</code>
 </dt>
 <dd>
 <p>
@@ -1121,83 +1323,83 @@
 <div class="ulist"><ul>
 <li>
 <p>
-<tt>int</tt> literals are written as decimal numbers, e.g. <tt>-1234</tt>
+<code>int</code> literals are written as decimal numbers, e.g. <code>-1234</code>
 </p>
 </li>
 <li>
 <p>
-<tt>float</tt> literals are written as decimal numbers with a decimal point,
-    e.g <tt>5493.352</tt> or <tt>1.0</tt>.
+<code>float</code> literals are written as decimal numbers with a decimal point,
+    e.g <code>5493.352</code> or <code>1.0</code>.
     Scientific notation may be used,
-    as in <tt>2.3e-2</tt> which is equivalent to <tt>0.023</tt>.
-    The literals <tt>NaN</tt> and <tt>inf</tt> may be used.  In some contexts <tt>int</tt>
-    literals are promoted automatically to <tt>float</tt>.
+    as in <code>2.3e-2</code> which is equivalent to <code>0.023</code>.
+    The literals <code>NaN</code> and <code>inf</code> may be used.  In some contexts <code>int</code>
+    literals are promoted automatically to <code>float</code>.
 </p>
 </li>
 <li>
 <p>
-<tt>boolean</tt> literals <tt>true</tt> and <tt>false</tt> may be used.
+<code>boolean</code> literals <code>true</code> and <code>false</code> may be used.
 </p>
 </li>
 <li>
 <p>
-<tt>string</tt> literals are enclosed in double quotes, with a range of escape
+<code>string</code> literals are enclosed in double quotes, with a range of escape
     sequences supported:
 </p>
 <div class="ulist"><ul>
 <li>
 <p>
-<tt>\\</tt> for a single backslash
+<code>\\</code> for a single backslash
 </p>
 </li>
 <li>
 <p>
-<tt>\"</tt> for a quote
+<code>\"</code> for a quote
 </p>
 </li>
 <li>
 <p>
-<tt>\n</tt> for newline
+<code>\n</code> for newline
 </p>
 </li>
 <li>
 <p>
-<tt>\t</tt> for tab
+<code>\t</code> for tab
 </p>
 </li>
 <li>
 <p>
-<tt>\a</tt> (alarm)
+<code>\a</code> (alarm)
 </p>
 </li>
 <li>
 <p>
-<tt>\b</tt> (backspace)
+<code>\b</code> (backspace)
 </p>
 </li>
 <li>
 <p>
-<tt>\f</tt> (form feed)
+<code>\f</code> (form feed)
 </p>
 </li>
 <li>
 <p>
-<tt>\r</tt> (carriage return)
+<code>\r</code> (carriage return)
 </p>
 </li>
 <li>
 <p>
-<tt>\v</tt> (vertical tab)
+<code>\v</code> (vertical tab)
 </p>
 </li>
 <li>
 <p>
-octal escape codes, e.g. <tt>\001</tt>
+octal escape codes, e.g. <code>\001</code>
 </p>
 </li>
 <li>
 <p>
-hexadecimal escape codes, e.g. <tt>\xf2</tt>
+hexadecimal escape codes, e.g. <code>\xf2</code>
 </p>
 </li>
 <li>
@@ -1218,11 +1420,11 @@
 </p>
 <div class="listingblock">
 <div class="content">
-<pre><tt>string s =
+<pre><code>string s =
 """
 line data 1
 line data 2
-""";</tt></pre>
+""";</code></pre>
 </div></div>
 </li>
 <li>
@@ -1235,7 +1437,7 @@
 <strong>Note:</strong> Multi-line strings are somewhat incompatible with the C preprocessor:
             if you try to compile a Swift program using multi-line strings with
             the preprocessor enabled, you will likely see warnings or strange
-            behavior.  To disable the C preprocessor, use the <tt>-p</tt> option
+            behavior.  To disable the C preprocessor, use the <code>-p</code> option
             to STC.
 </p>
 </li>
@@ -1249,28 +1451,28 @@
 as any other variable.  The main difference is that a file can be
 <strong>mapped</strong> to path in a filesystem.  Assigning to a mapped file variable
 results in a file being created in the file system at the specified path.
-File paths can be arbitrary Swift expressions of type <tt>string</tt>.  Absolute
+File paths can be arbitrary Swift expressions of type <code>string</code>.  Absolute
 paths or relative paths are specified, with relative paths interpreted
 relative to the path in which turbine was run.
 File variables can also be initialized with data from a pre-existing
-file using the <tt>input_file</tt> function.  File paths are relative to the
+file using the <code>input_file</code> function.  File paths are relative to the
 working directory for Turbine.</p></div>
-<div class="paragraph"><p>For example, if <tt>/home/user/in.txt</tt> is a file with some data in it,
-the following Swift program will copy the file to <tt>/home/user/out.txt</tt>.</p></div>
+<div class="paragraph"><p>For example, if <code>/home/user/in.txt</code> is a file with some data in it,
+the following Swift program will copy the file to <code>/home/user/out.txt</code>.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>main
+<pre><code>main
 {
   file x = input_file("/home/user/in.txt");
   file y <"/home/user/out.txt">; // Declare a mapped file
   y = x; // Do the copy
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>A range of functions to work with files are provided in the
-<tt>files</tt> library module.</p></div>
+<code>files</code> library module.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>// Initialize an array of files from a range of files on disk with glob
+<pre><code>// Initialize an array of files from a range of files on disk with glob
 file f[] = glob("directory/*.txt");
 
 // Read the contents of a file with read
@@ -1282,13 +1484,13 @@
 file tmp = write("first line\nsecond line");
 
 // Find the name of a file with filename
-trace("Temporary filename is: " + filename(tmp));</tt></pre>
+trace("Temporary filename is: " + filename(tmp));</code></pre>
 </div></div>
 <div class="paragraph"><p>Temporary files are created as necessary if unmapped files are
-written to.  For example, the file <tt>tmp</tt> in the above code snippet.
-This feature is implemented by calling GNU <tt>mktemp</tt> with suffix
-<tt>.turbine</tt>; thus, the directory is set with environment variable
-<tt>TMPDIR</tt> which defaults to <tt>/tmp</tt>.</p></div>
+written to.  For example, the file <code>tmp</code> in the above code snippet.
+This feature is implemented by calling GNU <code>mktemp</code> with suffix
+<code>.turbine</code>; thus, the directory is set with environment variable
+<code>TMPDIR</code> which defaults to <code>/tmp</code>.</p></div>
 <div class="paragraph"><p>Currently Swift/T assumes that the file system is shared among
 all nodes.</p></div>
 <div class="admonitionblock">
@@ -1300,14 +1502,14 @@
 <div class="paragraph"><p>The syntax</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>file f<"f.txt"> = g();</tt></pre>
+<pre><code>file f<"f.txt"> = g();</code></pre>
 </div></div>
 <div class="paragraph"><p>is allowed but</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>file f<"f.txt">=g();</tt></pre>
+<pre><code>file f<"f.txt">=g();</code></pre>
 </div></div>
-<div class="paragraph"><p>results in a parse error: the <tt>>=</tt> sequence is tokenized as
+<div class="paragraph"><p>results in a parse error: the <code>>=</code> sequence is tokenized as
 <em>greater-than-or-equal-to</em>.</p></div>
 </td>
 </tr></table>
@@ -1326,35 +1528,35 @@
 <div class="paragraph"><p>Arrays can be declared with empty square brackets:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>int A[];</tt></pre>
+<pre><code>int A[];</code></pre>
 </div></div>
 <div class="paragraph"><p>Arrays with empty square brackets have integer indices.  It is
 also possible to declare integers with other index types, such as
 strings:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>string dict[string];</tt></pre>
+<pre><code>string dict[string];</code></pre>
 </div></div>
 <div class="paragraph"><p>They are dynamically sized, expanding each time an item is inserted at
 a new index.  Arrays are indexed using square brackets.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>int A[string];
+<pre><code>int A[string];
 int B[];
 B = function_returning_array();
 A["zero"] = B[0];
-A["one"] = B[1];</tt></pre>
+A["one"] = B[1];</code></pre>
 </div></div>
 <div class="paragraph"><p>Each array index can only be assigned to once.</p></div>
 <div class="paragraph"><p>A given array variable must be assigned either <em>in toto</em> (as a whole)
-or <em>in partes</em> (piece by piece).  In this example, <tt>B</tt> is assigned in toto
-and <tt>A</tt> is assigned in partes.  Code that attempts to do both is in error.</p></div>
+or <em>in partes</em> (piece by piece).  In this example, <code>B</code> is assigned in toto
+and <code>A</code> is assigned in partes.  Code that attempts to do both is in error.</p></div>
 <div class="paragraph"><p>Arrays may be used as inputs or outputs of functions.</p></div>
 <div class="paragraph"><p>Arrays are part of Swift dataflow semantics. An array is closed
 when all possible insertions to it are complete.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>(int B[]) f(int j)
+<pre><code>(int B[]) f(int j)
 {
   int A[];
   A = subroutine_function(1);
@@ -1364,23 +1566,23 @@
 
   // OK: assigning to output variable
   B = subroutine_function(2);
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>Array literals may be expressed using the range operator:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>int start = 0;
+<pre><code>int start = 0;
 int stop = 10;
 int step = 2;
 // Array of length 10:
 int A[] = [start:stop];
 // Array of length 5, containing only even numbers:
-int B[] = [start:stop:step];</tt></pre>
+int B[] = [start:stop:step];</code></pre>
 </div></div>
 <div class="paragraph"><p>Array literals may also be expressed with list syntax:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>int C[] = [4,5,6];</tt></pre>
+<pre><code>int C[] = [4,5,6];</code></pre>
 </div></div>
 </div>
 <div class="sect2">
@@ -1389,43 +1591,43 @@
 assigned as follows:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>// An array of arrays of files with string keys
+<pre><code>// An array of arrays of files with string keys
 file A[string][string];
 A["foo"]["bar"] = input_file("test.txt");
-A["foo"]["qux"] = input_file("test2.txt");</tt></pre>
+A["foo"]["qux"] = input_file("test2.txt");</code></pre>
 </div></div>
 <div class="paragraph"><p><strong>Note:</strong> there is currently a limitation in assignment of nested arrays
 that a given array can only be assigned at a single "index level".  If
-<tt>A</tt> is a 2D array, for example, then you cannot mix assignments specifying
-one index (e.g. <tt>A[i] = …</tt>) with assignments specifying three indices
-(e.g. <tt>A[i][j] = …</tt>).</p></div>
+<code>A</code> is a 2D array, for example, then you cannot mix assignments specifying
+one index (e.g. <code>A[i] = …</code>) with assignments specifying three indices
+(e.g. <code>A[i][j] = …</code>).</p></div>
 </div>
 <div class="sect2">
 <h3 id="_structs">9.6. Structs</h3>
-<div class="paragraph"><p>In Swift, structs are defined with the <tt>type</tt> keyword.  They define
+<div class="paragraph"><p>In Swift, structs are defined with the <code>type</code> keyword.  They define
 a new type.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>type person
+<pre><code>type person
 {
   string name;
   int age;
   int events[];
-}</tt></pre>
+}</code></pre>
 </div></div>
-<div class="paragraph"><p>Structs are accessed with the <tt>.</tt> syntax:</p></div>
+<div class="paragraph"><p>Structs are accessed with the <code>.</code> syntax:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>person p;
+<pre><code>person p;
 p.name = "Abe";
-p.age = 90;</tt></pre>
+p.age = 90;</code></pre>
 </div></div>
 <div class="paragraph"><p>It is possible to have arrays of structs, with some restriction on
 how they can be assigned.  Each struct in the array must be assigned
 <em>in toto</em> (as a whole).  For example, the following code is valid:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>person people[], p1, p2;
+<pre><code>person people[], p1, p2;
 
 p1.name = "Thelma";
 p1.age = 31;
@@ -1434,35 +1636,35 @@
 p2.age = 29;
 
 people[0] = p1;
-people[1] = p2;</tt></pre>
+people[1] = p2;</code></pre>
 </div></div>
 <div class="paragraph"><p>However, attempting to assign the structs in the following way is
 currently unsupported:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>people[2].name = "Abe";  // Not supported!
-people[2].age = 90;      // Not supported!</tt></pre>
+<pre><code>people[2].name = "Abe";  // Not supported!
+people[2].age = 90;      // Not supported!</code></pre>
 </div></div>
 </div>
 <div class="sect2">
 <h3 id="_defining_new_types">9.7. Defining new types</h3>
 <div class="paragraph"><p>Swift has two ways to define new types based on existing types.</p></div>
-<div class="paragraph"><p>The first is <tt>typedef</tt>, which creates a new name for the type.
+<div class="paragraph"><p>The first is <code>typedef</code>, which creates a new name for the type.
 The new type and the existing type will be completely interchangeable,
 since they are simply different names for the same underlying type.
 The new type name simply serves to improve readability or documentation.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>typedef newint int;
+<pre><code>typedef newint int;
 
 main {
   // We can freely convert between int and newint
   newint x = 1;
   int y = x;
   newint z = y;
-}</tt></pre>
+}</code></pre>
 </div></div>
-<div class="paragraph"><p>The second is with <tt>type</tt>, which creates a new type that is a
+<div class="paragraph"><p>The second is with <code>type</code>, which creates a new type that is a
 specialization of an existing type.  That is, it is a distinct
 type that is not interchangeable.  A specialized type can be
 converted into the original type, but the reverse transformation is
@@ -1473,7 +1675,7 @@
 of encountering compiler bugs or limitations.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>typedef sorted_file file;
+<pre><code>typedef sorted_file file;
 app (sorted_file out) sort (file i) {
   "/usr/bin/sort" "-o" out i
 }
@@ -1493,27 +1695,27 @@
 
   // This would cause a type error
   // sorted_file not_sorted = unsorted;
-}</tt></pre>
+}</code></pre>
 </div></div>
 </div>
 <div class="sect2">
 <h3 id="_global_constants">9.8. Global Constants</h3>
 <div class="paragraph"><p>Swift supports a basic feature for defining globally visible constants.  You
-can use the <tt>global const</tt> statement at the top level of the program.  The
+can use the <code>global const</code> statement at the top level of the program.  The
 syntax only supports literals of scalar types: e.g. integer literals, floating
 point literals and string literals.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>global const string hello = "Hello World";
+<pre><code>global const string hello = "Hello World";
 global const float pi_approx = 3.142;
 global const int ONE = 1;
 
 main () {
   trace(hello, pi_approx, ONE);
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p><strong>Note:</strong> global constants provide no performance benefit compared with
-variables initialized to constant values at optimization levels <tt>O1</tt>
+variables initialized to constant values at optimization levels <code>O1</code>
 or greater.</p></div>
 <div class="paragraph"><p><strong>Note:</strong> better support is planned in future for more flexible support for
 global variables and code.</p></div>
@@ -1532,7 +1734,7 @@
 <div class="paragraph"><p>If statements have the form:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>if (<condition>)
+<pre><code>if (<condition>)
 {
   statement;
   ...
@@ -1541,7 +1743,7 @@
 {
   statement;
   ...
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>As required by dataflow processing, neither branch of the conditional can
 execute until the value of the condition expression is available.</p></div>
@@ -1550,7 +1752,7 @@
 <h4 id="_switch_statement">10.1.2. Switch statement</h4>
 <div class="listingblock">
 <div class="content">
-<pre><tt>int a = 20;
+<pre><code>int a = 20;
 switch (a)
 {
   case 1:
@@ -1564,46 +1766,46 @@
   default:
     b = 2102 + 2420;
 }
-printf("b: %i\n", b);</tt></pre>
+printf("b: %i\n", b);</code></pre>
 </div></div>
 <div class="paragraph"><p><strong>Note:</strong> there is no fall-through between cases in switch statements.</p></div>
 </div>
 </div>
 <div class="sect2">
 <h3 id="_iteration">10.2. Iteration</h3>
-<div class="paragraph"><p>Iteration is performed with the <tt>foreach</tt> and <tt>for</tt> statements.</p></div>
+<div class="paragraph"><p>Iteration is performed with the <code>foreach</code> and <code>for</code> statements.</p></div>
 <div class="sect3">
 <h4 id="_foreach_loop">10.2.1. Foreach loop</h4>
-<div class="paragraph"><p>The <tt>foreach</tt> loop allows for parallel iteration over an array:</p></div>
+<div class="paragraph"><p>The <code>foreach</code> loop allows for parallel iteration over an array:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>string A[];
+<pre><code>string A[];
 foreach value, index in A
 {
   printf("A[%i] = %s\n", index, value);
-}</tt></pre>
+}</code></pre>
 </div></div>
-<div class="paragraph"><p>The <tt>index</tt> and <tt>value</tt> variables are automatically declared.  The
-<tt>index</tt> variable may be omitted from the syntax.</p></div>
+<div class="paragraph"><p>The <code>index</code> and <code>value</code> variables are automatically declared.  The
+<code>index</code> variable may be omitted from the syntax.</p></div>
 <div class="paragraph"><p>A special case of the foreach loop occurs when combined with the
 array range operator.  This is the idiomatic way to iterate over
 a range of integer values in Swift. The STC compiler has special
 handling for this case that avoids constructing an array.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>foreach i in [start:stop:step] {
+<pre><code>foreach i in [start:stop:step] {
     ...
-}</tt></pre>
+}</code></pre>
 </div></div>
 </div>
 <div class="sect3">
 <h4 id="_for_loop">10.2.2. For loop</h4>
-<div class="paragraph"><p>The <tt>for</tt> loop allows for sequential iteration.  This example
+<div class="paragraph"><p>The <code>for</code> loop allows for sequential iteration.  This example
 implements a counter based on the return values of a function that
 accepts integers:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>int N = 100;
+<pre><code>int N = 100;
 int count = 0;
 for (int i = 0; i < N; i = i+1, count = count+c)
 {
@@ -1616,16 +1818,16 @@
   {
     c = 0;
   }
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>The general form is:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>for ( <initializer> ; <condition> ; <updates> )
+<pre><code>for ( <initializer> ; <condition> ; <updates> )
 {
   statement;
   ...
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>The initializer is executed first, once.  The initializer is a
 comma-separated list of statements.  The body statements are then
@@ -1635,7 +1837,7 @@
 while the right-hand-side is the variable in the <em>previous</em> loop
 iteration.  Then, the condition is checked for loop exit.  If the loop
 continues, the body is executed again, etc.</p></div>
-<div class="paragraph"><p><strong>Performance Tip:</strong> use the <tt>foreach</tt> loop instead of <tt>for</tt> if your
+<div class="paragraph"><p><strong>Performance Tip:</strong> use the <code>foreach</code> loop instead of <code>for</code> if your
 loop iterations are independent and can be executed in parallel.</p></div>
 </div>
 </div>
@@ -1645,55 +1847,55 @@
 data dependencies.  In some cases it is useful to add explicit data
 dependencies, for example if you want to print a message to indicate
 that variable was assigned.  It is possible for the programmer to
-express additional execution ordering using two constructs: the <tt>wait</tt>
-statement and the <tt>=></tt> chaining operator.</p></div>
+express additional execution ordering using two constructs: the <code>wait</code>
+statement and the <code>=></code> chaining operator.</p></div>
 <div class="paragraph"><p>In a wait statement, a block of code is executed after
 one or more variables are closed.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>x = f();
+<pre><code>x = f();
 y = g();
 wait (x) {
   trace("x is closed!");
 }
 wait(x, y) {
   trace("x and y are closed!");
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>The chaining operator chains statements together so that a
 statement only executes after the previous statement’s output
 value is closed.  This is
-a more concise way to express dependencies than the <tt>wait</tt> statement.</p></div>
+a more concise way to express dependencies than the <code>wait</code> statement.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>sleep(1) =>
+<pre><code>sleep(1) =>
   x = f() =>
   int y = g() =>
-  trace("DONE!");</tt></pre>
+  trace("DONE!");</code></pre>
 </div></div>
 <div class="paragraph"><p>Chaining is based on the <strong>output values</strong>
-of a statement.  In the simple case of a function call <tt>f() => …</tt>,
+of a statement.  In the simple case of a function call <code>f() => …</code>,
 the output values are the output values of the function.  In the
-case of and assignment <tt>x = f() => …</tt> or a declaration,
-<tt>int y = g() => …</tt>, then the next statement is dependent on
+case of and assignment <code>x = f() => …</code> or a declaration,
+<code>int y = g() => …</code>, then the next statement is dependent on
 the assigned values, or the declared values.  Some functions such
-as <tt>sleep</tt> have <tt>void</tt> output values so that they can be used
+as <code>sleep</code> have <code>void</code> output values so that they can be used
 in this fashion.</p></div>
 </div>
 <div class="sect2">
 <h3 id="_scoping_blocks">10.4. Scoping blocks</h3>
 <div class="paragraph"><p>Arbitrary scoping blocks may be used.  In this example, two different
-variables, both represented by <tt>b</tt>, are assigned different values.</p></div>
+variables, both represented by <code>b</code>, are assigned different values.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>{
+<pre><code>{
   int b;
   b = 1;
 }
 {
   int b;
   b = 2;
-}</tt></pre>
+}</code></pre>
 </div></div>
 </div>
 </div>
@@ -1702,19 +1904,19 @@
 <h2 id="_operators">11. Operators</h2>
 <div class="sectionbody">
 <div class="paragraph"><p>The following binary arithmetic operators on numbers are defined:</p></div>
-<div class="paragraph"><p><tt>+</tt> (plus), <tt>-</tt> (minus), <tt>*</tt> (times), <tt>/</tt> (divide),
-<tt>%/</tt> (integer divide), <tt>%%</tt> (modulus), <tt>**</tt> (power)</p></div>
-<div class="paragraph"><p><tt>&&</tt> (boolean and), <tt>||</tt> (boolean or),
-<tt>==</tt> (equals), <tt>!=</tt> (not equals), <tt>></tt> (greater than), <tt><</tt> (less than),
-<tt>>=</tt> (greater than or equal to), <tt><=</tt> (less than or equal to)</p></div>
-<div class="paragraph"><p><tt>xor()</tt> is a builtin function.</p></div>
+<div class="paragraph"><p><code>+</code> (plus), <code>-</code> (minus), <code>*</code> (times), <code>/</code> (divide),
+<code>%/</code> (integer divide), <code>%%</code> (modulus), <code>**</code> (power)</p></div>
+<div class="paragraph"><p><code>&&</code> (boolean and), <code>||</code> (boolean or),
+<code>==</code> (equals), <code>!=</code> (not equals), <code>></code> (greater than), <code><</code> (less than),
+<code>>=</code> (greater than or equal to), <code><=</code> (less than or equal to)</p></div>
+<div class="paragraph"><p><code>xor()</code> is a builtin function.</p></div>
 <div class="paragraph"><p>Swift boolean operators are not short-circuited (to allow maximal
-concurrency).  For conditional execution, use an <tt>if</tt> statement.</p></div>
+concurrency).  For conditional execution, use an <code>if</code> statement.</p></div>
 <div class="paragraph"><p>The following unary operators are defined:</p></div>
-<div class="paragraph"><p><tt>-</tt> (negate), <tt>!</tt> (boolean not)</p></div>
-<div class="paragraph"><p>String concatenation is also performed with <tt>+</tt> (plus).  <tt>==</tt> and
-<tt>!=</tt> may also be used on strings.  Operator <tt>s1/s2</tt> is equivalent to
-<tt>s1+"/"+s2</tt>.</p></div>
+<div class="paragraph"><p><code>-</code> (negate), <code>!</code> (boolean not)</p></div>
+<div class="paragraph"><p>String concatenation is also performed with <code>+</code> (plus).  <code>==</code> and
+<code>!=</code> may also be used on strings.  Operator <code>s1/s2</code> is equivalent to
+<code>s1+"/"+s2</code>.</p></div>
 </div>
 </div>
 <div class="sect1">
@@ -1722,17 +1924,17 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Each category of function is shown with the required import
 statement, if necessary.</p></div>
-<div class="paragraph"><p>Functions that accept an input of any type are denoted <tt>anything</tt>.
+<div class="paragraph"><p>Functions that accept an input of any type are denoted <code>anything</code>.
 Functions that accept variable numbers of arguments are denoted with
-ellipsis <tt>…</tt>.</p></div>
-<div class="paragraph"><p>A function that accepts more than one type is denoted as <tt>f(int|string)</tt>.</p></div>
+ellipsis <code>…</code>.</p></div>
+<div class="paragraph"><p>A function that accepts more than one type is denoted as <code>f(int|string)</code>.</p></div>
 <div class="paragraph"><p>If a function is described below an <strong>Import:</strong> label, be sure to
-<tt>import</tt> that package.</p></div>
+<code>import</code> that package.</p></div>
 <div class="sect2">
 <h3 id="_general">12.1. General</h3>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>xor(boolean,boolean) → boolean</tt>
+<code>xor(boolean,boolean) → boolean</code>
 </dt>
 <dd>
 <p>
@@ -1740,7 +1942,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>make_void() → void</tt>
+<code>make_void() → void</code>
 </dt>
 <dd>
 <p>
@@ -1748,21 +1950,21 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>size(A[]) → int</tt>
+<code>size(A[]) → int</code>
 </dt>
 <dd>
 <p>
-Obtain the size of array <tt>A</tt>
+Obtain the size of array <code>A</code>
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>contains(A[], key) → boolean</tt>
+<code>contains(A[], key) → boolean</code>
 </dt>
 <dd>
 <p>
-Test that future <tt>A[key]</tt> exists.
-This function blocks until <tt>A</tt> is closed.  Consumers of <tt>A[key]</tt> may
-block again until <tt>A[key]</tt> is stored.
+Test that future <code>A[key]</code> exists.
+This function blocks until <code>A</code> is closed.  Consumers of <code>A[key]</code> may
+block again until <code>A[key]</code> is stored.
 </p>
 </dd>
 </dl></div>
@@ -1771,7 +1973,7 @@
 <h3 id="_type_conversion">12.2. Type conversion</h3>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>fromint(int)     → string</tt>
+<code>fromint(int)     → string</code>
 </dt>
 <dd>
 <p>
@@ -1779,7 +1981,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>toint(string)    → int</tt>
+<code>toint(string)    → int</code>
 </dt>
 <dd>
 <p>
@@ -1787,7 +1989,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>fromfloat(float) → string</tt>
+<code>fromfloat(float) → string</code>
 </dt>
 <dd>
 <p>
@@ -1795,7 +1997,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>tofloat(string)  → float</tt>
+<code>tofloat(string)  → float</code>
 </dt>
 <dd>
 <p>
@@ -1803,7 +2005,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>itof(int)        → float</tt>
+<code>itof(int)        → float</code>
 </dt>
 <dd>
 <p>
@@ -1811,7 +2013,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>repr(*)          → string</tt>
+<code>repr(*)          → string</code>
 </dt>
 <dd>
 <p>
@@ -1821,7 +2023,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>array_repr(*[])  → string[]</tt>
+<code>array_repr(*[])  → string[]</code>
 </dt>
 <dd>
 <p>
@@ -1836,7 +2038,7 @@
 <h3 id="_output">12.3. Output</h3>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>trace(anything, anything, …)</tt>
+<code>trace(anything, anything, …)</code>
 </dt>
 <dd>
 <p>
@@ -1844,104 +2046,104 @@
 </p>
 </dd>
 </dl></div>
-<div class="paragraph"><p><strong>Import:</strong> <tt>io</tt></p></div>
+<div class="paragraph"><p><strong>Import:</strong> <code>io</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>printf(string format, int|float|string|boolean…)</tt>
+<code>printf(string format, int|float|string|boolean…)</code>
 </dt>
 <dd>
 <p>
-As <tt>printf()</tt> in C
+As <code>printf()</code> in C
 </p>
 </dd>
 </dl></div>
 </div>
 <div class="sect2">
 <h3 id="_string_functions">12.4. String functions</h3>
-<div class="paragraph"><p><tt>strcat(string,string)</tt>: Concatenation</p></div>
-<div class="paragraph"><p><strong>Import:</strong> <tt>string</tt></p></div>
+<div class="paragraph"><p><code>strcat(string,string)</code>: Concatenation</p></div>
+<div class="paragraph"><p><strong>Import:</strong> <code>string</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>substring(string s, int start, int length) → string</tt>
+<code>substring(string s, int start, int length) → string</code>
 </dt>
 <dd>
 <p>
-Obtain substring of given string <tt>s</tt> starting at character <tt>start</tt> and of
-length <tt>length</tt>
+Obtain substring of given string <code>s</code> starting at character <code>start</code> and of
+length <code>length</code>
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>find(string s, string substring, int start_index, int end_index) → int</tt>
+<code>find(string s, string substring, int start_index, int end_index) → int</code>
 </dt>
 <dd>
 <p>
-Find the index of the first occurence of the string <tt>substring</tt> within
-the string <tt>s</tt> between the indices <tt>start_index</tt> and <tt>end_index</tt>. Here
-an index of <tt>-1</tt> passed to <tt>end_index</tt> results in <tt>end_index</tt> being
-treated as the length of the string <tt>s</tt>. <tt>find</tt> returns <tt>-1</tt> in case
-there is no occurence of <tt>substring</tt> in <tt>s</tt> in the specified range.
+Find the index of the first occurence of the string <code>substring</code> within
+the string <code>s</code> between the indices <code>start_index</code> and <code>end_index</code>. Here
+an index of <code>-1</code> passed to <code>end_index</code> results in <code>end_index</code> being
+treated as the length of the string <code>s</code>. <code>find</code> returns <code>-1</code> in case
+there is no occurence of <code>substring</code> in <code>s</code> in the specified range.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>string_count(string s, string substring, int start_index, int end_index) → int</tt>
+<code>string_count(string s, string substring, int start_index, int end_index) → int</code>
 </dt>
 <dd>
 <p>
-Counts the occurences of the string <tt>substring</tt> within the string <tt>s</tt>
-between the indices <tt>start_index</tt> and <tt>end_index</tt>. Here an index of
-<tt>-1</tt> passed to <tt>end_index</tt> results in <tt>end_index</tt> being treated as the
-length of the string <tt>s</tt>
+Counts the occurences of the string <code>substring</code> within the string <code>s</code>
+between the indices <code>start_index</code> and <code>end_index</code>. Here an index of
+<code>-1</code> passed to <code>end_index</code> results in <code>end_index</code> being treated as the
+length of the string <code>s</code>
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>is_int(string s) → boolean</tt>
+<code>is_int(string s) → boolean</code>
 </dt>
 <dd>
 <p>
-Returns true if string <tt>s</tt> is a number, else false.
+Returns true if string <code>s</code> is a number, else false.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>replace(string s, string substring, string rep_string, int start_index) → string</tt>
+<code>replace(string s, string substring, string rep_string, int start_index) → string</code>
 </dt>
 <dd>
 <p>
 Obtain the string created by replacing the first occurence of the
-string <tt>substring</tt> within string <tt>s</tt>, after the index <tt>start_index</tt>,
-with the string <tt>rep_string</tt>. In case there is no such occurence of
-the string <tt>substring</tt> in string <tt>s</tt>, the original string <tt>s</tt> is
+string <code>substring</code> within string <code>s</code>, after the index <code>start_index</code>,
+with the string <code>rep_string</code>. In case there is no such occurence of
+the string <code>substring</code> in string <code>s</code>, the original string <code>s</code> is
 returned unmodified.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>replace_all(string s, string substring, string rep_string, int start_index) → string</tt>
+<code>replace_all(string s, string substring, string rep_string, int start_index) → string</code>
 </dt>
 <dd>
 <p>
 Obtain the string created by replacing all the occurences of the
-string <tt>substring</tt> within string <tt>s</tt>, after the index <tt>start_index</tt>,
-with the string <tt>rep_string</tt>. In case no such occurence of <tt>substring</tt>
-exists in <tt>s</tt>, the original string <tt>s</tt> is returned unmodified.
+string <code>substring</code> within string <code>s</code>, after the index <code>start_index</code>,
+with the string <code>rep_string</code>. In case no such occurence of <code>substring</code>
+exists in <code>s</code>, the original string <code>s</code> is returned unmodified.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>split(string s, string delimiter) → string[]</tt>
+<code>split(string s, string delimiter) → string[]</code>
 </dt>
 <dd>
 <p>
-Tokenize string <tt>s</tt> with given delimiter
+Tokenize string <code>s</code> with given delimiter
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>trim(string s) → string</tt>
+<code>trim(string s) → string</code>
 </dt>
 <dd>
 <p>
-Remove leading and trailing whitespace from <tt>s</tt>
+Remove leading and trailing whitespace from <code>s</code>
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>strlen(string) → int</tt>
+<code>strlen(string) → int</code>
 </dt>
 <dd>
 <p>
@@ -1949,7 +2151,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>hash(string) → int</tt>
+<code>hash(string) → int</code>
 </dt>
 <dd>
 <p>
@@ -1957,19 +2159,19 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>sprintf(string format, int|float|string|boolean…)</tt>
+<code>sprintf(string format, int|float|string|boolean…)</code>
 </dt>
 <dd>
 <p>
-As <tt>sprintf()</tt> in C
+As <code>sprintf()</code> in C
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>string_join(string A[], string separator) → string</tt>
+<code>string_join(string A[], string separator) → string</code>
 </dt>
 <dd>
 <p>
-Join strings in <tt>A</tt> with given separator.  The separator may be the
+Join strings in <code>A</code> with given separator.  The separator may be the
 empty string
 </p>
 </dd>
@@ -1979,7 +2181,7 @@
 <h3 id="_math">12.5. Math</h3>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>max|min_integer(int,int) → int</tt>
+<code>max|min_integer(int,int) → int</code>
 </dt>
 <dd>
 <p>
@@ -1988,7 +2190,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>max|min_float(float,float) → float</tt>
+<code>max|min_float(float,float) → float</code>
 </dt>
 <dd>
 <p>
@@ -1997,7 +2199,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>pow_integer(int b,int x)</tt>
+<code>pow_integer(int b,int x)</code>
 </dt>
 <dd>
 <p>
@@ -2005,7 +2207,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>pow_float(float b,float x)</tt>
+<code>pow_float(float b,float x)</code>
 </dt>
 <dd>
 <p>
@@ -2013,10 +2215,10 @@
 </p>
 </dd>
 </dl></div>
-<div class="paragraph"><p><strong>Import:</strong> <tt>math</tt></p></div>
+<div class="paragraph"><p><strong>Import:</strong> <code>math</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>floor(float) → int</tt>
+<code>floor(float) → int</code>
 </dt>
 <dd>
 <p>
@@ -2024,7 +2226,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>ceil(float) → int</tt>
+<code>ceil(float) → int</code>
 </dt>
 <dd>
 <p>
@@ -2032,7 +2234,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>round(float) → int</tt>
+<code>round(float) → int</code>
 </dt>
 <dd>
 <p>
@@ -2040,7 +2242,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>log(float) → float</tt>
+<code>log(float) → float</code>
 </dt>
 <dd>
 <p>
@@ -2048,7 +2250,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>exp(float) → float</tt>
+<code>exp(float) → float</code>
 </dt>
 <dd>
 <p>
@@ -2056,7 +2258,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>sqrt(float) → float</tt>
+<code>sqrt(float) → float</code>
 </dt>
 <dd>
 <p>
@@ -2064,7 +2266,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>is_nan(float) → boolean</tt>
+<code>is_nan(float) → boolean</code>
 </dt>
 <dd>
 <p>
@@ -2072,7 +2274,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>abs_integer(int) → int</tt>
+<code>abs_integer(int) → int</code>
 </dt>
 <dd>
 <p>
@@ -2080,7 +2282,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>abs_float(float) → float</tt>
+<code>abs_float(float) → float</code>
 </dt>
 <dd>
 <p>
@@ -2088,10 +2290,10 @@
 </p>
 </dd>
 </dl></div>
-<div class="paragraph"><p><strong>Import:</strong> <tt>random</tt></p></div>
+<div class="paragraph"><p><strong>Import:</strong> <code>random</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>random() → float</tt>
+<code>random() → float</code>
 </dt>
 <dd>
 <p>
@@ -2099,18 +2301,18 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>randint(int start, int end)</tt>
+<code>randint(int start, int end)</code>
 </dt>
 <dd>
 <p>
-Obtain random integer from <tt>start</tt>, inclusive, to <tt>end</tt>, exclusive
+Obtain random integer from <code>start</code>, inclusive, to <code>end</code>, exclusive
 </p>
 </dd>
 </dl></div>
 <div class="paragraph"><p><strong>Import:</strong> stats</p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>sum_integer(int[]) → int</tt>
+<code>sum_integer(int[]) → int</code>
 </dt>
 <dd>
 <p>
@@ -2118,7 +2320,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>avg(int|float[]) → float</tt>
+<code>avg(int|float[]) → float</code>
 </dt>
 <dd>
 <p>
@@ -2129,10 +2331,10 @@
 </div>
 <div class="sect2">
 <h3 id="_system">12.6. System</h3>
-<div class="paragraph"><p><strong>Import:</strong> <tt>sys</tt></p></div>
+<div class="paragraph"><p><strong>Import:</strong> <code>sys</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>getenv(string) → string</tt>
+<code>getenv(string) → string</code>
 </dt>
 <dd>
 <p>
@@ -2145,28 +2347,28 @@
 <div class="paragraph"><p>Consider this command line:</p></div>
 <div class="literalblock">
 <div class="content">
-<pre><tt>turbine -l -n 3 program.tcl -v -a=file1.txt file2.txt --exec="prog thing1 thing2" --help file4.txt</tt></pre>
+<pre><code>turbine -l -n 3 program.tcl -v -a=file1.txt file2.txt --exec="prog thing1 thing2" --help file4.txt</code></pre>
 </div></div>
-<div class="paragraph"><p>The arguments to <tt>program.tcl</tt> are just the tokens after <tt>program.tcl</tt></p></div>
+<div class="paragraph"><p>The arguments to <code>program.tcl</code> are just the tokens after <code>program.tcl</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>args() → string</tt>
+<code>args() → string</code>
 </dt>
 <dd>
 <p>
 Obtain all arguments as single string
 </p>
-<div class="paragraph"><p>E.g., <tt>"-v -a=file1.txt file2.txt --exec="prog thing1 thing2" --help file4.txt"</tt></p></div>
+<div class="paragraph"><p>E.g., <code>"-v -a=file1.txt file2.txt --exec="prog thing1 thing2" --help file4.txt"</code></p></div>
 </dd>
 </dl></div>
 <div class="paragraph"><p>The remaining functions are convenience functions oriented around
 Swift conventions.  Under these conventions, the example command above
-has <em>flagged</em> arguments <tt>v</tt>, <tt>a=file.txt</tt>, <tt>exec="prog thing1
-thing2"</tt>, and <tt>help</tt>. The command has <em>unflagged</em> arguments
-<tt>file2.txt</tt> and <tt>file4.txt</tt></p></div>
+has <em>flagged</em> arguments <code>v</code>, <code>a=file.txt</code>, <code>exec="prog thing1
+thing2"</code>, and <code>help</code>. The command has <em>unflagged</em> arguments
+<code>file2.txt</code> and <code>file4.txt</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>argc()</tt>
+<code>argc()</code>
 </dt>
 <dd>
 <p>
@@ -2174,64 +2376,66 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>argv(string)</tt>
+<code>argv(string, [default])</code>
 </dt>
 <dd>
 <p>
 <em>(argument-value)</em>
 Given a string, returns the flagged argument with that key:
 </p>
-<div class="paragraph"><p><tt>argv("a") → file1.txt</tt></p></div>
+<div class="paragraph"><p><code>argv("a") → file1.txt</code></p></div>
 <div class="paragraph"><p>In addition to regular run-time arguments, the STC <em>compile-time
-arguments</em> feature allows <tt>argv()</tt> arguments to be provided at compile
+arguments</em> feature allows <code>argv()</code> arguments to be provided at compile
 time.  This allows a specialized, optimized version of code to be
-compiled for a particular set of arguments.  See the <tt>-A
-<em>name</em>=<em>value</em></tt> <a href="#stc_arguments">argument</a> to <tt>stc</tt>.  Note that if the
+compiled for a particular set of arguments.  See the <code>-A
+<em>name</em>=<em>value</em></code> <a href="#stc_arguments">argument</a> to <code>stc</code>.  Note that if the
 argument is re-specified at run-time, an error will occur.</p></div>
+<div class="paragraph"><p>If argument <code>a</code> is not provided, the <code>default</code> value is used.  So:</p></div>
+<div class="paragraph"><p><code>argv("b", "f4.txt") → "f4.txt"</code></p></div>
 </dd>
 <dt class="hdlist1">
-<tt>argp(int)</tt>
+<code>argp(int)</code>
 </dt>
 <dd>
 <p>
 <em>(argument-positional)</em>
 Given an integer, returns the unflagged argument at that index:
 </p>
-<div class="paragraph"><p><tt>argp(2) → file4.txt</tt></p></div>
+<div class="paragraph"><p><code>argp(2) → file4.txt</code></p></div>
 <div class="paragraph"><p>Given 0, returns the program name,</p></div>
-<div class="paragraph"><p><tt>argp(0) → /path/to/program.tcl</tt></p></div>
+<div class="paragraph"><p><code>argp(0) → /path/to/program.tcl</code></p></div>
 </dd>
 <dt class="hdlist1">
-<tt>argv_accept(string…)</tt>
+<code>argv_accept(string…)</code>
 </dt>
 <dd>
 <p>
 If program is given flagged command line arguments not contained in given
 list, abort.
-E.g., <tt>argv_accept("x")</tt> would cause program failure at run time
+E.g., <code>argv_accept("x")</code> would cause program failure at run time
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>argv_contains(string) → boolean</tt>
+<code>argv_contains(string) → boolean</code>
 </dt>
 <dd>
 <p>
 Test if the command line contains the given flagged argument:
 </p>
-<div class="paragraph"><p><tt>argv_contains("v") → true</tt></p></div>
+<div class="paragraph"><p><code>argv_contains("v") → true</code></p></div>
 </dd>
 </dl></div>
 </div>
 <div class="sect3">
 <h4 id="_debugging">12.6.2. Debugging</h4>
-<div class="paragraph"><p><strong>Import:</strong> <tt>assert</tt></p></div>
+<div class="paragraph"><p><strong>Import:</strong> <code>assert</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>assert(boolean condition, string message)</tt>
+<code>assert(boolean condition, string message)</code>
 </dt>
 <dd>
 <p>
-If condition is false, report <tt>message</tt> and exit immediately.
+If condition is false, report <code>message</code> and exit immediately.
 </p>
 </dd>
 </dl></div>
@@ -2240,7 +2444,7 @@
 <h4 id="Turbine_information">12.6.3. Turbine information</h4>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>adlb_servers()    → int</tt>
+<code>adlb_servers()    → int</code>
 </dt>
 <dd>
 <p>
@@ -2248,7 +2452,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>turbine_workers() → int</tt>
+<code>turbine_workers() → int</code>
 </dt>
 <dd>
 <p>
@@ -2262,7 +2466,7 @@
 <h3 id="_files_2">12.7. Files</h3>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>filename(file) → string</tt>
+<code>filename(file) → string</code>
 </dt>
 <dd>
 <p>
@@ -2270,45 +2474,45 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>input(string) → file</tt>
+<code>input(string) → file</code>
 </dt>
 <dd>
 <p>
-Obtain a <tt>file</tt>.  At run time, the
+Obtain a <code>file</code>.  At run time, the
 filesystem is checked for the given file name
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>input_file(string) → file</tt>
+<code>input_file(string) → file</code>
 </dt>
 <dd>
 <p>
-Alias for <tt>input()</tt>
+Alias for <code>input()</code>
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>input_url(string) → file</tt>
+<code>input_url(string) → file</code>
 </dt>
 <dd>
 <p>
-Obtain a <tt>file</tt>.  Some
+Obtain a <code>file</code>.  Some
 automatic operations and optimizations are disabled
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>urlname(file) → string</tt>
+<code>urlname(file) → string</code>
 </dt>
 <dd>
 <p>
 Obtain the name of a file created with
-<tt>input_url()</tt>
+<code>input_url()</code>
 </p>
 </dd>
 </dl></div>
-<div class="paragraph"><p><strong>Import:</strong> <tt>files</tt></p></div>
+<div class="paragraph"><p><strong>Import:</strong> <code>files</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>read(file) → string</tt>
+<code>read(file) → string</code>
 </dt>
 <dd>
 <p>
@@ -2316,7 +2520,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>write(string) → file</tt>
+<code>write(string) → file</code>
 </dt>
 <dd>
 <p>
@@ -2324,17 +2528,17 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>file_lines(file) → string[]</tt>
+<code>file_lines(file) → string[]</code>
 </dt>
 <dd>
 <p>
 Reads the whole file, returning each line as a separate entry in the
-output array.  Comments with <tt>#</tt> are excised, leading and trailing
+output array.  Comments with <code>#</code> are excised, leading and trailing
 whitespace is trimmed, and blank lines are omitted.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>glob(string) → file[]</tt>
+<code>glob(string) → file[]</code>
 </dt>
 <dd>
 <p>
@@ -2344,27 +2548,27 @@
 <div class="ulist"><ul>
 <li>
 <p>
-<tt>*</tt>: any character sequence (including the zero-length sequence)
+<code>*</code>: any character sequence (including the zero-length sequence)
 </p>
 </li>
 <li>
 <p>
-<tt>?</tt>: any character
+<code>?</code>: any character
 </p>
 </li>
 <li>
 <p>
-<tt>[chars]</tt>: any of the given characters
+<code>[chars]</code>: any of the given characters
 </p>
 </li>
 <li>
 <p>
-<tt>\x</tt>: character <tt>x</tt>
+<code>\x</code>: character <code>x</code>
 </p>
 </li>
 <li>
 <p>
-<tt>{a,b,c,…}</tt> any of <tt>a</tt>, <tt>b</tt>, <tt>c</tt>, etc.
+<code>{a,b,c,…}</code> any of <code>a</code>, <code>b</code>, <code>c</code>, etc.
 </p>
 </li>
 </ul></div>
@@ -2373,10 +2577,10 @@
 </div>
 <div class="sect2">
 <h3 id="_blobs_2">12.8. Blobs</h3>
-<div class="paragraph"><p><strong>Import:</strong> <tt>blob</tt></p></div>
+<div class="paragraph"><p><strong>Import:</strong> <code>blob</code></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>blob_size(blob) → int</tt>
+<code>blob_size(blob) → int</code>
 </dt>
 <dd>
 <p>
@@ -2384,7 +2588,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>blob_null() → blob</tt>
+<code>blob_null() → blob</code>
 </dt>
 <dd>
 <p>
@@ -2392,7 +2596,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>blob_from_string(string) → blob</tt>
+<code>blob_from_string(string) → blob</code>
 </dt>
 <dd>
 <p>
@@ -2400,7 +2604,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>string_from_blob(blob) → string</tt>
+<code>string_from_blob(blob) → string</code>
 </dt>
 <dd>
 <p>
@@ -2410,7 +2614,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>blob_from_floats(float[]) → blob</tt>
+<code>blob_from_floats(float[]) → blob</code>
 </dt>
 <dd>
 <p>
@@ -2420,7 +2624,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>blob_from_floats(blob) → float[]</tt>
+<code>blob_from_floats(blob) → float[]</code>
 </dt>
 <dd>
 <p>
@@ -2430,7 +2634,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>blob_from_ints(int i[]) → blob</tt>
+<code>blob_from_ints(int i[]) → blob</code>
 </dt>
 <dd>
 <p>
@@ -2440,7 +2644,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>blob_from_file(file) → blob</tt>
+<code>blob_from_file(file) → blob</code>
 </dt>
 <dd>
 <p>
@@ -2455,16 +2659,16 @@
 <div class="paragraph"><p>See the section about <a href="#location">location</a>.</p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>location_from_rank(int) → location</tt>
+<code>location_from_rank(int) → location</code>
 </dt>
 <dd>
 <p>
 Convert the rank integer to a
-<tt>location</tt> variable compatible with <tt>@location</tt>.
+<code>location</code> variable compatible with <code>@location</code>.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>random_worker() → location</tt>
+<code>random_worker() → location</code>
 </dt>
 <dd>
 <p>
@@ -2472,7 +2676,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>hostmap_list() → string[]</tt>
+<code>hostmap_list() → string[]</code>
 </dt>
 <dd>
 <p>
@@ -2480,7 +2684,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>hostmap_one(string) → location</tt>
+<code>hostmap_one(string) → location</code>
 </dt>
 <dd>
 <p>
@@ -2489,7 +2693,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>hostmap_one_worker(string) → location</tt>
+<code>hostmap_one_worker(string) → location</code>
 </dt>
 <dd>
 <p>
@@ -2528,7 +2732,7 @@
 <li>
 <p>
 The requisite files required to build a Tcl package
-   (e.g <tt>pkgIndex.tcl</tt>)
+   (e.g <code>pkgIndex.tcl</code>)
 </p>
 </li>
 <li>
@@ -2544,71 +2748,71 @@
 string:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>() my_output (string s) "turbine" "0.0" [
+<pre><code>() my_output (string s) "turbine" "0.0" [
   "puts <<s>>"
 ];
 
 main {
   my_output("HELLO");
-}</tt></pre>
+}</code></pre>
 </div></div>
-<div class="paragraph"><p><tt>puts</tt> is the Tcl builtin for screen output, like <tt>puts()</tt> in C.</p></div>
+<div class="paragraph"><p><code>puts</code> is the Tcl builtin for screen output, like <code>puts()</code> in C.</p></div>
 <div class="paragraph"><p>The above definition has, from left to right, the output arguments
 (none), the name of the new Swift function, input arguments, the name
 of the Tcl package containing the file (here, none, so we use
-<tt>turbine</tt>), and the minimum version of that package (here, 0.0).</p></div>
+<code>turbine</code>), and the minimum version of that package (here, 0.0).</p></div>
 <div class="paragraph"><p>We tell the compiler how to call our Tcl function using inline
-Tcl code as a template with variable names surrounded by <tt><< >></tt>
+Tcl code as a template with variable names surrounded by <code><< >></code>
 indicating where variables should be substituted.</p></div>
 </div>
 <div class="sect3">
 <h4 id="_simple_tcl_package_example">13.1.2. Simple Tcl package example</h4>
 <div class="paragraph"><p>In this first example we will implement a trivial Tcl extension function
 that doubles an integer.  Here is the Tcl code that will go in
-<tt>myextension.tcl</tt>:</p></div>
+<code>myextension.tcl</code>:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>namespace eval myextension {
+<pre><code>namespace eval myextension {
   proc double { x } {
     return [ expr $x * 2 ]
   }
-}</tt></pre>
+}</code></pre>
 </div></div>
-<div class="paragraph"><p>Here is the Swift function definition that will go in <tt>myextension.swift</tt>:</p></div>
+<div class="paragraph"><p>Here is the Swift function definition that will go in <code>myextension.swift</code>:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>@pure
+<pre><code>@pure
 (int o) double (int i) "myextension" "0.0.1" [
   "set <<o>> [ myextension::double <<i>> ]"
-];</tt></pre>
+];</code></pre>
 </div></div>
 <div class="paragraph"><p>We can also tell the Swift compiler a little about the function so
-that it can better optimize your programs.  For example, <tt>double</tt> has
+that it can better optimize your programs.  For example, <code>double</code> has
 no side-effects and produces the same result each time for the same
-arguments (i.e. is deterministic), so we can annotate it as a <tt>@pure</tt>
+arguments (i.e. is deterministic), so we can annotate it as a <code>@pure</code>
 function.</p></div>
 <div class="paragraph"><p>If your function has a long running time and should be dispatched to a
 worker process for execution, then you need to label the function as a
 worker function, for example:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>@dispatch=WORKER
+<pre><code>@dispatch=WORKER
 (int o) process (int i) "pkg" "0.0.1" [
   "set <<o>> [ pkg::process <<i>> ]"
-];</tt></pre>
+];</code></pre>
 </div></div>
 <div class="paragraph"><p>Tcl code is conventionally placed into <em>packages</em>.  In this example,
-<tt>myextension.tcl</tt> would be part of the package.</p></div>
+<code>myextension.tcl</code> would be part of the package.</p></div>
 <div class="paragraph"><p>More information about building Tcl packages may be found
 <a href="http://www.tcl.tk/man/tcl8.5/TclCmd/pkgMkIndex.htm">here</a>.  Ultimately,
-you produce a <tt>pkgIndex.tcl</tt> file that contains necessary information
+you produce a <code>pkgIndex.tcl</code> file that contains necessary information
 about the package.</p></div>
 <div class="paragraph"><p>To ensure that Swift can find your package, use</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>stc -r <package directory> ...</tt></pre>
+<pre><code>stc -r <package directory> ...</code></pre>
 </div></div>
-<div class="paragraph"><p>or set <tt>TURBINE_USER_LIB</tt> at run time.</p></div>
+<div class="paragraph"><p>or set <code>SWIFT_PATH</code> at run time.</p></div>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2625,7 +2829,7 @@
 <div class="ulist"><ul>
 <li>
 <p>
-<tt>int</tt>/<tt>float</tt>/<tt>string</tt>/<tt>bool</tt> are converted to the standard
+<code>int</code>/<code>float</code>/<code>string</code>/<code>bool</code> are converted to the standard
   Tcl representations.
 </p>
 </li>
@@ -2680,13 +2884,13 @@
 directly passed references to data in Swift’s global data store.  In
 this case your function must manually retrieve/store data from/to the
 global distributed data store.  In this case, you do not use the STC
-Tcl argument substitution syntax (<tt><<<tt>i</tt>>></tt>).</p></div>
+Tcl argument substitution syntax (<code><<<code>i</code>>></code>).</p></div>
 <div class="paragraph"><p>Consider this custom Swift→Tcl binding:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>(int o) complex_function (int arr[]) "pkg" "0.0.1" "complex";</tt></pre>
+<pre><code>(int o) complex_function (int arr[]) "pkg" "0.0.1" "complex";</code></pre>
 </div></div>
-<div class="paragraph"><p>This function jumps into Tcl function <tt>complex</tt>, which must
+<div class="paragraph"><p>This function jumps into Tcl function <code>complex</code>, which must
 perform its own data dependency management.</p></div>
 <div class="paragraph"><p>See the <a href="leaf.html">Swift/T Leaf Function Guide</a> for more
 information about this process.</p></div>
@@ -2703,7 +2907,7 @@
 <p>
 The standard components of a Swift function declaration: input and
     output arguments and the function name.  Note that the output
-    variable types are restricted to individual <tt>file</tt>s.
+    variable types are restricted to individual <code>file</code>s.
 </p>
 </li>
 <li>
@@ -2740,13 +2944,13 @@
 </li>
 </ul></div>
 <div class="paragraph"><p>Standard input, output and error can be redirected to files via
-<tt>@stdin=</tt>, <tt>@stdout=</tt>, and <tt>@stderr=</tt> expressions.  If used, these should point
-to a <tt>file</tt>.</p></div>
+<code>@stdin=</code>, <code>@stdout=</code>, and <code>@stderr=</code> expressions.  If used, these should point
+to a <code>file</code>.</p></div>
 <div class="paragraph"><p>Here is an example of an app function that joins multiple files
-with the <tt>cat</tt> utility:</p></div>
+with the <code>cat</code> utility:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>import files;
+<pre><code>import files;
 
 app (file out) cat (file inputs[]) {
   "/bin/cat" inputs @stdout=out
@@ -2754,13 +2958,13 @@
 
 main {
   file joined <"joined.txt"> = cat(glob("*.txt"));
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>Here is an example of an app function that sleeps for an arbitrary
 amount of time:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>app (void signal) sleep (int secs) {
+<pre><code>app (void signal) sleep (int secs) {
   "/bin/sleep" secs
 }
 
@@ -2772,7 +2976,7 @@
       trace("Slept " + fromint(time));
     }
   }
-}</tt></pre>
+}</code></pre>
 </div></div>
 </div>
 <div class="sect2">
@@ -2786,30 +2990,30 @@
 <div class="paragraph"><p>Consider the following Swift script:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>import io;
+<pre><code>import io;
 import python;
 
 main {
   i = python("print(\"python works\")\nrepr(2+2)");
   printf("i: %s", i);
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>This simply evaluates the Python code line by line. The last line must
 return a Python string to Swift, in this case, the Python string
-<tt>'4'</tt>.  The expected output is shown below:</p></div>
+<code>'4'</code>.  The expected output is shown below:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>python works
-i: 4</tt></pre>
+<pre><code>python works
+i: 4</code></pre>
 </div></div>
 <div class="paragraph"><p>Swift multi-line strings may be used to enter more complex Python code
-without the explicit use of <tt>\n</tt>.</p></div>
+without the explicit use of <code>\n</code>.</p></div>
 <div class="paragraph"><p>Additionally, you can call Python libraries such as
 <a href="http://www.numpy.org">Numpy</a> if available on your system.  The
 following code adds matrices <em>I</em><sub>3</sub> + <em>I</em><sub>3</sub> using Numpy arrays.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>import io;
+<pre><code>import io;
 import python;
 import string;
 
@@ -2839,17 +3043,17 @@
   matrix A2 = eye(3);
   matrix sum = add(A1, A2);
   printf("2*eye(3)=%s", sum);
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>An Python script template is created that imports Numpy and performs
 some simple calculations.  This code is represented in a Swift string.
-The template is filled in by the Swift call to <tt>sprintf()</tt>.  Then, the
+The template is filled in by the Swift call to <code>sprintf()</code>.  Then, the
 code is passed to Python for evaluation.  The output is:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>2*eye(3)=array([[ 2.,  0.,  0.],
+<pre><code>2*eye(3)=array([[ 2.,  0.,  0.],
                 [ 0.,  2.,  0.],
-                [ 0.,  0.,  2.]])</tt></pre>
+                [ 0.,  0.,  2.]])</code></pre>
 </div></div>
 <div class="admonitionblock">
 <table><tr>
@@ -2857,11 +3061,11 @@
 <div class="title">Note</div>
 </td>
 <td class="content">To use this, Turbine must be configured with Python enabled
- before compiling, by setting <tt>ENABLE_PYTHON=1</tt>
- in <tt>exm-settings.sh</tt>, or by providing the <tt>--enable-python</tt> argument
- to <tt>configure</tt>.  This feature is implemented by linking to Python
+ before compiling, by setting <code>ENABLE_PYTHON=1</code>
+ in <code>exm-settings.sh</code>, or by providing the <code>--enable-python</code> argument
+ to <code>configure</code>.  This feature is implemented by linking to Python
  as a shared library, enabling better performance than calling the
- <tt>python</tt> program (which may be done by using a normal Swift
+ <code>python</code> program (which may be done by using a normal Swift
  <a href="#app_functions">app function</a>).  Error messages for minor coding
  mistakes may be badly mangled and refer to missing Python symbols-
  refer to the first error in the Python stack trace.</td>
@@ -2873,7 +3077,7 @@
 <div class="paragraph"><p>Consider the following Swift script:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>import io;
+<pre><code>import io;
 import string;
 import R;
 
@@ -2890,33 +3094,33 @@
   code = sprintf(template, 4);
   s = R(code);
   printf("the answer was: %i", s);
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>An <a href="http://www.r-project.org">R language</a> script template is placed in a
 Swift string.  The template is filled in with the value 4 by the Swift
-call to <tt>sprintf()</tt> (note the <tt>%i</tt> conversion specifier).  Then, the
+call to <code>sprintf()</code> (note the <code>%i</code> conversion specifier).  Then, the
 code is passed to R for evaluation.  The output is:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>the answer is:  104
-the answer was: 104</tt></pre>
+<pre><code>the answer is:  104
+the answer was: 104</code></pre>
 </div></div>
-<div class="paragraph"><p>As coded here, both R and Swift report the value of <tt>a</tt>.</p></div>
+<div class="paragraph"><p>As coded here, both R and Swift report the value of <code>a</code>.</p></div>
 <div class="admonitionblock">
 <table><tr>
 <td class="icon">
 <div class="title">Note</div>
 </td>
 <td class="content">To use this, Turbine must be configured with R enabled
- before compiling, by setting <tt>ENABLE_R=1</tt>
- in <tt>exm-settings.sh</tt>, or by providing the <tt>--enable-r</tt> argument
- to <tt>configure</tt>.  This feature is implemented by linking to R as a shared
- library, enabling better performance than calling the <tt>R</tt> program
- (which may be done by using a normal Swift <a href="#app_functions">app  function</a>).  When installing R, be sure to include the <tt>devel</tt>
+ before compiling, by setting <code>ENABLE_R=1</code>
+ in <code>exm-settings.sh</code>, or by providing the <code>--enable-r</code> argument
+ to <code>configure</code>.  This feature is implemented by linking to R as a shared
+ library, enabling better performance than calling the <code>R</code> program
+ (which may be done by using a normal Swift <a href="#app_functions">app  function</a>).  When installing R, be sure to include the <code>devel</code>
  package.  When installing R from source, configure with
- <tt>--enable-R-shlib</tt>. You may need to set the environment variable
- <tt>R_HOME</tt> to the directory containing the R installation.  For the APT
- package, this is <tt>/usr/lib/R</tt>.</td>
+ <code>--enable-R-shlib</code>. You may need to set the environment variable
+ <code>R_HOME</code> to the directory containing the R installation.  For the APT
+ package, this is <code>/usr/lib/R</code>.</td>
 </tr></table>
 </div>
 </div>
@@ -2925,7 +3129,7 @@
 <div class="paragraph"><p>Consider the following Swift script:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>import io;
+<pre><code>import io;
 import julia;
 import string;
 import sys;
@@ -2949,10 +3153,10 @@
   wait (s1, s2, s3) {
     printf("duration: %0.2f", clock()-start);
   }
-}</tt></pre>
+}</code></pre>
 </div></div>
 <div class="paragraph"><p>In this example, a <a href="http://julialang.org">Julia</a> script is placed in
-string <tt>f</tt>.  It is parameterized three times by <tt>sprintf()</tt>.  Each
+string <code>f</code>.  It is parameterized three times by <code>sprintf()</code>.  Each
 Julia invocation runs concurrently (if enough processes are provided
 to Swift/T).</p></div>
 <div class="admonitionblock">
@@ -2961,10 +3165,10 @@
 <div class="title">Note</div>
 </td>
 <td class="content">To use this, Turbine must be configured with Julia enabled
- before compiling, by  providing the <tt>--enable-julia</tt> argument
- to <tt>configure</tt>.  This feature is implemented by linking to Julia
+ before compiling, by  providing the <code>--enable-julia</code> argument
+ to <code>configure</code>.  This feature is implemented by linking to Julia
  as a shared library, enabling better performance than calling the
- <tt>julia</tt> program (which may be done by using a normal Swift
+ <code>julia</code> program (which may be done by using a normal Swift
  <a href="#app_functions">app function</a>).</td>
 </tr></table>
 </div>
@@ -2980,31 +3184,31 @@
 <div class="sect2">
 <h3 id="_priority">14.1. Priority</h3>
 <div class="paragraph"><p>Leaf tasks resulting from Swift dataflow may be prioritized by using
-the <tt>@prio</tt> annotation:</p></div>
+the <code>@prio</code> annotation:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>foreach i in [0:n-1] {
+<pre><code>foreach i in [0:n-1] {
   @prio=i f(i);         // or
   int j = @prio=i f(i);
-}</tt></pre>
+}</code></pre>
 </div></div>
-<div class="paragraph"><p>In this case, <tt>f()</tt> will operate on higher values of <tt>i</tt> first.
+<div class="paragraph"><p>In this case, <code>f()</code> will operate on higher values of <code>i</code> first.
 Priority is best-effort; it is local to the ADLB server.  The values
-of <tt>i</tt> may be any Swift integer.</p></div>
+of <code>i</code> may be any Swift integer.</p></div>
 <div class="paragraph"><p>This annotation is applied to the leaf task call.</p></div>
 </div>
 <div class="sect2">
 <h3 id="location">14.2. Location</h3>
 <div class="paragraph"><p>Leaf tasks resulting from Swift dataflow may be assigned to a given
-processor by using the <tt>@location</tt> annotation:</p></div>
+processor by using the <code>@location</code> annotation:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>foreach i in [0:n-1] {
+<pre><code>foreach i in [0:n-1] {
   location L = location_from_rank(i);
   @location=L f(i);
-}</tt></pre>
+}</code></pre>
 </div></div>
-<div class="paragraph"><p>In this case, each <tt>f(i)</tt> will execute on a different worker.</p></div>
+<div class="paragraph"><p>In this case, each <code>f(i)</code> will execute on a different worker.</p></div>
 <div class="paragraph"><p>This annotation is applied to the leaf task call.</p></div>
 <div class="sect3">
 <h4 id="_hostmap">14.2.1. Hostmap</h4>
@@ -3018,16 +3222,16 @@
 </div>
 <div class="sect2">
 <h3 id="_dispatch">14.3. Dispatch</h3>
-<div class="paragraph"><p>This simply dispatches tasks to the given process type: <tt>WORKER</tt> or
-<tt>SERVER</tt>. By default, work executes on a <tt>SERVER</tt>.</p></div>
+<div class="paragraph"><p>This simply dispatches tasks to the given process type: <code>WORKER</code> or
+<code>SERVER</code>. By default, work executes on a <code>SERVER</code>.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>@dispatch=WORKER
+<pre><code>@dispatch=WORKER
 (int o) process (int i) "pkg" "0.0.1" [
   "set <<o>> [ pkg::process <<i>> ]"
-];</tt></pre>
+];</code></pre>
 </div></div>
-<div class="paragraph"><p>Swift/T builtin functions (<tt>strcat()</tt>, arithmetic, etc.) are typically
+<div class="paragraph"><p>Swift/T builtin functions (<code>strcat()</code>, arithmetic, etc.) are typically
 implemented in this way as tasks that execute on the server.  User
 work should be performed on workers to keep servers free to process
 dataflow.</p></div>
@@ -3040,13 +3244,13 @@
 <div class="sectionbody">
 <div class="paragraph"><p>STC performs a range of compiler optimizations that can significantly
 speed up most Swift programs.  The optimization level can be controlled
-by the <tt>-O</tt> command line option.  The default optimization
-level <tt>-O2</tt>, or the increased optimization level <tt>-O3</tt> are usually
-the best choices.  Some applications benefit markedly from <tt>-O3</tt>,
+by the <code>-O</code> command line option.  The default optimization
+level <code>-O2</code>, or the increased optimization level <code>-O3</code> are usually
+the best choices.  Some applications benefit markedly from <code>-O3</code>,
 while others do not, and compile times can increase slightly.</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt># No optimizations at all (not recommended)
+<pre><code># No optimizations at all (not recommended)
 stc -O0 example.swift example.tcl
 
 # Basic optimizations (not recommended)
@@ -3058,15 +3262,15 @@
 stc -O2 example.swift example.tcl
 
 # All optimizations (also recommended)
-stc -O3 example.swift example.tcl</tt></pre>
+stc -O3 example.swift example.tcl</code></pre>
 </div></div>
-<div class="paragraph"><p>Individual optimizations can be toggled on using <tt>-T <opt name></tt>
-or off with <tt>-t <opt name></tt>, but this typically is only useful for
+<div class="paragraph"><p>Individual optimizations can be toggled on using <code>-T <opt name></code>
+or off with <code>-t <opt name></code>, but this typically is only useful for
 debugging.  You can find an up-to-date list of optimizations in
 the stc command-line help:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>stc -h</tt></pre>
+<pre><code>stc -h</code></pre>
 </div></div>
 </div>
 </div>
@@ -3112,7 +3316,7 @@
 <li>
 <p>
 The available concurrency in the Swift logic.  Sequential
-  dependencies will be evaluated sequentially.  <tt>foreach</tt> loops and
+  dependencies will be evaluated sequentially.  <code>foreach</code> loops and
   branching function calls may be evaluated concurrently
 </p>
 </li>
@@ -3134,24 +3338,24 @@
 <div class="sect2">
 <h3 id="_invocation">16.3. Invocation</h3>
 <div class="paragraph"><p>The form of a Turbine invocation for STC-generated
-<tt>program.tcl</tt> is:</p></div>
+<code>program.tcl</code> is:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>turbine <turbine arguments> <program.tcl> <program arguments></tt></pre>
+<pre><code>turbine <turbine arguments> <program.tcl> <program arguments></code></pre>
 </div></div>
 <div class="paragraph"><p>The program arguments are available to Swift (<a href="#argv">[argv]</a>).</p></div>
 <div class="paragraph"><p>Turbine accepts the following arguments:</p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>-f <file></tt>
+<code>-f <file></code>
 </dt>
 <dd>
 <p>
-Provide a machine file to <tt>mpiexec</tt>
+Provide a machine file to <code>mpiexec</code>
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-h</tt>
+<code>-h</code>
 </dt>
 <dd>
 <p>
@@ -3159,15 +3363,15 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-l</tt>
+<code>-l</code>
 </dt>
 <dd>
 <p>
-Enable <tt>mpiexec -l</tt> ranked output formatting
+Enable <code>mpiexec -l</code> ranked output formatting
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-n <procs></tt>
+<code>-n <procs></code>
 </dt>
 <dd>
 <p>
@@ -3175,7 +3379,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-v</tt>
+<code>-v</code>
 </dt>
 <dd>
 <p>
@@ -3183,7 +3387,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-V</tt>
+<code>-V</code>
 </dt>
 <dd>
 <p>
@@ -3191,7 +3395,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-x</tt>
+<code>-x</code>
 </dt>
 <dd>
 <p>
@@ -3200,7 +3404,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-X</tt>
+<code>-X</code>
 </dt>
 <dd>
 <p>
@@ -3213,7 +3417,7 @@
 environment variables:</p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>ADLB_SERVERS</tt>
+<code>ADLB_SERVERS</code>
 </dt>
 <dd>
 <p>
@@ -3225,46 +3429,66 @@
 Swift (<a href="#Turbine_information">Turbine information</a>).</p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>TURBINE_LOG=0</tt>
+<code>TURBINE_LOG=0</code>
 </dt>
 <dd>
 <p>
-Disable logging. <tt>TURBINE_LOG=1</tt> or unset enables
+Disable logging. <code>TURBINE_LOG=1</code> or unset enables
 logging, assuming logging was not disabled at configure time.  Logging
 goes to tandard output by default.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>TURBINE_LOG_FILE=<file></tt>
+<code>SWIFT_PATH</code>
 </dt>
+<dt class="hdlist1">
+<code>TURBINE_PATH</code>
+</dt>
 <dd>
 <p>
+Space-separated list of Swift/T extension (Tcl) package locations.
+Either variable name may be used.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>TURBINE_USER_LIB</code>
+</dt>
+<dd>
+<p>
+Alias for <code>SWIFT_PATH</code>.  Deprecated but retained for compatibility.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>TURBINE_LOG_FILE=<file></code>
+</dt>
+<dd>
+<p>
 Set log file location.  Defaults to
 standard output.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>TURBINE_LOG_RANKS=1</tt>
+<code>TURBINE_LOG_RANKS=1</code>
 </dt>
 <dd>
 <p>
-Using <tt>turbine -l</tt> or equivalent prepend the
+Using <code>turbine -l</code> or equivalent prepend the
 MPI rank number to each output line.  This works with typical MPICH or
 OpenMPI systems, however, this is not available on some systems, so
 set this to emulate the rank output on such systems.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>ADLB_PRINT_TIME=1</tt>
+<code>ADLB_PRINT_TIME=1</code>
 </dt>
 <dd>
 <p>
 Enable a short report of total elapsed time (via
-<tt>MPI_Wtime()</tt>)
+<code>MPI_Wtime()</code>)
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>ADLB_PERF_COUNTERS=1</tt>
+<code>ADLB_PERF_COUNTERS=1</code>
 </dt>
 <dd>
 <p>
@@ -3274,7 +3498,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>ADLB_EXHAUST_TIME</tt>
+<code>ADLB_EXHAUST_TIME</code>
 </dt>
 <dd>
 <p>
@@ -3286,7 +3510,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>ADLB_REPORT_LEAKS=1</tt>
+<code>ADLB_REPORT_LEAKS=1</code>
 </dt>
 <dd>
 <p>
@@ -3295,10 +3519,10 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>ADLB_TRACE=true</tt>
+<code>ADLB_TRACE=true</code>
 </dt>
 <dt class="hdlist1">
-<tt>ADLB_DEBUG=true</tt>
+<code>ADLB_DEBUG=true</code>
 </dt>
 <dd>
 <p>
@@ -3307,33 +3531,33 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>TURBINE_LAUNCH_OPTIONS</tt>
+<code>TURBINE_LAUNCH_OPTIONS</code>
 </dt>
 <dd>
 <p>
-Provide other arguments to <tt>mpiexec</tt>, such as a machine file, etc.
+Provide other arguments to <code>mpiexec</code>, such as a machine file, etc.
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>TURBINE_SRAND</tt>
+<code>TURBINE_SRAND</code>
 </dt>
 <dd>
 <p>
 If unset or empty, the random number generator seed will be set to the
 process rank for each process, giving reproducible results.  If set to
-an integer <tt>seed</tt>, the random number generator seed for each process
-will be set to <tt>seed</tt> + <tt>rank</tt>.
+an integer <code>seed</code>, the random number generator seed for each process
+will be set to <code>seed</code> + <code>rank</code>.
 </p>
 <div class="paragraph"><p>For non-reproducible random results, use the following shell commands:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>export TURBINE_SRAND=$( date +%s )
-turbine ...</tt></pre>
+<pre><code>export TURBINE_SRAND=$( date +%s )
+turbine ...</code></pre>
 </div></div>
 <div class="paragraph"><p>The seed is recorded in the log.</p></div>
 </dd>
 <dt class="hdlist1">
-<tt>ADLB_DEBUG_RANKS=1</tt>
+<code>ADLB_DEBUG_RANKS=1</code>
 </dt>
 <dd>
 <p>
@@ -3346,7 +3570,7 @@
 <div class="paragraph"><p><a id="env_hostmap_debug"></a></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>ADLB_DEBUG_HOSTMAP=1</tt>
+<code>ADLB_DEBUG_HOSTMAP=1</code>
 </dt>
 <dd>
 <p>
@@ -3358,7 +3582,7 @@
 <div class="paragraph"><p><a id="env_hostmap_disable"></a></p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>ADLB_DISABLE_HOSTMAP=1</tt>
+<code>ADLB_DISABLE_HOSTMAP=1</code>
 </dt>
 <dd>
 <p>
@@ -3367,7 +3591,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>VALGRIND</tt>
+<code>VALGRIND</code>
 </dt>
 <dd>
 <p>
@@ -3375,7 +3599,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>GDB_RANK</tt>
+<code>GDB_RANK</code>
 </dt>
 <dd>
 <p>
@@ -3390,10 +3614,10 @@
 on more complex systems.</p></div>
 <div class="sect3">
 <h4 id="_build_troubleshooting">16.4.1. Build troubleshooting</h4>
-<div class="paragraph"><p>If <tt>exm-setup.zsh</tt> does not succeed, you may need to change how it
+<div class="paragraph"><p>If <code>exm-setup.zsh</code> does not succeed, you may need to change how it
 tries to configure and compile Swift/T.</p></div>
 <div class="paragraph"><p>Troubleshooting a build problem can require a few steps.  The first
-step is to determine why the build failed.  <tt>exm-setup.zsh</tt> will usually
+step is to determine why the build failed.  <code>exm-setup.zsh</code> will usually
 report the step at which configuration failed.  For example, if it was unable
 to locate a valid Tcl install, it will report this.  Then  you can try
 these steps to resolve the problem:</p></div>
@@ -3406,15 +3630,15 @@
 </li>
 <li>
 <p>
-Inspect <tt>exm-settings.sh</tt> settings related to the reported problem.
+Inspect <code>exm-settings.sh</code> settings related to the reported problem.
   For example, if locating a Tcl install failed, setting
-  the <tt>TCL_INSTALL</tt> and <tt>TCL_VERSION</tt> variables to the correct location
+  the <code>TCL_INSTALL</code> and <code>TCL_VERSION</code> variables to the correct location
   and version may help.
 </p>
 </li>
 <li>
 <p>
-If the options in <tt>exm-settings.sh</tt> do not give sufficient control to
+If the options in <code>exm-settings.sh</code> do not give sufficient control to
   fix the problem, you may need to manually configure some components
   of Swift/T, as described in the next section.
 </p>
@@ -3423,17 +3647,17 @@
 </div>
 <div class="sect3">
 <h4 id="Manual_build_configuration">16.4.2. Manual configuration</h4>
-<div class="paragraph"><p><tt>exm-setup.zsh</tt> and <tt>exm-settings.sh</tt> provide a convenient way to install
+<div class="paragraph"><p><code>exm-setup.zsh</code> and <code>exm-settings.sh</code> provide a convenient way to install
 Swift/T. However, this method does not allow full control over
 the configuration.  Swift/T is built with standard Ant (Java) and
 Autotools/Makefile (C,Tcl) techniques.  You can more directly control
-the configuration when building through the arguments to <tt>ant</tt> or
-<tt>configure</tt>.</p></div>
-<div class="paragraph"><p>To perform the installation using <tt>configure</tt>/<tt>make</tt>, simply untar the
+the configuration when building through the arguments to <code>ant</code> or
+<code>configure</code>.</p></div>
+<div class="paragraph"><p>To perform the installation using <code>configure</code>/<code>make</code>, simply untar the
 distribution package and do:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>cd c-utils
+<pre><code>cd c-utils
 ./configure ...
 make install
 
@@ -3446,12 +3670,12 @@
 make install
 
 cd ../stc
-ant install -Ddist.dir=... -Dturbine.home=...</tt></pre>
+ant install -Ddist.dir=... -Dturbine.home=...</code></pre>
 </div></div>
 <div class="ulist"><ul>
 <li>
 <p>
-You may use <tt>./configure --help</tt> and the
+You may use <code>./configure --help</code> and the
   <a href="turbine-sites.html">Sites Guide</a> for further options.
 </p>
 </li>
@@ -3461,21 +3685,21 @@
 <h4 id="_non_standard_mpi_locations">16.4.3. Non-standard MPI locations</h4>
 <div class="paragraph"><p>Sometimes simply specifying the MPI directory is not enough to
 configure Swift/T.</p></div>
-<div class="paragraph"><p>You can modify these settings in <tt>exm-settings.sh</tt> to more precisely
+<div class="paragraph"><p>You can modify these settings in <code>exm-settings.sh</code> to more precisely
 define locations of MPI resources:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>EXM_CUSTOM_MPI=1
+<pre><code>EXM_CUSTOM_MPI=1
 MPI_INCLUDE=/path/to/mpi.h/include
 MPI_LIB_DIR=/path/to/mpi_lib/lib
-MPI_LIB_NAME=funny.mpi.a</tt></pre>
+MPI_LIB_NAME=funny.mpi.a</code></pre>
 </div></div>
 <div class="paragraph"><p>If you are following the manual build process, configure Turbine with:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt> --enable-custom --with-mpi-include=/path/to/mpi.h/include
+<pre><code> --enable-custom --with-mpi-include=/path/to/mpi.h/include
                  --with-mpi-lib-dir=/path/to/mpi_lib/lib
-                 --with-mpi-lib-name=funny.mpi.a</tt></pre>
+                 --with-mpi-lib-name=funny.mpi.a</code></pre>
 </div></div>
 </div>
 </div>
@@ -3494,21 +3718,21 @@
 <div class="ulist"><ul>
 <li>
 <p>
-Configure c-utils with <tt>--disable-log</tt>
+Configure c-utils with <code>--disable-log</code>
 </p>
 </li>
 </ul></div>
 </li>
 <li>
 <p>
-Specify <tt>EXM_OPT_BUILD=1</tt> in <tt>exm-settings.sh</tt> or configure everything
-    with <tt>--enable-fast</tt>.  This disables assertions and other checks
+Specify <code>EXM_OPT_BUILD=1</code> in <code>exm-settings.sh</code> or configure everything
+    with <code>--enable-fast</code>.  This disables assertions and other checks
 </p>
 </li>
 <li>
 <p>
 When making performance measurements, always subtract 0.1 seconds
-   (or the value of <tt>ADLB_EXHAUST_TIME</tt>) from the Turbine run time
+   (or the value of <code>ADLB_EXHAUST_TIME</code>) from the Turbine run time
    due to the ADLB shutdown protocol, which does not start until the
    system is idle for that amount of time.
 </p>
@@ -3524,7 +3748,7 @@
 <li>
 <p>
 use the turbine_sh launcher in place of tclsh in submit script,
-   or by specifying the <tt>-x</tt> argument to <tt>turbine</tt>
+   or by specifying the <code>-x</code> argument to <code>turbine</code>
 </p>
 </li>
 <li>
@@ -3545,7 +3769,7 @@
 static linking.  If not, it is also possible to build an executable with
 a subset of Tcl scripts and code linked in, providing some performance
 benefits.</p></div>
-<div class="paragraph"><p>The provided <tt>mkstatic.tcl</tt> utility can produce a C source
+<div class="paragraph"><p>The provided <code>mkstatic.tcl</code> utility can produce a C source
 file with Tcl scripts bundled in, which can then be compiled and linked
 with a C compiler.  This is a multi-step process that can be automated
 as part of your build process.</p></div>
@@ -3554,12 +3778,12 @@
 <td class="icon">
 <div class="title">Note</div>
 </td>
-<td class="content">Ensure that static versions of the <tt>c-utils</tt>, <tt>lb</tt>, and <tt>turbine</tt> libraries
-   were built, typically with a <tt>.a</tt> suffix, e.g. <tt>libadlb.a</tt>.  These
-   are created by default, unless you specified <tt>DISABLE_STATIC=0</tt> or
-   <tt>--disable-static</tt>.  To build a fully standalone
+<td class="content">Ensure that static versions of the <code>c-utils</code>, <code>lb</code>, and <code>turbine</code> libraries
+   were built, typically with a <code>.a</code> suffix, e.g. <code>libadlb.a</code>.  These
+   are created by default, unless you specified <code>DISABLE_STATIC=0</code> or
+   <code>--disable-static</code>.  To build a fully standalone
    executable, you will also need to build a static version of Tcl
-   (with the <tt>--disable-shared</tt> configure option), and static versions
+   (with the <code>--disable-shared</code> configure option), and static versions
    of any other libraries your own code needs to link with, such
    as your MPI distribution or application code.</td>
 </tr></table>
@@ -3571,48 +3795,48 @@
 </p>
 <div class="listingblock">
 <div class="content">
-<pre><tt>stc my.swift</tt></pre>
+<pre><code>stc my.swift</code></pre>
 </div></div>
-<div class="paragraph"><p>producing the Turbine Tcl script <tt>my.tcl</tt>.</p></div>
+<div class="paragraph"><p>producing the Turbine Tcl script <code>my.tcl</code>.</p></div>
 </li>
 <li>
 <p>
-Create a manifest file, e.g. <tt>my.manifest</tt>.  This file describes the
+Create a manifest file, e.g. <code>my.manifest</code>.  This file describes the
    resources to be bundled, including the STC-generated code and any
    user libraries.
 </p>
-<div class="paragraph"><p>To do this, make a copy of <tt>scripts/mkstatic/example.manifest</tt> from
+<div class="paragraph"><p>To do this, make a copy of <code>scripts/mkstatic/example.manifest</code> from
 the Turbine installation directory.  This file contains examples and
 descriptions of all the the possible settings.
 Note that an empty
-manifest file corresponds to the <tt>turbine_sh</tt> utility, which is a
-replacement for <tt>tclsh</tt> with required Turbine libraries statically
+manifest file corresponds to the <code>turbine_sh</code> utility, which is a
+replacement for <code>tclsh</code> with required Turbine libraries statically
 linked in.
 For a simple Swift program with no user Tcl libraries,
-you only need to set <tt>main_script = my.tcl</tt>.</p></div>
+you only need to set <code>main_script = my.tcl</code>.</p></div>
 </li>
 <li>
 <p>
-Invoke <tt>mkstatic.tcl</tt> (found under <tt>scripts/mkstatic/mkstatic.tcl</tt> in
+Invoke <code>mkstatic.tcl</code> (found under <code>scripts/mkstatic/mkstatic.tcl</code> in
    the Turbine installation) to translate your Tcl script to a C main
-   program (e.g., <tt>my_main.c</tt>) with Tcl source code included.
+   program (e.g., <code>my_main.c</code>) with Tcl source code included.
    The minimal invocation is
 </p>
 <div class="listingblock">
 <div class="content">
-<pre><tt>mkstatic.tcl my.manifest -c my_main.c</tt></pre>
+<pre><code>mkstatic.tcl my.manifest -c my_main.c</code></pre>
 </div></div>
 <div class="paragraph"><p>You will likely wish to include Tcl system libraries with
-<tt>--include-sys-lib /home/example/tcl-install/lib --tcl-version 8.6</tt>.
+<code>--include-sys-lib /home/example/tcl-install/lib --tcl-version 8.6</code>.
 The Tcl system library directory can be identified by the fact that
-it contains the file <tt>init.tcl</tt>.  This directory must be specified
-with a special flag so that <tt>mkstatic.tcl</tt> can correctly replace
+it contains the file <code>init.tcl</code>.  This directory must be specified
+with a special flag so that <code>mkstatic.tcl</code> can correctly replace
 the regular Tcl initialization process.</p></div>
 <div class="paragraph"><p>You can include additional libraries and packages with
-<tt>--include-lib /home/example/tcl-lib/</tt>.  Any <tt>.tcl</tt> or <tt>.tm</tt> source files
+<code>--include-lib /home/example/tcl-lib/</code>.  Any <code>.tcl</code> or <code>.tm</code> source files
 in the directory will be included.  Source-only packages can
 generally be completely linked into the executable, but if a package
-loads shared libraries, only the <tt>pkgIndex.tcl</tt> file will be linked
+loads shared libraries, only the <code>pkgIndex.tcl</code> file will be linked
 into the executable.  A package with compiled code can be converted to
 support static linking by specifying a package init function, plus
 static library or object files in the manifest file.</p></div>
@@ -3636,37 +3860,37 @@
 <li>
 <p>
 <strong>Swift/T system:</strong> The Turbine distribution includes a helper script,
-  <tt>turbine-build-config.sh</tt>, that can be sourced to obtain linker flags
+  <code>turbine-build-config.sh</code>, that can be sourced to obtain linker flags
   for Swift/T dependencies.
 </p>
 </li>
 <li>
 <p>
 <strong>Link order:</strong> In the case of static linking, if <strong>libA</strong> depends on <strong>libB</strong>,
-  then the <tt>-lA</tt> flag must precede <tt>-lB</tt> on the command line.  To
+  then the <code>-lA</code> flag must precede <code>-lB</code> on the command line.  To
   actually do the linking, there are two further cases to consider:
 </p>
 <div class="ulist"><ul>
 <li>
 <p>
 If building a fully static executable, you can
-  provide the <tt>-static</tt> flag, plus all object files, plus <tt>-L</tt>
-  and <tt>-l</tt> flags for all required library directories and libraries.
+  provide the <code>-static</code> flag, plus all object files, plus <code>-L</code>
+  and <code>-l</code> flags for all required library directories and libraries.
 </p>
 <div class="listingblock">
 <div class="content">
-<pre><tt>gcc -static script_main.c file1.o file2.o -L/path/to/lib/dir -lsomething ...</tt></pre>
+<pre><code>gcc -static script_main.c file1.o file2.o -L/path/to/lib/dir -lsomething ...</code></pre>
 </div></div>
 </li>
 <li>
 <p>
 If you are building an executable that depends on one or more shared
-  libraries, you will need to provide the <tt>-dynamic</tt> flag, and then
+  libraries, you will need to provide the <code>-dynamic</code> flag, and then
   ensure that static libraries are linked statically.  If a shared
-  version of a library is available, <tt>gcc</tt> will use that in preference
+  version of a library is available, <code>gcc</code> will use that in preference
   to a static version.  You can override this behaviour by specifying
-  <tt>-Wl,-Bstatic</tt> on the command line before the flags for the libraries
-  you wish to statically link, then <tt>-Wl,-Bdynamic</tt> to reset to
+  <code>-Wl,-Bstatic</code> on the command line before the flags for the libraries
+  you wish to statically link, then <code>-Wl,-Bdynamic</code> to reset to
   dynamic linking for any libraries after those.
 </p>
 </li>
@@ -3676,11 +3900,11 @@
 </li>
 </ol></div>
 <div class="paragraph"><p>We have described the most commonly-used options.  A full list of options
-and descriptions can be obtained by invoking <tt>mkstatic.tcl -h</tt>.
+and descriptions can be obtained by invoking <code>mkstatic.tcl -h</code>.
 Additional options include:</p></div>
 <div class="dlist"><dl>
 <dt class="hdlist1">
-<tt>--main-script</tt>
+<code>--main-script</code>
 </dt>
 <dd>
 <p>
@@ -3688,7 +3912,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-r</tt>
+<code>-r</code>
 </dt>
 <dd>
 <p>
@@ -3696,7 +3920,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>-v</tt>
+<code>-v</code>
 </dt>
 <dd>
 <p>
@@ -3704,7 +3928,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>--deps</tt>
+<code>--deps</code>
 </dt>
 <dd>
 <p>
@@ -3712,7 +3936,7 @@
 </p>
 </dd>
 <dt class="hdlist1">
-<tt>--ignore-no-manifest</tt>
+<code>--ignore-no-manifest</code>
 </dt>
 <dd>
 <p>
@@ -3730,13 +3954,13 @@
 <li>
 <p>
 When using Swift/T dynamically with Tcl packages (the default), you
-  need to attach to the <tt>tclsh</tt> process.  This process loads your
+  need to attach to the <code>tclsh</code> process.  This process loads your
   native code and calls into it.
 </p>
 </li>
 <li>
 <p>
-When using <tt>mkstatic</tt>, you generate a complete executable.  You can
+When using <code>mkstatic</code>, you generate a complete executable.  You can
   debug this in the normal method for debugging MPI programs.
 </p>
 </li>
@@ -3744,31 +3968,31 @@
 <div class="sect3">
 <h4 id="valgrind">16.7.1. Valgrind</h4>
 <div class="paragraph"><p>The Swift/T launcher scripts support <a href="http://valgrind.org">valgrind</a>.
-Simply set the environment variable <tt>VALGRIND</tt> to the valgrind command
+Simply set the environment variable <code>VALGRIND</code> to the valgrind command
 you wish to use.  A suppressions file is distributed with Turbine to
 ignore known issues.  (Swift/T is valgrind-clean but there are some
 issues in Tcl.)</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>export VALGRIND="valgrind --suppressions=$HOME/turbine/turbine.supp"
-turbine program.tcl</tt></pre>
+<pre><code>export VALGRIND="valgrind --suppressions=$HOME/turbine/turbine.supp"
+turbine program.tcl</code></pre>
 </div></div>
 </div>
 <div class="sect3">
 <h4 id="gdb">16.7.2. GDB</h4>
 <div class="paragraph"><p>The Turbine library provides a convenient attachment mechanism
 compatible with debuggers like GDB, Eclipse, etc.  You attach to a
-Turbine execution by using the <tt>GDB_RANK</tt> variable:</p></div>
+Turbine execution by using the <code>GDB_RANK</code> variable:</p></div>
 <div class="listingblock">
 <div class="content">
-<pre><tt>$ export GDB_RANK=0
+<pre><code>$ export GDB_RANK=0
 $ turbine program.tcl
 Waiting for gdb: rank: 0 pid: 23274
-...</tt></pre>
+...</code></pre>
 </div></div>
-<div class="paragraph"><p>Rank 0, running in process <tt>23274</tt>, has blocked (in a loop) and is
+<div class="paragraph"><p>Rank 0, running in process <code>23274</code>, has blocked (in a loop) and is
 waiting for the debugger to attach.  When you attach, set the variable
-<tt>t=1</tt> to break out of the loop.  Then you can debug normally.</p></div>
+<code>t=1</code> to break out of the loop.  Then you can debug normally.</p></div>
 </div>
 </div>
 </div>
@@ -3777,7 +4001,7 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2014-08-22 15:22:24 RDT
+Last updated 2014-10-09 13:01:17 CDT
 </div>
 </div>
 </body>




More information about the Swift-commit mailing list