1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-01 07:48:35 +03:00
inform7/docs/core-module/1-htc.html

388 lines
69 KiB
HTML
Raw Normal View History

2020-02-27 03:43:11 +02:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
2020-04-14 19:56:54 +03:00
<title>How To Compile</title>
2020-05-03 03:20:55 +03:00
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
2020-03-19 02:11:25 +02:00
<meta name="viewport" content="width=device-width initial-scale=1">
2020-02-27 03:43:11 +02:00
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
2020-05-03 03:01:21 +03:00
2020-05-03 03:20:55 +03:00
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
2020-05-03 03:01:21 +03:00
<script>
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
</script>
2020-05-03 03:20:55 +03:00
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
2020-04-14 19:56:54 +03:00
2020-02-27 03:43:11 +02:00
</head>
2020-05-03 03:01:21 +03:00
<body class="commentary-font">
2020-03-19 02:11:25 +02:00
<nav role="navigation">
2020-04-14 19:56:54 +03:00
<h1><a href="../index.html">
<img src="../docs-src/Figures/Inform.png" height=72">
</a></h1>
<ul><li><a href="../compiler.html">compiler tools</a></li>
2020-03-19 02:11:25 +02:00
<li><a href="../other.html">other tools</a></li>
<li><a href="../extensions.html">extensions and kits</a></li>
<li><a href="../units.html">unit test tools</a></li>
2020-04-14 19:56:54 +03:00
</ul><h2>Compiler Webs</h2><ul>
2020-03-19 02:11:25 +02:00
<li><a href="../inbuild/index.html">inbuild</a></li>
<li><a href="../inform7/index.html">inform7</a></li>
<li><a href="../inter/index.html">inter</a></li>
2020-04-14 19:56:54 +03:00
</ul><h2>Inbuild Modules</h2><ul>
<li><a href="../supervisor-module/index.html">supervisor</a></li>
</ul><h2>Inform7 Modules</h2><ul>
<li><a href="index.html"><span class="selectedlink">core</span></a></li>
2020-03-19 02:11:25 +02:00
<li><a href="../inflections-module/index.html">inflections</a></li>
<li><a href="../linguistics-module/index.html">linguistics</a></li>
<li><a href="../kinds-module/index.html">kinds</a></li>
<li><a href="../if-module/index.html">if</a></li>
<li><a href="../multimedia-module/index.html">multimedia</a></li>
2020-04-14 19:56:54 +03:00
<li><a href="../problems-module/index.html">problems</a></li>
2020-03-19 02:11:25 +02:00
<li><a href="../index-module/index.html">index</a></li>
2020-04-14 19:56:54 +03:00
</ul><h2>Inter Modules</h2><ul>
<li><a href="../bytecode-module/index.html">bytecode</a></li>
2020-03-19 02:11:25 +02:00
<li><a href="../building-module/index.html">building</a></li>
<li><a href="../codegen-module/index.html">codegen</a></li>
2020-04-14 19:56:54 +03:00
</ul><h2>Shared Modules</h2><ul>
<li><a href="../arch-module/index.html">arch</a></li>
<li><a href="../syntax-module/index.html">syntax</a></li>
<li><a href="../words-module/index.html">words</a></li>
<li><a href="../html-module/index.html">html</a></li>
2020-03-19 02:11:25 +02:00
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
2020-04-14 19:56:54 +03:00
</ul>
2020-03-19 02:11:25 +02:00
</nav>
<main role="main">
2020-05-03 03:01:21 +03:00
<!--Weave of 'How To Compile' generated by Inweb-->
<div class="breadcrumbs">
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7 Modules</a></li><li><a href="index.html">core</a></li><li><a href="index.html#1">Chapter 1: Configuration and Control</a></li><li><b>How To Compile</b></li></ul></div>
<p class="purpose">The long production line on which products of Inform are built, one step at a time.</p>
2020-02-27 03:43:11 +02:00
2020-05-03 03:01:21 +03:00
<p class="commentary firstcommentary"><a id="SP1"></a><b>&#167;1. </b>Having seen the top management of the factory, we now reach the factory
2020-02-27 13:18:25 +02:00
floor, which is one long production line: around 150 steps must be performed
in sequence to finish making the product. We can picture each of these
steps as carried out by a worker function: each does its work and passes
on to the next.
</p>
2020-05-03 03:01:21 +03:00
<p class="commentary">150 is a great many, so we group the stages into 16 departments, which are,
2020-02-27 13:18:25 +02:00
in order of when they work:
2020-02-27 03:43:11 +02:00
</p>
2020-05-03 03:01:21 +03:00
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">STARTED_CSEQ</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SEMANTIC_LANGUAGE_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SEMANTIC_I_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SEMANTIC_II_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SEMANTIC_III_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ASSERTIONS_PASS_1_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ASSERTIONS_PASS_2_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MODEL_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MODEL_COMPLETE_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLES_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASES_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INTER_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BIBLIOGRAPHIC_CSEQ</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FINISHED_CSEQ</span>
2020-02-27 03:43:11 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<p class="commentary firstcommentary"><a id="SP2"></a><b>&#167;2. </b>The aim of this section is to contain as little logic as possible. However,
2020-02-27 13:18:25 +02:00
a few of the steps are carried out only if debugging features are enabled,
or disabled; or only if certain elements of the Inform language are enabled.
For example, a Basic Inform source text is not allowed to contain command
parser grammar in the way that an IF source text would, so the steps to do
with building that grammar are skipped unless the relevant language element
is active.
</p>
2020-02-27 03:43:11 +02:00
2020-05-03 03:01:21 +03:00
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">compiler_booted_up</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Sequence::carry_out</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Sequence::carry_out</span></span>:<br/>What To Compile - <a href="1-wtc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">clock_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">start</span><span class="plain-syntax"> = </span><span class="identifier-syntax">clock</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STARTED_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Starting"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">compiler_booted_up</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Boot up the compiler</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">compiler_booted_up</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Perform textual analysis</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Read the assertions in two passes</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Make the model world</span><span class="named-paragraph-number">2.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_6" class="named-paragraph-link"><span class="named-paragraph">Tables and grammar</span><span class="named-paragraph-number">2.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_7" class="named-paragraph-link"><span class="named-paragraph">Phrases and rules</span><span class="named-paragraph-number">2.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_8" class="named-paragraph-link"><span class="named-paragraph">Generate inter</span><span class="named-paragraph-number">2.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-htc.html#SP2_9" class="named-paragraph-link"><span class="named-paragraph">Generate index and bibliographic file</span><span class="named-paragraph-number">2.9</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">FINISHED_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Ccmplete"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">clock_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax"> = </span><span class="identifier-syntax">clock</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cpu_time_used</span><span class="plain-syntax"> = ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> - </span><span class="identifier-syntax">start</span><span class="plain-syntax">)) / (</span><span class="identifier-syntax">CLOCKS_PER_SEC</span><span class="plain-syntax">/100);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Compile CPU time: %d centiseconds\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cpu_time_used</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
2020-02-27 03:43:11 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<p class="commentary firstcommentary"><a id="SP2_1"></a><b>&#167;2.1. </b>Here are macros for the unconditional and conditional steps, respectively,
2020-02-27 13:18:25 +02:00
taking place at what we think of as benches in the production line. Continuing
the analogy, there is an ongoing time and motion study: any step which takes
more than 1 centisecond of CPU time is reported to the debugging log. That
isn't necessarily a sign of something wrong: a few of these steps are always
going to take serious computation. But we want to know which ones.
</p>
2020-05-03 03:01:21 +03:00
<p class="commentary">As soon as any step generates problem messages, all subsequent steps are
2020-02-27 13:18:25 +02:00
skipped, so that each of the worker functions can assume that the
part-assembled state they receive is correct so far. This greatly simplifies
error recovery, prevents small errors in the source text leading to
cascades of problem messages, and ensures that we report problems as quickly
as possible.
</p>
2020-02-27 03:43:11 +02:00
2020-05-03 03:01:21 +03:00
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">routine</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">clock_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">now</span><span class="plain-syntax"> = </span><span class="identifier-syntax">clock</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">routine</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cs</span><span class="plain-syntax"> = ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) (</span><span class="identifier-syntax">clock</span><span class="plain-syntax">() - </span><span class="identifier-syntax">now</span><span class="plain-syntax">)) / (</span><span class="identifier-syntax">CLOCKS_PER_SEC</span><span class="plain-syntax">/100);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cs</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">".... "</span><span class="plain-syntax"> #</span><span class="identifier-syntax">routine</span><span class="plain-syntax"> </span><span class="string-syntax">"() took %dcs\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cs</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="reserved-syntax">plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">routine</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">problem_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><a href="26-pl.html#SP14" class="function-link"><span class="function-syntax">Plugins::Manage::plugged_in</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">plugin</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">clock_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">now</span><span class="plain-syntax"> = </span><span class="identifier-syntax">clock</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">routine</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">cs</span><span class="plain-syntax"> = ((</span><span class="reserved-syntax">int</span><span class="plain-syntax">) (</span><span class="identifier-syntax">clock</span><span class="plain-syntax">() - </span><span class="identifier-syntax">now</span><span class="plain-syntax">)) / (</span><span class="identifier-syntax">CLOCKS_PER_SEC</span><span class="plain-syntax">/100);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cs</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">".... "</span><span class="plain-syntax"> #</span><span class="identifier-syntax">routine</span><span class="plain-syntax"> </span><span class="string-syntax">"() took %dcs\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cs</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
2020-02-27 13:18:25 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<p class="commentary firstcommentary"><a id="SP2_2"></a><b>&#167;2.2. </b>Here, then, are the steps in the production line, presented without
2020-02-27 13:18:25 +02:00
commentary. For what they do, see the relevant sections. Note that although
2020-05-03 03:01:21 +03:00
most of these worker functions are in the <span class="extract"><span class="extract-syntax">core</span></span> module, some are not.
2020-02-27 13:18:25 +02:00
</p>
2020-05-03 03:01:21 +03:00
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Boot up the compiler</span><span class="named-paragraph-number">2.2</span></span><span class="comment-syntax"> =</span>
</p>
2020-02-27 13:18:25 +02:00
2020-05-03 03:01:21 +03:00
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="27-em.html#SP2" class="function-link"><span class="function-syntax">Emit::begin</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="16-is.html#SP8" class="function-link"><span class="function-syntax">InferenceSubjects::begin</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Index::DocReferences::read_xrefs</span><span class="plain-syntax">);</span>
2020-02-27 13:18:25 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_3"></a><b>&#167;2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Perform textual analysis</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
</p>
2020-02-27 13:18:25 +02:00
2020-05-03 03:01:21 +03:00
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_LANGUAGE_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis Ia"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-pl.html#SP11" class="function-link"><span class="function-syntax">Plugins::Manage::start_plugins</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP8" class="function-link"><span class="function-syntax">Task::load_types</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-bp.html#SP45" class="function-link"><span class="function-syntax">BinaryPredicates::make_built_in</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-nv.html#SP4" class="function-link"><span class="function-syntax">NewVerbs::add_inequalities</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_I_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis Ib"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-ns.html#SP8" class="function-link"><span class="function-syntax">Sentences::VPs::traverse</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-oaf.html#SP3" class="function-link"><span class="function-syntax">Sentences::Rearrangement::tidy_up_ofs_and_froms</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-rs.html#SP3" class="function-link"><span class="function-syntax">Sentences::RuleSubtrees::register_recently_lexed_phrases</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">SourceText::declare_source_loaded</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-kak.html#SP6" class="function-link"><span class="function-syntax">Kinds::Knowledge::include_templates_for_kinds</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_II_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis II"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-ptu.html#SP15" class="function-link"><span class="function-syntax">ParseTreeUsage::verify</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="8-ef.html#SP8" class="function-link"><span class="function-syntax">Extensions::Files::check_versions</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Headings::make_tree</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-hdn.html#SP13" class="function-link"><span class="function-syntax">Sentences::Headings::write_as_xml</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="7-hdn.html#SP13" class="function-link"><span class="function-syntax">Sentences::Headings::write_as_xml</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="27-cm.html#SP2" class="function-link"><span class="function-syntax">Modules::traverse_to_define</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SEMANTIC_III_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Semantic analysis III"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="23-ad.html#SP5" class="function-link"><span class="function-syntax">Phrases::Adjectives::traverse</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="20-eq.html#SP9" class="function-link"><span class="function-syntax">Equations::traverse_to_create</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="19-tb.html#SP6" class="function-link"><span class="function-syntax">Tables::traverse_to_create</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP2" class="function-link"><span class="function-syntax">Phrases::Manager::traverse_for_names</span></a><span class="plain-syntax">)</span>
2020-02-27 13:18:25 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_4"></a><b>&#167;2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Read the assertions in two passes</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
</p>
2020-02-27 13:18:25 +02:00
2020-05-03 03:01:21 +03:00
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ASSERTIONS_PASS_1_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"First pass through assertions"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="9-tfa.html#SP7" class="function-link"><span class="function-syntax">Assertions::Traverse::traverse1</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="19-tb.html#SP7" class="function-link"><span class="function-syntax">Tables::traverse_to_stock</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ASSERTIONS_PASS_2_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Second pass through assertions"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="9-tfa.html#SP7" class="function-link"><span class="function-syntax">Assertions::Traverse::traverse2</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-rsfk.html#SP24" class="function-link"><span class="function-syntax">Kinds::RunTime::kind_declarations</span></a><span class="plain-syntax">)</span>
2020-02-27 13:18:25 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_5"></a><b>&#167;2.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make the model world</span><span class="named-paragraph-number">2.5</span></span><span class="comment-syntax"> =</span>
</p>
2020-02-27 13:18:25 +02:00
2020-05-03 03:01:21 +03:00
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MODEL_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Making the model world"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-uo.html#SP17" class="function-link"><span class="function-syntax">UseOptions::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="15-pr.html#SP27" class="function-link"><span class="function-syntax">Properties::emit</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="15-epv.html#SP3" class="function-link"><span class="function-syntax">Properties::Emit::allocate_attributes</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Actions::name_all</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="5-un.html#SP2" class="function-link"><span class="function-syntax">UseNouns::name_all</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="5-ins.html#SP31" class="function-link"><span class="function-syntax">Instances::place_objects_in_definition_sequence</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MODEL_COMPLETE_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Completing the model world"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="16-cmw.html#SP1" class="function-link"><span class="function-syntax">World::complete</span></a><span class="plain-syntax">)</span>
2020-02-27 13:18:25 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_6"></a><b>&#167;2.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Tables and grammar</span><span class="named-paragraph-number">2.6</span></span><span class="comment-syntax"> =</span>
</p>
2020-02-27 13:18:25 +02:00
2020-05-03 03:01:21 +03:00
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TABLES_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Tables and grammar"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="15-ma.html#SP7" class="function-link"><span class="function-syntax">Properties::Measurement::validate_definitions</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-bp.html#SP46" class="function-link"><span class="function-syntax">BinaryPredicates::make_built_in_further</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Bibliographic::IFID::define_UUID</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Figures::compile_ResourceIDsOfFigures_array</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Sounds::compile_ResourceIDsOfSounds_array</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Player::InitialSituation</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="19-tb.html#SP8" class="function-link"><span class="function-syntax">Tables::check_tables_for_kind_clashes</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="19-rsft.html#SP2" class="function-link"><span class="function-syntax">Tables::Support::compile_print_table_names</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Parsing::traverse</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="16-cmw.html#SP2" class="function-link"><span class="function-syntax">World::complete_additions</span></a><span class="plain-syntax">)</span>
2020-02-27 13:18:25 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_7"></a><b>&#167;2.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Phrases and rules</span><span class="named-paragraph-number">2.7</span></span><span class="comment-syntax"> =</span>
</p>
2020-02-27 13:18:25 +02:00
2020-05-03 03:01:21 +03:00
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PHRASES_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Phrases and rules"</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="5-lp.html#SP40" class="function-link"><span class="function-syntax">LiteralPatterns::define_named_phrases</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP4" class="function-link"><span class="function-syntax">Phrases::Manager::traverse</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP5" class="function-link"><span class="function-syntax">Phrases::Manager::register_meanings</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP7" class="function-link"><span class="function-syntax">Phrases::Manager::parse_rule_parameters</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP8" class="function-link"><span class="function-syntax">Phrases::Manager::add_rules_to_rulebooks</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP9" class="function-link"><span class="function-syntax">Phrases::Manager::parse_rule_placements</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="20-eq.html#SP12" class="function-link"><span class="function-syntax">Equations::traverse_to_stock</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="19-tb.html#SP7" class="function-link"><span class="function-syntax">Tables::traverse_to_stock</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="15-pr.html#SP27" class="function-link"><span class="function-syntax">Properties::annotate_attributes</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="21-fao.html#SP10" class="function-link"><span class="function-syntax">Rulebooks::Outcomes::RulebookOutcomePrintingRule</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-rsfk.html#SP24" class="function-link"><span class="function-syntax">Kinds::RunTime::compile_instance_counts</span></a><span class="plain-syntax">)</span>
2020-02-27 13:18:25 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_8"></a><b>&#167;2.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Generate inter</span><span class="named-paragraph-number">2.8</span></span><span class="comment-syntax"> =</span>
</p>
2020-02-27 13:18:25 +02:00
2020-05-03 03:01:21 +03:00
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">INTER_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Generating inter"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-uo.html#SP18" class="function-link"><span class="function-syntax">UseOptions::compile_icl_commands</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-fc.html#SP2" class="function-link"><span class="function-syntax">FundamentalConstants::emit_build_number</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Bibliographic::compile_constants</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="8-ef.html#SP9" class="function-link"><span class="function-syntax">Extensions::Files::ShowExtensionVersions_routine</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">Kinds::Constructors::compile_I6_constants</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">scoring_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Score::compile_max_score</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-uo.html#SP21" class="function-link"><span class="function-syntax">UseOptions::TestUseOption_routine</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="21-ac.html#SP14" class="function-link"><span class="function-syntax">Activities::compile_activity_constants</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="21-ac.html#SP14" class="function-link"><span class="function-syntax">Activities::Activity_before_rulebooks_array</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="21-ac.html#SP14" class="function-link"><span class="function-syntax">Activities::Activity_for_rulebooks_array</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="21-ac.html#SP14" class="function-link"><span class="function-syntax">Activities::Activity_after_rulebooks_array</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="21-ac.html#SP14" class="function-link"><span class="function-syntax">Activities::Activity_atb_rulebooks_array</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-rlt.html#SP14" class="function-link"><span class="function-syntax">Relations::compile_defined_relation_constants</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-rsfk.html#SP24" class="function-link"><span class="function-syntax">Kinds::RunTime::compile_data_type_support_routines</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-rsfk.html#SP25" class="function-link"><span class="function-syntax">Kinds::RunTime::I7_Kind_Name_routine</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="16-cmw2.html#SP2" class="function-link"><span class="function-syntax">World::Compile::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">backdrops_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Backdrops::write_found_in_routines</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Map::write_door_dir_routines</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">map_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Map::write_door_to_routines</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Tokens::General::write_parse_name_routines</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">regions_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Regions::write_regional_found_in_routines</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="19-tb.html#SP26" class="function-link"><span class="function-syntax">Tables::complete</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="19-rsft.html#SP1" class="function-link"><span class="function-syntax">Tables::Support::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="20-eq.html#SP43" class="function-link"><span class="function-syntax">Equations::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">actions_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Actions::Patterns::Named::compile</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">actions_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Actions::ActionData</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">actions_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Actions::ActionCoding_array</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">actions_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Actions::ActionHappened</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">actions_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Actions::compile_action_routines</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Lines::MistakeActionSub_routine</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP10" class="function-link"><span class="function-syntax">Phrases::Manager::compile_first_block</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP12" class="function-link"><span class="function-syntax">Phrases::Manager::compile_rulebooks</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP12" class="function-link"><span class="function-syntax">Phrases::Manager::rulebooks_array</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">scenes_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Scenes::DetectSceneChange_routine</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">scenes_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Scenes::ShowSceneStatus_routine</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Files::arrays</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="21-rl2.html#SP14" class="function-link"><span class="function-syntax">Rulebooks::rulebook_var_creators</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="21-ac.html#SP8" class="function-link"><span class="function-syntax">Activities::activity_var_creators</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-rlt.html#SP17" class="function-link"><span class="function-syntax">Relations::IterateRelations</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP12" class="function-link"><span class="function-syntax">Phrases::Manager::RulebookNames_array</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP13" class="function-link"><span class="function-syntax">Phrases::Manager::RulePrintingRule_routine</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Verbs::prepare</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Verbs::compile_conditions</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Tokens::Values::number</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Tokens::Values::truth_state</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Tokens::Values::time</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Tokens::Values::compile_type_gprs</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-nv.html#SP18" class="function-link"><span class="function-syntax">NewVerbs::ConjugateVerb</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="4-am.html#SP42" class="function-link"><span class="function-syntax">Adjectives::Meanings::agreements</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">debugging</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><a href="26-ts.html#SP10" class="function-link"><span class="function-syntax">PL::Parsing::TestScripts::write_text</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><a href="26-ts.html#SP10" class="function-link"><span class="function-syntax">PL::Parsing::TestScripts::TestScriptSub_routine</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><a href="26-ts.html#SP11" class="function-link"><span class="function-syntax">PL::Parsing::TestScripts::InternalTestCases_routine</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><a href="26-ts.html#SP10" class="function-link"><span class="function-syntax">PL::Parsing::TestScripts::TestScriptSub_stub_routine</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="18-lc.html#SP10" class="function-link"><span class="function-syntax">Lists::check</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="18-lc.html#SP12" class="function-link"><span class="function-syntax">Lists::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-ph.html#SP13" class="function-link"><span class="function-syntax">Phrases::invoke_to_begin</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP14" class="function-link"><span class="function-syntax">Phrases::Manager::compile_as_needed</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="17-rs.html#SP7" class="function-link"><span class="function-syntax">Strings::compile_responses</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="18-lc.html#SP10" class="function-link"><span class="function-syntax">Lists::check</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="18-lc.html#SP12" class="function-link"><span class="function-syntax">Lists::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="6-rlt.html#SP29" class="function-link"><span class="function-syntax">Relations::compile_defined_relations</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-cs.html#SP14" class="function-link"><span class="function-syntax">Phrases::Manager::compile_as_needed</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="17-ts.html#SP6" class="function-link"><span class="function-syntax">Strings::TextSubstitutions::allow_no_further_text_subs</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Tokens::Filters::compile</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">actions_plugin</span><span class="plain-syntax">, </span><a href="24-ch.html#SP6" class="function-link"><span class="function-syntax">Chronology::past_actions_i6_routines</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">chronology_plugin</span><span class="plain-syntax">, </span><a href="24-ch.html#SP8" class="function-link"><span class="function-syntax">Chronology::chronology_extents_i6_escape</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">chronology_plugin</span><span class="plain-syntax">, </span><a href="24-ch.html#SP7" class="function-link"><span class="function-syntax">Chronology::past_tenses_i6_escape</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">chronology_plugin</span><span class="plain-syntax">, </span><a href="24-ch.html#SP5" class="function-link"><span class="function-syntax">Chronology::allow_no_further_past_tenses</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Verbs::compile_all</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">parsing_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Parsing::Tokens::Filters::compile</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="15-ma.html#SP13" class="function-link"><span class="function-syntax">Properties::Measurement::compile_MADJ_routines</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="12-cdp.html#SP2" class="function-link"><span class="function-syntax">Calculus::Propositions::Deferred::compile_remaining_deferred</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="12-dtd.html#SP3" class="function-link"><span class="function-syntax">Calculus::Deferrals::allow_no_further_deferrals</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="18-lc.html#SP10" class="function-link"><span class="function-syntax">Lists::check</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="18-lc.html#SP12" class="function-link"><span class="function-syntax">Lists::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="17-tl.html#SP14" class="function-link"><span class="function-syntax">Strings::TextLiterals::compile</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-jl.html#SP6" class="function-link"><span class="function-syntax">JumpLabels::compile_necessary_storage</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-rsfk.html#SP18" class="function-link"><span class="function-syntax">Kinds::RunTime::compile_heap_allocator</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-pav.html#SP8" class="function-link"><span class="function-syntax">Phrases::Constants::compile_closures</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="13-rsfk.html#SP16" class="function-link"><span class="function-syntax">Kinds::RunTime::compile_structures</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="21-rl.html#SP26" class="function-link"><span class="function-syntax">Rules::check_response_usages</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-tp2.html#SP6" class="function-link"><span class="function-syntax">Phrases::Timed::check_for_unused</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Showme::compile_SHOWME_details</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-tp2.html#SP4" class="function-link"><span class="function-syntax">Phrases::Timed::TimedEventsTable</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="22-tp2.html#SP4" class="function-link"><span class="function-syntax">Phrases::Timed::TimedEventTimesTable</span></a><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Naming::compile_cap_short_name</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="26-uo.html#SP23" class="function-link"><span class="function-syntax">UseOptions::configure_template</span></a><span class="plain-syntax">)</span>
2020-02-27 13:18:25 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP2_9"></a><b>&#167;2.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Generate index and bibliographic file</span><span class="named-paragraph-number">2.9</span></span><span class="comment-syntax"> =</span>
</p>
2020-02-27 13:18:25 +02:00
2020-05-03 03:01:21 +03:00
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="1-wtc.html#SP4" class="function-link"><span class="function-syntax">Task::advance_stage_to</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BIBLIOGRAPHIC_CSEQ</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Bibliographic work"</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH_IF</span><span class="plain-syntax">(</span><span class="identifier-syntax">bibliographic_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Bibliographic::Release::write_ifiction_and_blurb</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">BENCH</span><span class="plain-syntax">(</span><a href="3-nl.html#SP1" class="function-link"><span class="function-syntax">NaturalLanguages::produce_index</span></a><span class="plain-syntax">);</span>
2020-02-27 13:18:25 +02:00
</pre>
2020-05-03 03:01:21 +03:00
<ul class="endnotetexts"><li>This code is used in <a href="1-htc.html#SP2">&#167;2</a>.</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="1-wtc.html">&#10094;</a></li><li class="progresscurrentchapter">1</li><li class="progresssection"><a href="1-cm.html">cm</a></li><li class="progresssection"><a href="1-mr.html">mr</a></li><li class="progresssection"><a href="1-wtc.html">wtc</a></li><li class="progresscurrent">htc</li><li class="progresssection"><a href="1-pp.html">pp</a></li><li class="progresschapter"><a href="2-up.html">2</a></li><li class="progresschapter"><a href="3-nl.html">3</a></li><li class="progresschapter"><a href="4-its.html">4</a></li><li class="progresschapter"><a href="5-lp.html">5</a></li><li class="progresschapter"><a href="6-bp.html">6</a></li><li class="progresschapter"><a href="7-ptu.html">7</a></li><li class="progresschapter"><a href="8-ef.html">8</a></li><li class="progresschapter"><a href="9-ita.html">9</a></li><li class="progresschapter"><a href="10-aots.html">10</a></li><li class="progresschapter"><a href="11-itpc.html">11</a></li><li class="progresschapter"><a href="12-ter.html">12</a></li><li class="progresschapter"><a href="13-kak.html">13</a></li><li class="progresschapter"><a href="14-sp.html">14</a></li><li class="progresschapter"><a href="15-pr.html">15</a></li><li class="progresschapter"><a href="16-is.html">16</a></li><li class="progresschapter"><a href="17-tl.html">17</a></li><li class="progresschapter"><a href="18-lc.html">18</a></li><li class="progresschapter"><a href="19-tc.html">19</a></li><li class="progresschapter"><a href="20-eq.html">20</a></li><li class="progresschapter"><a href="21-rl.html">21</a></li><li class="progresschapter"><a href="22-itp.html">22</a></li><li class="progresschapter"><a href="23-ad.html">23</a></li><li class="progresschapter"><a href="24-lv.html">24</a></li><li class="progresschapter"><a href="25-in.html">25</a></li><li class="progresschapter"><a href="26-fc.html">26</a></li><li class="progresschapter"><a href="27-hr.html">27</a></li><li class="progressnext"><a href="1-pp.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->
2020-02-27 13:18:25 +02:00
2020-03-19 02:11:25 +02:00
</main>
2020-02-27 13:18:25 +02:00
</body>
</html>
2020-02-27 03:43:11 +02:00