1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-26 04:00:43 +03:00

Final withdrawal of -transient switch

This commit is contained in:
Graham Nelson 2023-08-08 23:50:45 +01:00
parent 9ee8c2eea8
commit a7249593f4
20 changed files with 599 additions and 652 deletions

View file

@ -352,8 +352,8 @@ but is openly accessible even on MacOS.
</li></ul>
<p class="commentary">If Inform is working on a single source text file, not a bundle, then the
project will be the current working directory, but now the build folder will
be the Inbuild transient area, and materials (if present) will again be
alongside.
be the folder <span class="extract"><span class="extract-syntax">Build</span></span> in the same directory as the source file, and materials
(if present) will again be alongside.
</p>
<p class="commentary">To begin: what's in the project area? <span class="extract"><span class="extract-syntax">story.ni</span></span> and <span class="extract"><span class="extract-syntax">auto.inf</span></span>, neither

View file

@ -91,6 +91,7 @@ equivalent of unlocking the doors and turning the lights on in the morning.
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">silence_is_golden</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">index_explicitly_set</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">problems_explicitly_set</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">diagnostics_path</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">log_to_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Main::deputy</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">Main::deputy</span></span>:<br/><a href="1-mn.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">argv</span><span class="plain-syntax">[]) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Start up</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
@ -211,6 +212,9 @@ but we won't assume that. Remember, <a href="../supervisor-module/index.html" cl
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">argc</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">" %s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">argv</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP10" class="function-link"><span class="function-syntax">CommandLine::play_back_log</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">log_to_project</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/2-dl.html#SP9" class="function-link"><span class="function-syntax">Log::set_aspect_from_command_line</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">log_to_project</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="../problems-module/2-pl2.html#SP15" class="function-link"><span class="function-syntax">Problems::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Unknown -log-to-project setting"</span><span class="plain-syntax">);</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">proj</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../core-module/1-wtc.html#SP20" class="function-link"><span class="function-syntax">Task::problems_enabled</span></a><span class="plain-syntax">()) {</span>
@ -388,6 +392,7 @@ compiler via Delia scripts in <span class="extract"><span class="extract-syntax"
<span class="definition-keyword">enum</span> <span class="constant-syntax">CHECK_RESOURCES_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INBUILD_VERBOSE_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INBUILD_VERBOSITY_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOG_TO_PROJECT_CLSW</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4_2" class="paragraph-anchor"></a><b>&#167;4.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Register command-line arguments</span><span class="named-paragraph-number">4.2</span></span><span class="comment-syntax"> =</span>
</p>
@ -412,6 +417,8 @@ compiler via Delia scripts in <span class="extract"><span class="extract-syntax"
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"if no problems occur, write diagnostics files to directory X"</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">REQUIRE_PROBLEM_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"require-problem"</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">L</span><span class="string-syntax">"return 0 unless exactly this Problem message is generated"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LOG_TO_PROJECT_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"log-to-project"</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">L</span><span class="string-syntax">"like -log X, but writing the debugging log into the project"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TEST_OUTPUT_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"test-output"</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">L</span><span class="string-syntax">"write output of internal tests to file X"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP6" class="function-link"><span class="function-syntax">CommandLine::declare_boolean_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SILENCE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"silence"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
@ -448,6 +455,7 @@ rather than <span class="extract"><span class="extract-syntax">core</span></span
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DIAGNOSTICS_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">diagnostics_path</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CHECK_RESOURCES_CLSW:</span><span class="plain-syntax"> </span><a href="../multimedia-module/2-rf.html#SP1" class="function-link"><span class="function-syntax">ResourceFinder::set_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TEST_OUTPUT_CLSW:</span><span class="plain-syntax"> </span><a href="../core-module/1-itc.html#SP6" class="function-link"><span class="function-syntax">InternalTests::set_file</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LOG_TO_PROJECT_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">log_to_project</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SILENCE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">silence_is_golden</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">INBUILD_VERBOSE_CLSW:</span><span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP2" class="function-link"><span class="function-syntax">Supervisor::set_verbosity</span></a><span class="plain-syntax">(1); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">INBUILD_VERBOSITY_CLSW:</span><span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP2" class="function-link"><span class="function-syntax">Supervisor::set_verbosity</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
@ -461,7 +469,7 @@ rather than <span class="extract"><span class="extract-syntax">core</span></span
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_text</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="string-syntax">"to compile a project in a directory, use '-project %S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../supervisor-module/1-ic.html#SP20" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../supervisor-module/1-ic.html#SP19" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_text</span></a><span class="plain-syntax">(</span><span class="string-syntax">"unknown command line argument: %S (see -help)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>

View file

@ -52,7 +52,7 @@
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="index.html">inform7</a></li><li><a href="index.html#M">Manual</a></li><li><b>Command-Line Usage</b></li></ul></div>
<p class="purpose">A brief note on using Inform 7 at the command line.</p>
<ul class="toc"><li><a href="M-cu.html#SP1">&#167;1. Disclaimer</a></li><li><a href="M-cu.html#SP3">&#167;3. How the UI apps call Inform 7</a></li><li><a href="M-cu.html#SP10">&#167;10. Using Inform 7 without projects</a></li><li><a href="M-cu.html#SP11">&#167;11. Testing and debugging switches</a></li><li><a href="M-cu.html#SP12">&#167;12. Expert settings file</a></li><li><a href="M-cu.html#SP13">&#167;13. Prehistory</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="M-cu.html#SP1">&#167;1. Disclaimer</a></li><li><a href="M-cu.html#SP3">&#167;3. How the UI apps call Inform 7</a></li><li><a href="M-cu.html#SP9">&#167;9. Using Inform 7 without projects</a></li><li><a href="M-cu.html#SP10">&#167;10. Testing and debugging switches</a></li><li><a href="M-cu.html#SP11">&#167;11. Expert settings file</a></li><li><a href="M-cu.html#SP12">&#167;12. Prehistory</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Disclaimer. </b>This is not documentation on the Inform language or its user-interface apps:
it's a technical note on how the command-line tool inside those apps is called.
@ -215,24 +215,7 @@ to compile) then source-reference links will be to the right examples.
<p class="commentary">For ordinary, non-Extension, projects, this switch should not be used.
</p>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. </b>When the app installs a new extension (in the external area), or is run
for the first time, it should call Inform 7 to perform a "census" of the
available extensions. The compiler then looks through its internal and
external areas, and creates suitable HTML pages showing what it finds,
which it stores in a writeable area of the file system called the "transient"
directory.
</p>
<p class="commentary">The usage for this is:
</p>
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">inform7/Tangled/inform7</span><span class="ConsoleText-identifier-syntax"> -internal</span><span class="ConsoleText-plain-syntax"> I</span><span class="ConsoleText-identifier-syntax"> -external</span><span class="ConsoleText-plain-syntax"> E</span><span class="ConsoleText-identifier-syntax"> -transient</span><span class="ConsoleText-plain-syntax"> T</span><span class="ConsoleText-identifier-syntax"> -census</span>
</pre>
<p class="commentary">(The caller has the obligation to provide the Transient directory.)
</p>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Using Inform 7 without projects. </b>To users of Inform UI apps, projects seem essential. On Mac OS, they are
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Using Inform 7 without projects. </b>To users of Inform UI apps, projects seem essential. On Mac OS, they are
sealed boxes, looking like files in the Finder, but on all platforms they
are in reality directories, containing not only the source code but also a
variety of other things.
@ -308,7 +291,7 @@ example,
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">ls</span>
<span class="ConsoleText-plain-syntax"> helloworld.c helloworld.i7</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Testing and debugging switches. </b>The following switches are used only when testing or maintaining Inform,
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. Testing and debugging switches. </b>The following switches are used only when testing or maintaining Inform,
and are unlikely to be useful to end users. Many of these are, however,
used in the Intest scripts for testing Inform 7 and Inblorb.
</p>
@ -327,7 +310,7 @@ message".
</li><li>(e) <span class="extract"><span class="ConsoleText-extract-syntax">-require-problem SIGIL</span></span> tells Inform to return an exit code of 0 if
exactly this problem message is produced, and 1 otherwise.
</li></ul>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Expert settings file. </b>Ordinarily, when the user clicks (say) "Go", the GUI app calls the inform7
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Expert settings file. </b>Ordinarily, when the user clicks (say) "Go", the GUI app calls the inform7
executable with various command-line settings to perform the actual work.
The user has had no way to change those settings, except indirectly by e.g.
clicking the checkbox to do with random number generation on the Settings
@ -341,7 +324,7 @@ settings file, and consists of a list of additional command-line arguments
command line.
</p>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. Prehistory. </b>Build 1A01 was the first rough draft of a completed compiler: but it did
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. Prehistory. </b>Build 1A01 was the first rough draft of a completed compiler: but it did
not synchronise fully with the OS X Inform application until 1G22 and
private beta-testing did not begin until 1J34. Other milestones include
time (1B92), tables (1C86), component parts (1E60), indexing (1F46),

View file

@ -70,33 +70,33 @@ which take more than 1/1000th of the total running time.
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">100.0% in inform7 run</span>
<span class="plain-syntax"> 67.9% in compilation to Inter</span>
<span class="plain-syntax"> 45.8% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 4.5% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
<span class="plain-syntax"> 3.8% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
<span class="plain-syntax"> 67.4% in compilation to Inter</span>
<span class="plain-syntax"> 45.9% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 4.2% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
<span class="plain-syntax"> 3.4% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
<span class="plain-syntax"> 1.9% in </span><a href="../assertions-module/5-id.html#SP4" class="internal">ImperativeDefinitions::assess_all</a>
<span class="plain-syntax"> 1.9% in </span><a href="../runtime-module/6-pi.html#SP1" class="internal">RTPhrasebook::compile_entries</a>
<span class="plain-syntax"> 1.5% in </span><a href="../runtime-module/5-kc.html#SP32" class="internal">RTKindConstructors::compile</a>
<span class="plain-syntax"> 1.5% in </span><a href="../runtime-module/6-pi.html#SP1" class="internal">RTPhrasebook::compile_entries</a>
<span class="plain-syntax"> 1.1% in </span><a href="../core-module/1-htc.html#SP12" class="internal">Sequence::lint_inter</a>
<span class="plain-syntax"> 0.7% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 0.3% in </span><a href="../runtime-module/3-cm.html#SP1" class="internal">CompletionModule::compile</a>
<span class="plain-syntax"> 0.3% in </span><a href="../assertions-module/5-id.html#SP5" class="internal">ImperativeDefinitions::compile_first_block</a>
<span class="plain-syntax"> 0.3% in </span><a href="../knowledge-module/4-is.html#SP27" class="internal">InferenceSubjects::emit_all</a>
<span class="plain-syntax"> 0.3% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_2</a>
<span class="plain-syntax"> 0.3% in </span><a href="../runtime-module/5-kc.html#SP35" class="internal">RTKindConstructors::compile_permissions</a>
<span class="plain-syntax"> 0.3% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 0.3% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 0.3% in </span><a href="../knowledge-module/5-tmw.html#SP5" class="internal">World::stage_V</a>
<span class="plain-syntax"> 4.2% not specifically accounted for</span>
<span class="plain-syntax"> 27.8% in running Inter pipeline</span>
<span class="plain-syntax"> 5.0% not specifically accounted for</span>
<span class="plain-syntax"> 27.9% in running Inter pipeline</span>
<span class="plain-syntax"> 9.5% in step 14/15: generate inform6 -&gt; auto.inf</span>
<span class="plain-syntax"> 6.8% in step 5/15: load-binary-kits</span>
<span class="plain-syntax"> 6.1% in step 6/15: make-synoptic-module</span>
<span class="plain-syntax"> 5.7% in step 6/15: make-synoptic-module</span>
<span class="plain-syntax"> 1.9% in step 9/15: make-identifiers-unique</span>
<span class="plain-syntax"> 0.3% in step 12/15: eliminate-redundant-operations</span>
<span class="plain-syntax"> 0.3% in step 4/15: compile-splats</span>
<span class="plain-syntax"> 0.3% in step 7/15: shorten-wiring</span>
<span class="plain-syntax"> 0.3% in step 8/15: detect-indirect-calls</span>
<span class="plain-syntax"> 1.9% not specifically accounted for</span>
<span class="plain-syntax"> 3.4% in supervisor</span>
<span class="plain-syntax"> 2.3% not specifically accounted for</span>
<span class="plain-syntax"> 3.8% in supervisor</span>
<span class="plain-syntax"> 0.8% not specifically accounted for</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. Memory consumption. </b>The following gives some idea of which classes of object have the most
@ -106,36 +106,36 @@ represent less than 1/1000th of the total.
</p>
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">Total memory consumption was 138473K = 135 MB</span>
<span class="plain-syntax">Total memory consumption was 139121K = 136 MB</span>
<span class="plain-syntax"> ---- was used for 2115566 objects, in 374745 frames in 0 x 800K = 0K = 0 MB:</span>
<span class="plain-syntax"> ---- was used for 2123157 objects, in 374911 frames in 0 x 800K = 0K = 0 MB:</span>
<span class="plain-syntax"> 30.5% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes</span>
<span class="plain-syntax"> 19.1% text_stream_array 4815 x 100 = 481500 objects, 27118080 bytes</span>
<span class="plain-syntax"> 17.9% linked_list 45341 objects, 25390960 bytes</span>
<span class="plain-syntax"> 10.1% inter_symbol_array 135 x 1024 = 138240 objects, 14381280 bytes</span>
<span class="plain-syntax"> 30.3% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes</span>
<span class="plain-syntax"> 19.3% text_stream_array 4883 x 100 = 488300 objects, 27501056 bytes</span>
<span class="plain-syntax"> 17.8% linked_list 45352 objects, 25397120 bytes</span>
<span class="plain-syntax"> 10.0% inter_symbol_array 135 x 1024 = 138240 objects, 14381280 bytes</span>
<span class="plain-syntax"> 9.8% inter_error_stash_array 107 x 1024 = 109568 objects, 14028128 bytes</span>
<span class="plain-syntax"> 7.5% parse_node 133764 objects, 10701120 bytes</span>
<span class="plain-syntax"> 7.5% parse_node 133796 objects, 10703680 bytes</span>
<span class="plain-syntax"> 5.3% verb_conjugation 164 objects, 7610912 bytes</span>
<span class="plain-syntax"> 4.0% parse_node_annotation_array 357 x 500 = 178500 objects, 5723424 bytes</span>
<span class="plain-syntax"> 3.1% scan_directory 1090 objects, 4499520 bytes</span>
<span class="plain-syntax"> 3.1% scan_directory 1092 objects, 4507776 bytes</span>
<span class="plain-syntax"> 2.4% pcalc_prop_array 26 x 1000 = 26000 objects, 3536832 bytes</span>
<span class="plain-syntax"> 2.2% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes</span>
<span class="plain-syntax"> 1.9% kind_array 68 x 1000 = 68000 objects, 2722176 bytes</span>
<span class="plain-syntax"> 1.5% inter_schema_token 14176 objects, 2154752 bytes</span>
<span class="plain-syntax"> 1.4% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes</span>
<span class="plain-syntax"> 1.3% package_request 21340 objects, 1877920 bytes</span>
<span class="plain-syntax"> 1.3% package_request 21344 objects, 1878272 bytes</span>
<span class="plain-syntax"> 1.2% vocabulary_entry_array 163 x 100 = 16300 objects, 1830816 bytes</span>
<span class="plain-syntax"> 1.1% dict_entry_array 484 x 100 = 48400 objects, 1564288 bytes</span>
<span class="plain-syntax"> 1.0% inter_symbols_table 26913 objects, 1507128 bytes</span>
<span class="plain-syntax"> 1.1% dict_entry_array 491 x 100 = 49100 objects, 1586912 bytes</span>
<span class="plain-syntax"> 1.0% inter_symbols_table 26921 objects, 1507576 bytes</span>
<span class="plain-syntax"> 1.0% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes</span>
<span class="plain-syntax"> 1.0% i6_schema_array 24 x 100 = 2400 objects, 1440768 bytes</span>
<span class="plain-syntax"> 0.9% inter_package 26913 objects, 1291824 bytes</span>
<span class="plain-syntax"> 0.8% map_data 677 objects, 1137360 bytes</span>
<span class="plain-syntax"> 0.7% id_body 977 objects, 1117688 bytes</span>
<span class="plain-syntax"> 0.9% inter_package 26921 objects, 1292208 bytes</span>
<span class="plain-syntax"> 0.7% map_data 677 objects, 1137360 bytes</span>
<span class="plain-syntax"> 0.7% id_body 979 objects, 1119976 bytes</span>
<span class="plain-syntax"> 0.7% adjective_meaning 208 objects, 1030016 bytes</span>
<span class="plain-syntax"> 0.7% inter_schema_node 9066 objects, 1015392 bytes</span>
<span class="plain-syntax"> 0.6% excerpt_meaning 3162 objects, 986544 bytes</span>
<span class="plain-syntax"> 0.6% excerpt_meaning 3164 objects, 987168 bytes</span>
<span class="plain-syntax"> 0.6% production 3985 objects, 924520 bytes</span>
<span class="plain-syntax"> 0.6% ptoken 8652 objects, 899808 bytes</span>
<span class="plain-syntax"> 0.6% grammatical_usage 3648 objects, 875520 bytes</span>
@ -144,24 +144,24 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> 0.3% local_variable_array 49 x 100 = 4900 objects, 471968 bytes</span>
<span class="plain-syntax"> 0.2% verb_usage 1148 objects, 394912 bytes</span>
<span class="plain-syntax"> 0.2% rule 478 objects, 374752 bytes</span>
<span class="plain-syntax"> 0.2% dictionary 7751 objects, 372048 bytes</span>
<span class="plain-syntax"> 0.2% dictionary 7754 objects, 372192 bytes</span>
<span class="plain-syntax"> 0.2% verb_form 388 objects, 350752 bytes</span>
<span class="plain-syntax"> 0.2% noun 2395 objects, 287400 bytes</span>
<span class="plain-syntax"> 0.1% compilation_subtask 3388 objects, 271040 bytes</span>
<span class="plain-syntax"> 0.1% inference_subject 672 objects, 263424 bytes</span>
<span class="plain-syntax"> 0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes</span>
<span class="plain-syntax"> 0.1% vanilla_function 3807 objects, 243648 bytes</span>
<span class="plain-syntax"> 0.1% vanilla_function 3808 objects, 243712 bytes</span>
<span class="plain-syntax"> 0.1% binary_predicate 330 objects, 174240 bytes</span>
<span class="plain-syntax"> 0.1% hierarchy_location 1189 objects, 171216 bytes</span>
<span class="plain-syntax"> 0.1% hierarchy_location 1190 objects, 171360 bytes</span>
<span class="plain-syntax"> 0.1% linguistic_stock_item 3338 objects, 160224 bytes</span>
<span class="plain-syntax"> 0.1% rule_family_data 404 objects, 148672 bytes</span>
<span class="plain-syntax"> 0.1% nonterminal 773 objects, 142232 bytes</span>
<span class="plain-syntax"> ---- nonterminal 773 objects, 142232 bytes</span>
<span class="plain-syntax"> ---- nascent_array 2130 objects, 136320 bytes</span>
<span class="plain-syntax"> ---- inference 1705 objects, 122760 bytes</span>
<span class="plain-syntax"> ---- pcalc_term_array 3 x 1000 = 3000 objects, 120096 bytes</span>
<span class="plain-syntax"> ---- documentation_ref 1276 objects, 112288 bytes</span>
<span class="plain-syntax"> ---- documentation_ref 1278 objects, 112464 bytes</span>
<span class="plain-syntax"> ---- inter_schema 1542 objects, 111024 bytes</span>
<span class="plain-syntax"> ---- imperative_defn 1415 objects, 101880 bytes</span>
<span class="plain-syntax"> ---- imperative_defn 1417 objects, 102024 bytes</span>
<span class="plain-syntax"> ---- noun_usage 2419 objects, 96760 bytes</span>
<span class="plain-syntax"> ---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes</span>
<span class="plain-syntax"> ---- inter_tree 7 objects, 95872 bytes</span>
@ -173,8 +173,8 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- spatial_data 677 objects, 64992 bytes</span>
<span class="plain-syntax"> ---- kind_constructor 79 objects, 64464 bytes</span>
<span class="plain-syntax"> ---- linked_list_item_array 4 x 1000 = 4000 objects, 64128 bytes</span>
<span class="plain-syntax"> ---- actions_rcd_data 1954 objects, 62528 bytes</span>
<span class="plain-syntax"> ---- scenes_rcd_data 1954 objects, 62528 bytes</span>
<span class="plain-syntax"> ---- actions_rcd_data 1958 objects, 62656 bytes</span>
<span class="plain-syntax"> ---- scenes_rcd_data 1958 objects, 62656 bytes</span>
<span class="plain-syntax"> ---- booking 868 objects, 62496 bytes</span>
<span class="plain-syntax"> ---- kind_macro_definition 9 objects, 62280 bytes</span>
<span class="plain-syntax"> ---- command_grammar 130 objects, 58240 bytes</span>
@ -187,8 +187,8 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- ap_clause_array 2 x 400 = 800 objects, 51264 bytes</span>
<span class="plain-syntax"> ---- HTML_tag_array 1 x 1000 objects, 48032 bytes</span>
<span class="plain-syntax"> ---- heading 212 objects, 47488 bytes</span>
<span class="plain-syntax"> ---- to_family_data 527 objects, 42160 bytes</span>
<span class="plain-syntax"> ---- text_substitution 438 objects, 42048 bytes</span>
<span class="plain-syntax"> ---- to_family_data 525 objects, 42000 bytes</span>
<span class="plain-syntax"> ---- activity_list_array 1 x 1000 objects, 40032 bytes</span>
<span class="plain-syntax"> ---- anl_clause_array 1 x 1000 objects, 40032 bytes</span>
<span class="plain-syntax"> ---- shared_variable_access_list_array 12 x 100 = 1200 objects, 38784 bytes</span>
@ -200,8 +200,8 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- stack_frame_box 307 objects, 29472 bytes</span>
<span class="plain-syntax"> ---- verb_sense 407 objects, 29304 bytes</span>
<span class="plain-syntax"> ---- action_pattern_array 7 x 100 = 700 objects, 28224 bytes</span>
<span class="plain-syntax"> ---- filename 702 objects, 28080 bytes</span>
<span class="plain-syntax"> ---- pathname 664 objects, 26560 bytes</span>
<span class="plain-syntax"> ---- filename 703 objects, 28120 bytes</span>
<span class="plain-syntax"> ---- pathname 660 objects, 26400 bytes</span>
<span class="plain-syntax"> ---- shared_variable_set_array 6 x 100 = 600 objects, 24192 bytes</span>
<span class="plain-syntax"> ---- parse_node_tree 27 objects, 23544 bytes</span>
<span class="plain-syntax"> ---- property 148 objects, 22496 bytes</span>
@ -211,7 +211,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- pipeline_step 15 objects, 20280 bytes</span>
<span class="plain-syntax"> ---- action_name 90 objects, 20160 bytes</span>
<span class="plain-syntax"> ---- timed_rules_rfd_data 404 objects, 19392 bytes</span>
<span class="plain-syntax"> ---- method 398 objects, 19104 bytes</span>
<span class="plain-syntax"> ---- method 403 objects, 19344 bytes</span>
<span class="plain-syntax"> ---- build_vertex 157 objects, 18840 bytes</span>
<span class="plain-syntax"> ---- instance 162 objects, 18144 bytes</span>
<span class="plain-syntax"> ---- pcalc_prop_deferral 86 objects, 17888 bytes</span>
@ -224,10 +224,11 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- booking_list 407 objects, 13024 bytes</span>
<span class="plain-syntax"> ---- web_bibliographic_datum 203 objects, 12992 bytes</span>
<span class="plain-syntax"> ---- adjective_iname_holder 323 objects, 12920 bytes</span>
<span class="plain-syntax"> ---- tree_node 149 objects, 11920 bytes</span>
<span class="plain-syntax"> ---- tree_node 148 objects, 11840 bytes</span>
<span class="plain-syntax"> ---- uniqueness_count 482 objects, 11568 bytes</span>
<span class="plain-syntax"> ---- inter_construct 32 objects, 11008 bytes</span>
<span class="plain-syntax"> ---- stopwatch_timer 124 objects, 9920 bytes</span>
<span class="plain-syntax"> ---- programming_language 1 object, 8792 bytes</span>
<span class="plain-syntax"> ---- heading_tree 27 objects, 8424 bytes</span>
<span class="plain-syntax"> ---- inbuild_work 124 objects, 7936 bytes</span>
<span class="plain-syntax"> ---- equation_node 68 objects, 7616 bytes</span>
@ -241,6 +242,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- inbuild_edition 85 objects, 6120 bytes</span>
<span class="plain-syntax"> ---- section_md 62 objects, 5952 bytes</span>
<span class="plain-syntax"> ---- parsed_use_option_setting 79 objects, 5688 bytes</span>
<span class="plain-syntax"> ---- cdoc_code_line 110 objects, 5280 bytes</span>
<span class="plain-syntax"> ---- activity 35 objects, 5040 bytes</span>
<span class="plain-syntax"> ---- build_script 157 objects, 5024 bytes</span>
<span class="plain-syntax"> ---- inform_extension 26 objects, 4992 bytes</span>
@ -248,35 +250,34 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- value_property_data 86 objects, 4816 bytes</span>
<span class="plain-syntax"> ---- compatibility_specification 100 objects, 4800 bytes</span>
<span class="plain-syntax"> ---- parsing_pp_data 96 objects, 4608 bytes</span>
<span class="plain-syntax"> ---- command_line_switch 55 objects, 4400 bytes</span>
<span class="plain-syntax"> ---- cdoc_code_line 110 objects, 4400 bytes</span>
<span class="plain-syntax"> ---- command_line_switch 56 objects, 4480 bytes</span>
<span class="plain-syntax"> ---- semver_range 42 objects, 4368 bytes</span>
<span class="plain-syntax"> ---- use_option 31 objects, 4216 bytes</span>
<span class="plain-syntax"> ---- either_or_property_data 62 objects, 3968 bytes</span>
<span class="plain-syntax"> ---- parse_node_annotation_type 124 objects, 3968 bytes</span>
<span class="plain-syntax"> ---- either_or_property_data 62 objects, 3968 bytes</span>
<span class="plain-syntax"> ---- method_set 109 objects, 3488 bytes</span>
<span class="plain-syntax"> ---- definition 48 objects, 3456 bytes</span>
<span class="plain-syntax"> ---- method_set 108 objects, 3456 bytes</span>
<span class="plain-syntax"> ---- submodule_request 86 objects, 3440 bytes</span>
<span class="plain-syntax"> ---- property_setting_bp_data 86 objects, 3440 bytes</span>
<span class="plain-syntax"> ---- submodule_request 86 objects, 3440 bytes</span>
<span class="plain-syntax"> ---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes</span>
<span class="plain-syntax"> ---- target_vm 20 objects, 2880 bytes</span>
<span class="plain-syntax"> ---- JSON_type 39 objects, 2808 bytes</span>
<span class="plain-syntax"> ---- JSON_single_requirement 55 objects, 2640 bytes</span>
<span class="plain-syntax"> ---- parentage_inference_data 79 objects, 2528 bytes</span>
<span class="plain-syntax"> ---- part_of_inference_data 79 objects, 2528 bytes</span>
<span class="plain-syntax"> ---- parentage_inference_data 79 objects, 2528 bytes</span>
<span class="plain-syntax"> ---- kind_constructor_instance_rule_array 1 x 100 objects, 2432 bytes</span>
<span class="plain-syntax"> ---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes</span>
<span class="plain-syntax"> ---- equation_symbol 30 objects, 2400 bytes</span>
<span class="plain-syntax"> ---- scene 1 object, 2352 bytes</span>
<span class="plain-syntax"> ---- build_step 28 objects, 2016 bytes</span>
<span class="plain-syntax"> ---- pronoun_usage 42 objects, 1680 bytes</span>
<span class="plain-syntax"> ---- compiler_feature 30 objects, 1680 bytes</span>
<span class="plain-syntax"> ---- pronoun_usage 42 objects, 1680 bytes</span>
<span class="plain-syntax"> ---- table_contribution_array 1 x 100 objects, 1632 bytes</span>
<span class="plain-syntax"> ---- inform_pipeline 24 objects, 1536 bytes</span>
<span class="plain-syntax"> ---- inbuild_requirement 37 objects, 1480 bytes</span>
<span class="plain-syntax"> ---- noun_filter_token 22 objects, 1408 bytes</span>
<span class="plain-syntax"> ---- inter_node_array 35 objects, 1400 bytes</span>
<span class="plain-syntax"> ---- special_meaning_holder 35 objects, 1400 bytes</span>
<span class="plain-syntax"> ---- inter_node_array 35 objects, 1400 bytes</span>
<span class="plain-syntax"> ---- JSON_requirement 42 objects, 1344 bytes</span>
<span class="plain-syntax"> ---- constant_phrase 20 objects, 1280 bytes</span>
<span class="plain-syntax"> ---- table_column 16 objects, 1280 bytes</span>
@ -303,9 +304,9 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- chapter_md 7 objects, 616 bytes</span>
<span class="plain-syntax"> ---- code_generation 1 object, 576 bytes</span>
<span class="plain-syntax"> ---- cdoc_paragraph 18 objects, 576 bytes</span>
<span class="plain-syntax"> ---- inter_warehouse_room 10 objects, 560 bytes</span>
<span class="plain-syntax"> ---- generated_segment 14 objects, 560 bytes</span>
<span class="plain-syntax"> ---- inter_annotation_form 14 objects, 560 bytes</span>
<span class="plain-syntax"> ---- generated_segment 14 objects, 560 bytes</span>
<span class="plain-syntax"> ---- inter_warehouse_room 10 objects, 560 bytes</span>
<span class="plain-syntax"> ---- module 7 objects, 560 bytes</span>
<span class="plain-syntax"> ---- rulebook_outcome 17 objects, 544 bytes</span>
<span class="plain-syntax"> ---- small_word_set 11 objects, 528 bytes</span>
@ -314,72 +315,72 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- bp_family 14 objects, 448 bytes</span>
<span class="plain-syntax"> ---- inbuild_genre 8 objects, 448 bytes</span>
<span class="plain-syntax"> ---- inference_family 11 objects, 440 bytes</span>
<span class="plain-syntax"> ---- source_file 5 objects, 400 bytes</span>
<span class="plain-syntax"> ---- source_file 5 objects, 440 bytes</span>
<span class="plain-syntax"> ---- article_usage 8 objects, 384 bytes</span>
<span class="plain-syntax"> ---- module_request 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- grammatical_category 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- tree_node_type 8 objects, 384 bytes</span>
<span class="plain-syntax"> ---- cached_kind_declaration 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- tree_inventory 1 object, 320 bytes</span>
<span class="plain-syntax"> ---- door_dir_notice 5 objects, 320 bytes</span>
<span class="plain-syntax"> ---- tree_inventory 1 object, 320 bytes</span>
<span class="plain-syntax"> ---- grammatical_category 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- module_request 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- pronoun 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- inter_pipeline 1 object, 312 bytes</span>
<span class="plain-syntax"> ---- compiled_documentation 4 objects, 288 bytes</span>
<span class="plain-syntax"> ---- cdoc_code_sample 6 objects, 288 bytes</span>
<span class="plain-syntax"> ---- compiled_documentation 3 objects, 288 bytes</span>
<span class="plain-syntax"> ---- up_family 9 objects, 288 bytes</span>
<span class="plain-syntax"> ---- tree_node_type 6 objects, 288 bytes</span>
<span class="plain-syntax"> ---- compilation_unit 5 objects, 280 bytes</span>
<span class="plain-syntax"> ---- explicit_bp_data 5 objects, 280 bytes</span>
<span class="plain-syntax"> ---- contents_entry 7 objects, 280 bytes</span>
<span class="plain-syntax"> ---- door_to_notice 5 objects, 280 bytes</span>
<span class="plain-syntax"> ---- kit_dependency 5 objects, 240 bytes</span>
<span class="plain-syntax"> ---- compilation_unit 5 objects, 280 bytes</span>
<span class="plain-syntax"> ---- contents_entry 7 objects, 280 bytes</span>
<span class="plain-syntax"> ---- verb_usage_tier 5 objects, 240 bytes</span>
<span class="plain-syntax"> ---- kit_dependency 5 objects, 240 bytes</span>
<span class="plain-syntax"> ---- inform_project 1 object, 232 bytes</span>
<span class="plain-syntax"> ---- adjective_meaning_family 7 objects, 224 bytes</span>
<span class="plain-syntax"> ---- local_block_value 4 objects, 224 bytes</span>
<span class="plain-syntax"> ---- adjective_meaning_family 7 objects, 224 bytes</span>
<span class="plain-syntax"> ---- test_scenario 1 object, 216 bytes</span>
<span class="plain-syntax"> ---- release_instructions 1 object, 208 bytes</span>
<span class="plain-syntax"> ---- build_skill 5 objects, 200 bytes</span>
<span class="plain-syntax"> ---- code_generator 5 objects, 200 bytes</span>
<span class="plain-syntax"> ---- attachment_instruction 5 objects, 200 bytes</span>
<span class="plain-syntax"> ---- cdoc_heading 4 objects, 192 bytes</span>
<span class="plain-syntax"> ---- cdoc_code_sample 6 objects, 192 bytes</span>
<span class="plain-syntax"> ---- element_activation 6 objects, 192 bytes</span>
<span class="plain-syntax"> ---- code_generator 5 objects, 200 bytes</span>
<span class="plain-syntax"> ---- build_skill 5 objects, 200 bytes</span>
<span class="plain-syntax"> ---- plural_dictionary_entry 4 objects, 192 bytes</span>
<span class="plain-syntax"> ---- cdoc_example 4 objects, 192 bytes</span>
<span class="plain-syntax"> ---- element_activation 6 objects, 192 bytes</span>
<span class="plain-syntax"> ---- cdoc_passage 7 objects, 168 bytes</span>
<span class="plain-syntax"> ---- cdoc_heading 3 objects, 168 bytes</span>
<span class="plain-syntax"> ---- imperative_defn_family 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- inter_architecture 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- cdoc_example 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- heterogeneous_tree 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- inference_subject_family 5 objects, 160 bytes</span>
<span class="plain-syntax"> ---- inbuild_nest 3 objects, 120 bytes</span>
<span class="plain-syntax"> ---- heterogeneous_tree 3 objects, 120 bytes</span>
<span class="plain-syntax"> ---- inform_language 1 object, 104 bytes</span>
<span class="plain-syntax"> ---- group_together_function 2 objects, 80 bytes</span>
<span class="plain-syntax"> ---- compile_task_data 1 object, 80 bytes</span>
<span class="plain-syntax"> ---- group_together_function 2 objects, 80 bytes</span>
<span class="plain-syntax"> ---- article 2 objects, 80 bytes</span>
<span class="plain-syntax"> ---- inter_warehouse 1 object, 56 bytes</span>
<span class="plain-syntax"> ---- build_methodology 1 object, 56 bytes</span>
<span class="plain-syntax"> ---- figures_data 1 object, 56 bytes</span>
<span class="plain-syntax"> ---- build_methodology 1 object, 56 bytes</span>
<span class="plain-syntax"> ---- HTML_file_state 1 object, 48 bytes</span>
<span class="plain-syntax"> ---- inform_kit_ittt 1 object, 48 bytes</span>
<span class="plain-syntax"> ---- star_invention 1 object, 48 bytes</span>
<span class="plain-syntax"> ---- HTML_file_state 1 object, 48 bytes</span>
<span class="plain-syntax"> ---- tree_type 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- loop_over_scope 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- kind_template_definition 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- I6_generation_data 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- by_function_bp_data 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- target_pragma_setting 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- by_function_bp_data 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- loop_over_scope 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- tree_type 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- I6_generation_data 1 object, 40 bytes</span>
<span class="plain-syntax">99.9% was used for memory not allocated for objects:</span>
<span class="plain-syntax"> 62.0% text stream storage 88036640 bytes in 501783 claims</span>
<span class="plain-syntax"> 3.7% dictionary storage 5377536 bytes in 7751 claims</span>
<span class="plain-syntax"> 62.1% text stream storage 88595684 bytes in 508381 claims</span>
<span class="plain-syntax"> 3.8% dictionary storage 5480960 bytes in 7754 claims</span>
<span class="plain-syntax"> ---- sorting 2624 bytes in 531 claims</span>
<span class="plain-syntax"> 5.0% source text 7200000 bytes in 3 claims</span>
<span class="plain-syntax"> 7.6% source text details 10800000 bytes in 2 claims</span>
<span class="plain-syntax"> 7.5% source text details 10800000 bytes in 2 claims</span>
<span class="plain-syntax"> 0.1% documentation fragments 262144 bytes in 1 claim</span>
<span class="plain-syntax"> ---- linguistic stock array 81920 bytes in 2 claims</span>
<span class="plain-syntax"> ---- small word set array 105600 bytes in 22 claims</span>
<span class="plain-syntax"> 3.3% inter symbols storage 4703712 bytes in 28290 claims</span>
<span class="plain-syntax"> 11.8% inter bytecode storage 16758140 bytes in 15 claims</span>
<span class="plain-syntax"> 3.3% inter symbols storage 4704736 bytes in 28298 claims</span>
<span class="plain-syntax"> 11.7% inter bytecode storage 16758228 bytes in 15 claims</span>
<span class="plain-syntax"> 4.3% inter links storage 6222976 bytes in 11 claims</span>
<span class="plain-syntax"> 0.1% inter tree location list storage 191232 bytes in 32 claims</span>
<span class="plain-syntax"> 1.2% instance-of-kind counting 1731856 bytes in 1 claim</span>
@ -388,7 +389,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- code generation workspace for objects 3488 bytes in 19 claims</span>
<span class="plain-syntax"> 0.1% emitter array storage 281184 bytes in 2006 claims</span>
<span class="plain-syntax">-137.-2% was overhead - -194583184 bytes = -190022K = -185 MB</span>
<span class="plain-syntax">-136.-8% was overhead - -195020968 bytes = -190450K = -185 MB</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. Preform grammar. </b>The full annotated description of the Preform grammar (see <a href="../words-module/4-ap.html" class="internal">About Preform (in words)</a>),
with optimisation details and hit/miss statistics added, is also long: it's
@ -397,7 +398,7 @@ sample, showing the nonterminal used to parse literals in Inform 7 source text:
</p>
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;s-literal&gt; hits 2131/24680 nti 19 constraint (none) extremes [1, infinity)</span>
<span class="plain-syntax">&lt;s-literal&gt; hits 2131/24688 nti 19 constraint (none) extremes [1, infinity)</span>
<span class="plain-syntax"> English:</span>
<span class="plain-syntax"> (@1)&lt;cardinal-number&gt;=1 </span>
<span class="plain-syntax"> (hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]</span>
@ -415,17 +416,17 @@ sample, showing the nonterminal used to parse literals in Inform 7 source text:
<span class="plain-syntax"> (hits 1575/5756) (matched: 'Can be used for objects which are purely</span>
<span class="plain-syntax"> conceptual, like ideas, or are needed for internal book-keeping.') constraint (none) extremes [1, 1]</span>
<span class="plain-syntax"> &lt;s-literal-real-number&gt;=1 </span>
<span class="plain-syntax"> (hits 11/10320) (matched: 'plus infinity') constraint (none) extremes [1, infinity)</span>
<span class="plain-syntax"> (hits 11/10324) (matched: 'plus infinity') constraint (none) extremes [1, infinity)</span>
<span class="plain-syntax"> (@1)&lt;s-literal-truth-state&gt;=1 </span>
<span class="plain-syntax"> (hits 100/379) (matched: 'false') constraint CS = {13} extremes [1, 1]</span>
<span class="plain-syntax"> &lt;s-literal-list&gt;=1 </span>
<span class="plain-syntax"> (hits 0/3246) constraint DS = {15} extremes [2, infinity)</span>
<span class="plain-syntax"> (hits 0/3250) constraint DS = {15} extremes [2, infinity)</span>
<span class="plain-syntax"> (@1)unicode &lt;s-unicode-character&gt;=1 </span>
<span class="plain-syntax"> (hits 0/3994) constraint DS = {19} extremes [2, infinity)</span>
<span class="plain-syntax"> (hits 0/3998) constraint DS = {19} extremes [2, infinity)</span>
<span class="plain-syntax"> &lt;s-literal-time&gt;=1 </span>
<span class="plain-syntax"> (hits 0/3569) constraint DW = {16, 17, 18} extremes [2, 5]</span>
<span class="plain-syntax"> (hits 0/3571) constraint DW = {16, 17, 18} extremes [2, 5]</span>
<span class="plain-syntax"> &lt;s-literal-unit-notation&gt;=1 </span>
<span class="plain-syntax"> (hits 0/10209) constraint (none) extremes [1, infinity)</span>
<span class="plain-syntax"> (hits 0/10213) constraint (none) extremes [1, infinity)</span>
</pre>
<p class="commentary">The unabridged grammar is here:
</p>
@ -480,8 +481,8 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'asking for information'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'out of world'</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out asking for information' {unit: 3} {imperative definition: 835}</span>
<span class="plain-syntax"> IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 836}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out asking for information' {unit: 3} {imperative definition: 837}</span>
<span class="plain-syntax"> IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 838}</span>
<span class="plain-syntax"> HEADING_NT'section 1 - errands' {heading 5} {under: H5'section 1 - errands'} {unit: 3}</span>
<span class="plain-syntax"> SENTENCE_NT'the current actor is a person which varies' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
@ -491,8 +492,8 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'current owner' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'current owner' {nonlocal: 'current owner'(var)person}} {created here}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'person which varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: &lt;&lt; kind=people variable-pointer(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 837}</span>
<span class="plain-syntax"> IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 838}</span>
<span class="plain-syntax"> IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 839}</span>
<span class="plain-syntax"> IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 840}</span>
<span class="plain-syntax"> SENTENCE_NT'a person can be active or passive' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: &lt;&lt; kind=person(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
@ -508,34 +509,34 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'are' {verb 'be' 3p p act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'character movement rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: character movement}} {created here}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: &lt;&lt; kind=rulebook(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'the first character movement rule' {unit: 3} {imperative definition: 839}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 840}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 841}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 3} {imperative definition: 842}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 843}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 844}</span>
<span class="plain-syntax"> IMPERATIVE_NT'the first character movement rule' {unit: 3} {imperative definition: 841}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 842}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 843}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 3} {imperative definition: 844}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 845}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 846}</span>
<span class="plain-syntax"> SENTENCE_NT'the shopowner rules is a rulebook' {unit: 3} {classified} {clears pronouns}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'shopowner rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopowner}} {created here}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: &lt;&lt; kind=rulebook(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 845}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 3} {imperative definition: 846}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 3} {imperative definition: 847}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 848}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 847}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 3} {imperative definition: 848}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 3} {imperative definition: 849}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 850}</span>
<span class="plain-syntax"> SENTENCE_NT'filing is an action applying to one thing' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'filing'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'applying to one thing'</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 3} {imperative definition: 849}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone filing' {unit: 3} {imperative definition: 850}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone filing' {unit: 3} {imperative definition: 851}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 3} {imperative definition: 851}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone filing' {unit: 3} {imperative definition: 852}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone filing' {unit: 3} {imperative definition: 853}</span>
<span class="plain-syntax"> SENTENCE_NT'the shopper rules is a rulebook' {unit: 3} {classified} {clears pronouns}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'shopper rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopper}} {created here}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: &lt;&lt; kind=rulebook(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 852}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 853}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 854}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 854}</span>
<span class="plain-syntax"> IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 855}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 856}</span>
<span class="plain-syntax"> DEFN_CONT_NT'a room is air-conditioned' {unit: 3}</span>
<span class="plain-syntax"> CODE_BLOCK_NT</span>
<span class="plain-syntax"> CODE_BLOCK_NT {control structure: IF}</span>
@ -593,8 +594,8 @@ for a lengthy read:
<span class="plain-syntax"> COMMON_NOUN_NT'artwork' {indefinite 'an' n/m/f nom/acc s} {refined} {creation: &lt;&lt; kind=artwork(x) &gt;&gt;} {refers: infs'artwork'} {eval: TEST_VALUE_NT} {created here}</span>
<span class="plain-syntax"> KIND_NT'kind of thing' {refined} {refers: infs'thing'}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: &lt;&lt; kind=thing(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of an artwork' {unit: 3} {imperative definition: 855}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after printing the name of an artwork' {unit: 3} {imperative definition: 856}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of an artwork' {unit: 3} {imperative definition: 857}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after printing the name of an artwork' {unit: 3} {imperative definition: 858}</span>
<span class="plain-syntax"> SENTENCE_NT'an artwork can be submitted or reserved' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'an artwork' {refined} {refers: infs'artwork'} {creation: &lt;&lt; kind=artwork(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
@ -607,49 +608,49 @@ for a lengthy read:
<span class="plain-syntax"> COMMON_NOUN_NT'book' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: &lt;&lt; kind=book(x) &gt;&gt;} {refers: infs'book'} {eval: TEST_VALUE_NT} {created here}</span>
<span class="plain-syntax"> KIND_NT'kind of artwork' {refined} {refers: infs'artwork'}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: &lt;&lt; kind=artwork(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 3} {imperative definition: 857}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving a book' {unit: 3} {imperative definition: 858}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone resolving a book' {unit: 3} {imperative definition: 859}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 860}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before grouping together books' {unit: 3} {imperative definition: 861}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 3} {imperative definition: 859}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving a book' {unit: 3} {imperative definition: 860}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone resolving a book' {unit: 3} {imperative definition: 861}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 862}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before grouping together books' {unit: 3} {imperative definition: 863}</span>
<span class="plain-syntax"> SENTENCE_NT'a stamped envelope is a kind of thing' {unit: 3} {classified} {interpretation of subject: infs'book'}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'stamped envelope' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: &lt;&lt; kind=stamped envelope(x) &gt;&gt;} {refers: infs'stamped envelope'} {eval: TEST_VALUE_NT} {created here}</span>
<span class="plain-syntax"> KIND_NT'kind of thing' {refined} {refers: infs'thing'}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: &lt;&lt; kind=thing(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 3} {imperative definition: 862}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 3} {imperative definition: 863}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 3} {imperative definition: 864}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 3} {imperative definition: 865}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 3} {imperative definition: 864}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 3} {imperative definition: 865}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 3} {imperative definition: 866}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 3} {imperative definition: 867}</span>
<span class="plain-syntax"> SENTENCE_NT'a dvd is a kind of artwork' {unit: 3} {classified} {interpretation of subject: infs'stamped envelope'}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'dvd' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: &lt;&lt; kind=dvd(x) &gt;&gt;} {refers: infs'dvd'} {eval: TEST_VALUE_NT} {created here}</span>
<span class="plain-syntax"> KIND_NT'kind of artwork' {refined} {refers: infs'artwork'}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: &lt;&lt; kind=artwork(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 3} {imperative definition: 866}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 3} {imperative definition: 867}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone resolving a dvd' {unit: 3} {imperative definition: 868}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 3} {imperative definition: 869}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 870}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before grouping together dvds' {unit: 3} {imperative definition: 871}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 3} {imperative definition: 868}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 3} {imperative definition: 869}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone resolving a dvd' {unit: 3} {imperative definition: 870}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 3} {imperative definition: 871}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 872}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before grouping together dvds' {unit: 3} {imperative definition: 873}</span>
<span class="plain-syntax"> SENTENCE_NT'approaching is an action applying to one thing' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'approaching'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'applying to one thing'</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone approaching' {unit: 3} {imperative definition: 872}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone approaching' {unit: 3} {imperative definition: 874}</span>
<span class="plain-syntax"> SENTENCE_NT'a coupon is a kind of thing' {unit: 3} {classified} {interpretation of subject: infs'dvd'}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'coupon' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: &lt;&lt; kind=coupon(x) &gt;&gt;} {refers: infs'coupon'} {eval: TEST_VALUE_NT} {created here}</span>
<span class="plain-syntax"> KIND_NT'kind of thing' {refined} {refers: infs'thing'}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: &lt;&lt; kind=thing(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 3} {imperative definition: 873}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 3} {imperative definition: 875}</span>
<span class="plain-syntax"> SENTENCE_NT'the block giving rule is not listed in any rulebook' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {rule placement sense: negative} {special meaning: rule-listed-in}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'the block giving rule'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'in any rulebook'</span>
<span class="plain-syntax"> IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 3} {imperative definition: 874}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 3} {imperative definition: 875}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 3} {imperative definition: 876}</span>
<span class="plain-syntax"> IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 3} {imperative definition: 876}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 3} {imperative definition: 877}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 3} {imperative definition: 878}</span>
<span class="plain-syntax"> SENTENCE_NT'infection color is a kind of value' {unit: 3} {classified} {interpretation of subject: infs'coupon'}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'infection color' {refined} {creation: &lt;&lt; kind=infection color(x) &gt;&gt;} {refers: infs'object'-k} {eval: TEST_VALUE_NT} {created here}</span>
@ -709,7 +710,7 @@ for a lengthy read:
<span class="plain-syntax"> AND_NT',' {refined}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'saffron silk' {refined} {refers: infs'saffron silk'} {eval: CONSTANT_NT'saffron silk' {kind: infection color} {instance: I81'saffron silk'[infection color]} {enumeration: 25}} {created here}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'cookie dough cream' {refined} {refers: infs'cookie dough cream'} {eval: CONSTANT_NT'cookie dough cream' {kind: infection color} {instance: I82'cookie dough cream'[infection color]} {enumeration: 26}} {created here}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say list of flavors' {unit: 3} {imperative definition: 877}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say list of flavors' {unit: 3} {imperative definition: 879}</span>
<span class="plain-syntax"> SENTENCE_NT'understand "ask vanessa for [flavored ice cream]" as buying ' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'"ask vanessa for [flavored ice cream]"'</span>
@ -722,8 +723,8 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'buying the flavor'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'applying to one infection color'</span>
<span class="plain-syntax"> IMPERATIVE_NT'check buying the flavor' {unit: 3} {imperative definition: 878}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out buying the flavor' {unit: 3} {imperative definition: 879}</span>
<span class="plain-syntax"> IMPERATIVE_NT'check buying the flavor' {unit: 3} {imperative definition: 880}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out buying the flavor' {unit: 3} {imperative definition: 881}</span>
<span class="plain-syntax"> SENTENCE_NT'understand "ice cream" or "cream" or "ice" or "sherbet" or "' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'"ice cream" or "cream" or "ice" or "sherbet" or "sorbet"'</span>
@ -757,12 +758,12 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'the infection color property'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'referring to an ice cream cone'</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 3} {imperative definition: 880}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 3} {imperative definition: 881}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 3} {imperative definition: 882}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 3} {imperative definition: 883}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 3} {imperative definition: 882}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 3} {imperative definition: 883}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 3} {imperative definition: 884}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 3} {imperative definition: 885}</span>
<span class="plain-syntax"> HEADING_NT'section 2 - infection rules' {heading 5} {under: H5'section 2 - infection rules'} {unit: 3}</span>
<span class="plain-syntax"> IMPERATIVE_NT'this is the infection rule' {unit: 3} {imperative definition: 884}</span>
<span class="plain-syntax"> IMPERATIVE_NT'this is the infection rule' {unit: 3} {imperative definition: 886}</span>
<span class="plain-syntax"> SENTENCE_NT'a person can be infected or clean' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: &lt;&lt; kind=person(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
@ -775,11 +776,11 @@ for a lengthy read:
<span class="plain-syntax"> COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: &lt;&lt; kind=person(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> ALLOWED_NT'has' {refined}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'infection color' {indefinite 'an' n/m/f nom/acc s} {refined}</span>
<span class="plain-syntax"> IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 885}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 886}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 887}</span>
<span class="plain-syntax"> IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 888}</span>
<span class="plain-syntax"> IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 889}</span>
<span class="plain-syntax"> IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 887}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 888}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 889}</span>
<span class="plain-syntax"> IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 890}</span>
<span class="plain-syntax"> IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 891}</span>
<span class="plain-syntax"> SENTENCE_NT'understand "sneeze on [something]" as sneezing on' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'"sneeze on [something]"'</span>
@ -788,11 +789,11 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'sneezing on'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'applying to one thing'</span>
<span class="plain-syntax"> IMPERATIVE_NT'check sneezing on' {unit: 3} {imperative definition: 890}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out sneezing on' {unit: 3} {imperative definition: 891}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone sneezing on' {unit: 3} {imperative definition: 892}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report sneezing on' {unit: 3} {imperative definition: 893}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone sneezing on' {unit: 3} {imperative definition: 894}</span>
<span class="plain-syntax"> IMPERATIVE_NT'check sneezing on' {unit: 3} {imperative definition: 892}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out sneezing on' {unit: 3} {imperative definition: 893}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out someone sneezing on' {unit: 3} {imperative definition: 894}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report sneezing on' {unit: 3} {imperative definition: 895}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone sneezing on' {unit: 3} {imperative definition: 896}</span>
<span class="plain-syntax"> SENTENCE_NT'understand "inject [someone] with [something]" as injecting ' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'"inject [someone] with [something]"'</span>
@ -813,10 +814,10 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'injecting it with'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'applying to two things'</span>
<span class="plain-syntax"> IMPERATIVE_NT'check injecting it with' {unit: 3} {imperative definition: 895}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out injecting it with' {unit: 3} {imperative definition: 896}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after injecting the player with something' {unit: 3} {imperative definition: 897}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report injecting it with' {unit: 3} {imperative definition: 898}</span>
<span class="plain-syntax"> IMPERATIVE_NT'check injecting it with' {unit: 3} {imperative definition: 897}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out injecting it with' {unit: 3} {imperative definition: 898}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after injecting the player with something' {unit: 3} {imperative definition: 899}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report injecting it with' {unit: 3} {imperative definition: 900}</span>
<span class="plain-syntax"> HEADING_NT'section 3 - geography' {heading 5} {under: H5'section 3 - geography'} {unit: 3}</span>
<span class="plain-syntax"> INCLUSION_NT'include locksmith by emily short' {unit: 3}</span>
<span class="plain-syntax"> HEADING_NT'version 14 of locksmith by emily short begins here' {heading 0} {under: H0'version 14 of locksmith by emily short begins here'} {includes: Locksmith by Emily Short v14 } {unit: 3}</span>
@ -841,9 +842,9 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'going toward'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'applying to one thing'</span>
<span class="plain-syntax"> IMPERATIVE_NT'check going toward' {unit: 3} {imperative definition: 936}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out going toward' {unit: 3} {imperative definition: 937}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 3} {imperative definition: 938}</span>
<span class="plain-syntax"> IMPERATIVE_NT'check going toward' {unit: 3} {imperative definition: 938}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out going toward' {unit: 3} {imperative definition: 939}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 3} {imperative definition: 940}</span>
<span class="plain-syntax"> SENTENCE_NT'understand "stop" or "cease" as stopping' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'"stop" or "cease"'</span>
@ -852,11 +853,11 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'stopping'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'applying to nothing'</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out stopping' {unit: 3} {imperative definition: 939}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report stopping' {unit: 3} {imperative definition: 940}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after going to an air-conditioned room' {unit: 3} {imperative definition: 941}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after going from an air-conditioned room' {unit: 3} {imperative definition: 942}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 3} {imperative definition: 943}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out stopping' {unit: 3} {imperative definition: 941}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report stopping' {unit: 3} {imperative definition: 942}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after going to an air-conditioned room' {unit: 3} {imperative definition: 943}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after going from an air-conditioned room' {unit: 3} {imperative definition: 944}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 3} {imperative definition: 945}</span>
<span class="plain-syntax"> SENTENCE_NT'the alfred cralle pool hall is a room' {unit: 3} {classified} {interpretation of subject: infs'person'}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'alfred cralle pool hall' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'alfred cralle pool hall'} {eval: CONSTANT_NT'alfred cralle pool hall' {kind: object} {instance: I83'alfred cralle pool hall'} {enumeration: 0}} {created here}</span>
@ -898,7 +899,7 @@ for a lengthy read:
<span class="plain-syntax"> PROPER_NOUN_NT'felt door' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'felt door'} {eval: CONSTANT_NT'felt door' {kind: door} {instance: I85'felt door'} {enumeration: 0}}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'"It has a prominent lock, designed for an old-fashioned key.' {refined} {eval: CONSTANT_NT'"It has a prominent lock, designed for an old-fashioned key.' {kind: text}}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 3} {imperative definition: 944}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 3} {imperative definition: 946}</span>
<span class="plain-syntax"> SENTENCE_NT'nancy johnson memorial square is west of the felt door' {unit: 3} {classified} {interpretation of subject: infs'key to the city'}</span>
<span class="plain-syntax"> VERB_NT'is west of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: west of}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'nancy johnson memorial square' {refined} {refers: infs'nancy johnson memorial square'} {eval: CONSTANT_NT'nancy johnson memorial square' {kind: object} {instance: I87'nancy johnson memorial square'} {enumeration: 0}} {created here}</span>
@ -960,8 +961,8 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'slot' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'slot'} {eval: CONSTANT_NT'slot' {kind: object} {instance: I92'slot'} {enumeration: 0}}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'container' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'container'} {creation: &lt;&lt; kind=container(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out inserting something into the slot' {unit: 3} {imperative definition: 945}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report inserting something into the slot' {unit: 3} {imperative definition: 946}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out inserting something into the slot' {unit: 3} {imperative definition: 947}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report inserting something into the slot' {unit: 3} {imperative definition: 948}</span>
<span class="plain-syntax"> SENTENCE_NT'hamwi street is northeast of an iron gate' {unit: 3} {classified} {interpretation of subject: infs'slot'}</span>
<span class="plain-syntax"> VERB_NT'is northeast of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: northeast of}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'hamwi street' {refined} {refers: infs'hamwi street'} {eval: CONSTANT_NT'hamwi street' {kind: object} {instance: I93'hamwi street'} {enumeration: 0}} {created here}</span>
@ -985,7 +986,7 @@ for a lengthy read:
<span class="plain-syntax"> AND_NT'and' {refined}</span>
<span class="plain-syntax"> ADJECTIVE_NT'lockable' {refined} {predicate: lockable} {creation: &lt;&lt; lockable(x) ^ lockable(x) &gt;&gt;}</span>
<span class="plain-syntax"> ADJECTIVE_NT'unlocked' {refined} {predicate: unlocked} {creation: &lt;&lt; unlocked(x) ^ unlocked(x) &gt;&gt;}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 3} {imperative definition: 947}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 3} {imperative definition: 949}</span>
<span class="plain-syntax"> SENTENCE_NT'cold comfort ice cream is north of a metal door' {unit: 3} {classified} {interpretation of subject: infs'iron gate'}</span>
<span class="plain-syntax"> VERB_NT'is north of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: north of}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'cold comfort ice cream' {refined} {refers: infs'cold comfort ice cream'} {eval: CONSTANT_NT'cold comfort ice cream' {kind: object} {instance: I95'cold comfort ice cream'} {enumeration: 0}} {created here}</span>
@ -1091,8 +1092,8 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'"glass"'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'the box'</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 3} {imperative definition: 948}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 3} {imperative definition: 949}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 3} {imperative definition: 950}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 3} {imperative definition: 951}</span>
<span class="plain-syntax"> SENTENCE_NT'the syringe is in the emergency box' {unit: 3} {classified} {interpretation of subject: infs'emergency box'}</span>
<span class="plain-syntax"> VERB_NT'is in' {verb 'be' 3p s act IS_TENSE +ve} {prep1: in}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'syringe' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'syringe'} {eval: CONSTANT_NT'syringe' {kind: object} {instance: I104'syringe'} {enumeration: 0}} {created here}</span>
@ -1195,8 +1196,8 @@ for a lengthy read:
<span class="plain-syntax"> SENTENCE_NT'use full-length room descriptions' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'use' {verb 'use' 3p p act IS_TENSE +ve} {special meaning: use}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'full-length room descriptions'</span>
<span class="plain-syntax"> IMPERATIVE_NT'after looking in an outdoors room' {unit: 3} {imperative definition: 950}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 951}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after looking in an outdoors room' {unit: 3} {imperative definition: 952}</span>
<span class="plain-syntax"> IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 953}</span>
<span class="plain-syntax"> DEFN_CONT_NT'a door is proximate' {unit: 3}</span>
<span class="plain-syntax"> CODE_BLOCK_NT</span>
<span class="plain-syntax"> CODE_BLOCK_NT {control structure: IF}</span>
@ -1217,7 +1218,7 @@ for a lengthy read:
<span class="plain-syntax"> INVOCATION_NT'yes' {phrase invoked: &lt;no-inter-name&gt;}</span>
<span class="plain-syntax"> INVOCATION_LIST_NT'no' {unit: 3}</span>
<span class="plain-syntax"> INVOCATION_NT'no' {phrase invoked: &lt;no-inter-name&gt;}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 3} {imperative definition: 952}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 3} {imperative definition: 954}</span>
<span class="plain-syntax"> SENTENCE_NT'blank is a room' {unit: 3} {classified} {interpretation of subject: infs'key to the city'}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'blank' {refined} {refers: infs'blank'} {eval: CONSTANT_NT'blank' {kind: object} {instance: I108'blank'} {enumeration: 0}} {created here}</span>
@ -1443,15 +1444,15 @@ for a lengthy read:
<span class="plain-syntax"> PROPER_NOUN_NT'ned' {refined} {refers: infs'ned'} {eval: CONSTANT_NT'ned' {kind: man} {instance: I161'ned'} {enumeration: 0}}</span>
<span class="plain-syntax"> RELATIONSHIP_NT'owns' {meaning: ownership-r} {refined}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'movie rental' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'movie rental store'} {eval: CONSTANT_NT'movie rental store' {kind: object} {instance: I99'movie rental store'} {enumeration: 0}}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 3} {imperative definition: 953}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 3} {imperative definition: 955}</span>
<span class="plain-syntax"> SENTENCE_NT'the description of a person is usually "[The noun] [if the n' {unit: 3} {classified} {interpretation of subject: infs'ned'}</span>
<span class="plain-syntax"> VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> X_OF_Y_NT'description of a person' {definite 'the' n/m/f s/p nom/acc} {refined}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: &lt;&lt; kind=person(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {refined} {eval: CONSTANT_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {kind: text}}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after examining another person who is carrying something' {unit: 3} {imperative definition: 954}</span>
<span class="plain-syntax"> IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 955}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after examining another person who is carrying something' {unit: 3} {imperative definition: 956}</span>
<span class="plain-syntax"> IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 957}</span>
<span class="plain-syntax"> HEADING_NT'section 5 - conversation' {heading 5} {under: H5'section 5 - conversation'} {unit: 3}</span>
<span class="plain-syntax"> SENTENCE_NT'a person has a table name called conversation' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve}</span>
@ -1460,8 +1461,8 @@ for a lengthy read:
<span class="plain-syntax"> PROPERTYCALLED_NT'called'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'table name' {indefinite 'a' n/m/f nom/acc s}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'conversation'</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of asking someone about something' {unit: 3} {imperative definition: 956}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of telling someone about something' {unit: 3} {imperative definition: 957}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of asking someone about something' {unit: 3} {imperative definition: 958}</span>
<span class="plain-syntax"> IMPERATIVE_NT'instead of telling someone about something' {unit: 3} {imperative definition: 959}</span>
<span class="plain-syntax"> SENTENCE_NT'understand "recap" or "recall" or "review" as recalling conv' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'"recap" or "recall" or "review"'</span>
@ -1470,7 +1471,7 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'recalling conversations'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'applying to nothing'</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out recalling conversations' {unit: 3} {imperative definition: 958}</span>
<span class="plain-syntax"> IMPERATIVE_NT'carry out recalling conversations' {unit: 3} {imperative definition: 960}</span>
<span class="plain-syntax"> SENTENCE_NT'the conversation of a person is usually table of general chi' {unit: 3} {classified} {interpretation of subject: infs'person'}</span>
<span class="plain-syntax"> VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> X_OF_Y_NT'conversation of a person' {definite 'the' n/m/f s/p nom/acc} {refined}</span>
@ -1485,7 +1486,7 @@ for a lengthy read:
<span class="plain-syntax"> PROPER_NOUN_NT'conversation' {refined} {eval: CONSTANT_NT {kind: table names valued property} {property: 'conversation'=table name}}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'table of vanessa chatter' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT'table of vanessa chatter' {kind: table name} {table: table_data} {meaning: {table of vanessa chatter = TABLE_MC}}}</span>
<span class="plain-syntax"> TABLE_NT'table of vanessa chatter topic reply summary turn stamp char' {unit: 3}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after reading a command' {unit: 3} {imperative definition: 959}</span>
<span class="plain-syntax"> IMPERATIVE_NT'after reading a command' {unit: 3} {imperative definition: 961}</span>
<span class="plain-syntax"> HEADING_NT'section 6 - movement description' {heading 5} {under: H5'section 6 - movement description'} {unit: 3}</span>
<span class="plain-syntax"> SENTENCE_NT'a person has some text called walk style' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve}</span>
@ -1532,8 +1533,8 @@ for a lengthy read:
<span class="plain-syntax"> PROPER_NOUN_NT'"sashay"' {refined} {eval: CONSTANT_NT'"sashay"' {kind: text}}</span>
<span class="plain-syntax"> TABLE_NT'table of visible exits character second third heading chosen' {unit: 3}</span>
<span class="plain-syntax"> TABLE_NT'table of visible entrances character second third heading ch' {unit: 3}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 3} {imperative definition: 960}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 3} {imperative definition: 961}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 3} {imperative definition: 962}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 3} {imperative definition: 963}</span>
<span class="plain-syntax"> SENTENCE_NT'a door has a person called last opener' {unit: 3} {classified} {interpretation of subject: infs'person'}</span>
<span class="plain-syntax"> VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: &lt;&lt; kind=door(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
@ -1541,21 +1542,21 @@ for a lengthy read:
<span class="plain-syntax"> PROPERTYCALLED_NT'called'</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'last opener'</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone opening a door' {unit: 3} {imperative definition: 962}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 3} {imperative definition: 963}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone opening a door' {unit: 3} {imperative definition: 964}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 3} {imperative definition: 965}</span>
<span class="plain-syntax"> SENTENCE_NT'the last thing named is a thing that varies' {unit: 3} {classified} {interpretation of subject: infs'door'}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'last thing named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last thing named' {nonlocal: 'last thing named'(var)thing}} {created here}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'thing that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: &lt;&lt; kind=things variable-pointer(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 3} {imperative definition: 964}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone going a direction' {unit: 3} {imperative definition: 965}</span>
<span class="plain-syntax"> IMPERATIVE_NT'this is the movement reporting rule' {unit: 3} {imperative definition: 966}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 3} {imperative definition: 967}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 3} {imperative definition: 966}</span>
<span class="plain-syntax"> IMPERATIVE_NT'report someone going a direction' {unit: 3} {imperative definition: 967}</span>
<span class="plain-syntax"> IMPERATIVE_NT'this is the movement reporting rule' {unit: 3} {imperative definition: 968}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 3} {imperative definition: 969}</span>
<span class="plain-syntax"> SENTENCE_NT'the last person named is a person that varies' {unit: 3} {classified} {interpretation of subject: infs'door'}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'last person named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last person named' {nonlocal: 'last person named'(var)person}} {created here}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'person that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: &lt;&lt; kind=people variable-pointer(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 3} {imperative definition: 968}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 3} {imperative definition: 970}</span>
<span class="plain-syntax"> SENTENCE_NT'group size is a number that varies' {unit: 3} {classified} {interpretation of subject: infs'door'}</span>
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number}} {created here}</span>
@ -1564,19 +1565,19 @@ for a lengthy read:
<span class="plain-syntax"> VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number} {meaning: {group size = VARIABLE_MC}}}</span>
<span class="plain-syntax"> PROPER_NOUN_NT'1' {refined} {eval: CONSTANT_NT'1' {kind: number} {explicit literal} {number: 1}}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to clear marked people' {unit: 3} {imperative definition: 969}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before listing nondescript items' {unit: 3} {imperative definition: 970}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to describe patients' {unit: 3} {imperative definition: 971}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 3} {imperative definition: 972}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 3} {imperative definition: 973}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 3} {imperative definition: 974}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to clear marked people' {unit: 3} {imperative definition: 971}</span>
<span class="plain-syntax"> IMPERATIVE_NT'before listing nondescript items' {unit: 3} {imperative definition: 972}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to describe patients' {unit: 3} {imperative definition: 973}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 3} {imperative definition: 974}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 3} {imperative definition: 975}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 3} {imperative definition: 976}</span>
<span class="plain-syntax"> TABLE_NT'table of dipping phrases dipping "looks as though dipped in"' {unit: 3}</span>
<span class="plain-syntax"> SENTENCE_NT'a door is usually scenery' {unit: 3} {classified} {interpretation of subject: infs'door'}</span>
<span class="plain-syntax"> VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve}</span>
<span class="plain-syntax"> COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: &lt;&lt; kind=door(x) &gt;&gt;} {eval: TEST_VALUE_NT}</span>
<span class="plain-syntax"> ADJECTIVE_NT'scenery' {refined} {predicate: scenery} {creation: &lt;&lt; scenery(x) ^ scenery(x) &gt;&gt;}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 3} {imperative definition: 975}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say optional comma' {unit: 3} {imperative definition: 976}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 3} {imperative definition: 977}</span>
<span class="plain-syntax"> IMPERATIVE_NT'to say optional comma' {unit: 3} {imperative definition: 978}</span>
<span class="plain-syntax"> SENTENCE_NT'test me with go to cold comfort / z / z / z / z / ask vaness' {unit: 3} {classified}</span>
<span class="plain-syntax"> VERB_NT'test' {verb 'test' 3p p act IS_TENSE +ve} {prep2: with} {special meaning: test-with}</span>
<span class="plain-syntax"> UNPARSED_NOUN_NT'me'</span>

View file

@ -91,6 +91,7 @@
<span class="plain-syntax"> -inbuild-verbose equivalent to -inbuild-verbosity=1 (default is -no-inbuild-verbose)</span>
<span class="plain-syntax"> -inbuild-verbosity=N how much inbuild should explain: lowest is 0 (default), highest is 3</span>
<span class="plain-syntax"> -no-index don't produce an Index (default is -index)</span>
<span class="plain-syntax"> -log-to-project X like -log X, but writing the debugging log into the project</span>
<span class="plain-syntax"> -no-problems don't produce (an HTML) Problems report page (default is -problems)</span>
<span class="plain-syntax"> -no-progress don't display progress percentages (default is -progress)</span>
<span class="plain-syntax"> -require-problem X return 0 unless exactly this Problem message is generated</span>

File diff suppressed because it is too large Load diff

View file

@ -59,7 +59,7 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inbuildn.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#1">Chapter 1: Setting Up</a></li><li><b>Inbuild Control</b></li></ul></div>
<p class="purpose">Who shall supervise the supervisor? This section of code will.</p>
<ul class="toc"><li><a href="1-ic.html#SP1">&#167;1. Verbosity</a></li><li><a href="1-ic.html#SP3">&#167;3. Phases</a></li><li><a href="1-ic.html#SP5">&#167;5. Startup phase</a></li><li><a href="1-ic.html#SP6">&#167;6. Configuration phase</a></li><li><a href="1-ic.html#SP10">&#167;10. The Pretinkering, Tinkering, Nested and Projected phases</a></li><li><a href="1-ic.html#SP12">&#167;12. The Graph Construction and Operational phases</a></li><li><a href="1-ic.html#SP13">&#167;13. The nest list</a></li><li><a href="1-ic.html#SP20">&#167;20. The shared project</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="1-ic.html#SP1">&#167;1. Verbosity</a></li><li><a href="1-ic.html#SP3">&#167;3. Phases</a></li><li><a href="1-ic.html#SP5">&#167;5. Startup phase</a></li><li><a href="1-ic.html#SP6">&#167;6. Configuration phase</a></li><li><a href="1-ic.html#SP10">&#167;10. The Pretinkering, Tinkering, Nested and Projected phases</a></li><li><a href="1-ic.html#SP12">&#167;12. The Graph Construction and Operational phases</a></li><li><a href="1-ic.html#SP13">&#167;13. The nest list</a></li><li><a href="1-ic.html#SP19">&#167;19. The shared project</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Verbosity. </b>It is both a strength and a source of anxiety that build managers work in
an autonomous sort of way, doing "whatever is necessary". Some users want
@ -256,7 +256,7 @@ better way to choose a virtual machine to compile to.
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::declare_switch</span><span class="plain-syntax">(</span><span class="constant-syntax">DEPRECATED_EXTERNAL_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"deprecated-external"</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">L</span><span class="string-syntax">"same as -external X, but issues warnings if the nest is actually used"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::declare_switch</span><span class="plain-syntax">(</span><span class="constant-syntax">TRANSIENT_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"transient"</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">L</span><span class="string-syntax">"use X for transient data such as the extensions census"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"(an option now withdrawn)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::end_group</span><span class="plain-syntax">();</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP6">&#167;6</a>.</li></ul>
@ -276,7 +276,7 @@ but <span class="extract"><span class="extract-syntax">-pipeline-file</span></sp
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::begin_group</span><span class="plain-syntax">(</span><span class="constant-syntax">INBUILD_INTER_CLSG</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"for tweaking code generation from Inter"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::declare_switch</span><span class="plain-syntax">(</span><span class="constant-syntax">KIT_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"kit"</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">L</span><span class="string-syntax">"include Inter code from the kit called X"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"(an option now withdrawn)"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::declare_switch</span><span class="plain-syntax">(</span><span class="constant-syntax">PIPELINE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"pipeline"</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">L</span><span class="string-syntax">"specify code-generation pipeline by name (default is \"compile\")"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::declare_switch</span><span class="plain-syntax">(</span><span class="constant-syntax">PIPELINE_FILE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"pipeline-file"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
@ -294,7 +294,6 @@ set appropriately.
<span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inter_pipeline_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">transpiled_output_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pipeline_vars</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">shared_transient_resources</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_is_a_debug_compile</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="comment-syntax"> Destined to be compiled with debug features</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_is_a_release_compile</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="comment-syntax"> Omit sections of source text marked not for release</span>
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">output_format</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> What story file we will eventually have</span>
@ -352,20 +351,21 @@ it doesn't know about, that will be one of ours, so it should call the following
<span class="plain-syntax"> </span><a href="2-nst.html#SP4" class="function-link"><span class="function-syntax">Nests::deprecate</span></a><span class="plain-syntax">(</span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">),</span>
<span class="plain-syntax"> </span><span class="constant-syntax">EXTERNAL_NEST_TAG</span><span class="plain-syntax">)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRANSIENT_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_transient_resources</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"the -transient option has been withdrawn"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">BASIC_CLSW:</span><span class="plain-syntax"> </span><a href="5-ps2.html#SP22" class="function-link"><span class="function-syntax">Projects::enter_forcible_basic_mode</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">KIT_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"the -kit option has been withdrawn"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROJECT_CLSW:</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-ic.html#SP21" class="function-link"><span class="function-syntax">Supervisor::set_I7_bundle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</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">if</span><span class="plain-syntax"> (</span><a href="1-ic.html#SP20" class="function-link"><span class="function-syntax">Supervisor::set_I7_bundle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::fatal_with_text</span><span class="plain-syntax">(</span><span class="string-syntax">"can't specify the project twice: '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SOURCE_CLSW:</span><span class="plain-syntax"> {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-ic.html#SP20" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</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">if</span><span class="plain-syntax"> (</span><a href="1-ic.html#SP19" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::fatal_with_text</span><span class="plain-syntax">(</span><span class="string-syntax">"can't specify the source file twice: '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -446,7 +446,7 @@ which continues until the parent calls <span class="extract"><span class="extrac
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_preform_callback</span><span class="plain-syntax"> = </span><span class="identifier-syntax">preform_callback</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Find the virtual machine</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><a href="1-ic.html#SP22" class="function-link"><span class="function-syntax">Supervisor::make_project_from_command_line</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-ic.html#SP21" class="function-link"><span class="function-syntax">Supervisor::make_project_from_command_line</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="1-ic.html#SP15" class="function-link"><span class="function-syntax">Supervisor::sort_nest_list</span></a><span class="plain-syntax">();</span>
@ -524,12 +524,8 @@ hold extensions, kits, language definitions, and so on.
<ul class="items"><li>(a) The "internal" nest is part of the installation of Inform as software.
It contains, for example, the build-in extensions. But it also contains
miscellaneous other files needed by Inform (see below).
</li><li>(b) The "external" nest is the one to which the user installs her own
selection of extensions, and so on. On most platforms, the external nest
is also the default home of "transient" storage, for more ephemeral content,
such as the mechanically generated extension documentation. Some mobile
operating systems are aggressive about wanting to delete ephemeral files
used by applications, so <span class="extract"><span class="extract-syntax">-transient</span></span> can be used to divert these.
</li><li>(b) The "external" nest is a place in which extensions to be shared among
multiple projects can be stored.
</li><li>(c) Every project has its own private nest, in the form of its associated
Materials folder. For example, in <span class="extract"><span class="extract-syntax">Jane Eyre.inform</span></span> is a project, then
alongside it is <span class="extract"><span class="extract-syntax">Jane Eyre.materials</span></span> and this is a nest. The shared nest
@ -659,21 +655,7 @@ just plain old files.
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-ic.html#SP17" class="function-link"><span class="function-syntax">Supervisor::default_internal_path</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. </b>The transient area can be used for build files for project files, where
there's no build directory provided by the project bundle. <span class="extract"><span class="extract-syntax">-transient</span></span> sets
it, but otherwise the external nest is used.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::transient</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Supervisor::transient</span></span>:<br/>Project Services - <a href="5-ps2.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</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">shared_transient_resources</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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">shared_external_nest</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">shared_external_nest</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location</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">shared_transient_resources</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. The shared project. </b>In any single run, each of the Inform tools concerns itself with a single
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. The shared project. </b>In any single run, each of the Inform tools concerns itself with a single
Inform 7 program. This can be presented to it either in a project bundle
(a directory which contains source, settings, space for an index and for
temporary build files), or as a single file (just a text file containing
@ -689,7 +671,7 @@ specify the bundle twice, or specify the file twice.
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project_bundle_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_source</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_source</span></span>:<br/><a href="1-ic.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_source</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_source</span></span>:<br/><a href="1-ic.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</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">project_file_request</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="identifier-syntax">project_file_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
@ -697,7 +679,7 @@ specify the bundle twice, or specify the file twice.
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. </b>If we are given a <span class="extract"><span class="extract-syntax">-project</span></span> on the command line, we can then work out
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. </b>If we are given a <span class="extract"><span class="extract-syntax">-project</span></span> on the command line, we can then work out
where its Materials folder is, and therefore where any expert settings files
would be. Note that the name of the expert settings file depends on the name
of the parent, i.e., it will be <span class="extract"><span class="extract-syntax">inform7-settings.txt</span></span> or <span class="extract"><span class="extract-syntax">inbuild-settings.txt</span></span>
@ -705,7 +687,7 @@ depending on who's asking.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_bundle</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_bundle</span></span>:<br/><a href="1-ic.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_bundle</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_bundle</span></span>:<br/><a href="1-ic.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</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">project_bundle_request</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="identifier-syntax">project_bundle_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
@ -725,7 +707,7 @@ depending on who's asking.
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. </b>This is a deceptively simple-looking function, which took a lot of time
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. </b>This is a deceptively simple-looking function, which took a lot of time
to get right. The situation is that the parent tool may already have
identified a copy <span class="extract"><span class="extract-syntax">C</span></span> to be the main Inform project of this run, or it may not.
If it has, we ignore <span class="extract"><span class="extract-syntax">-project</span></span> but apply <span class="extract"><span class="extract-syntax">-source</span></span> to change its source text
@ -736,7 +718,7 @@ location. If it hasn't, we create a project using <span class="extract"><span cl
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chosen_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::make_project_from_command_line</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Supervisor::make_project_from_command_line</span></span>:<br/><a href="1-ic.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::make_project_from_command_line</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Supervisor::make_project_from_command_line</span></span>:<br/><a href="1-ic.html#SP10">&#167;10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">PRETINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> result of </span><span class="extract"><span class="extract-syntax">-source</span></span><span class="comment-syntax"> at the command line</span>
@ -773,7 +755,7 @@ location. If it hasn't, we create a project using <span class="extract"><span cl
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::project_set_at_command_line</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Supervisor::project_set_at_command_line</span></span>:<br/>Extension Services - <a href="5-es.html#SP9">&#167;9</a><br/>The Installer - <a href="7-ti.html#SP2">&#167;2</a>, <a href="7-ti.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::project_set_at_command_line</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Supervisor::project_set_at_command_line</span></span>:<br/>Extension Services - <a href="5-es.html#SP9">&#167;9</a><br/>The Installer - <a href="7-ti.html#SP2">&#167;2</a>, <a href="7-ti.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</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">chosen_project</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -131,7 +131,7 @@ not a file, false if we know the reverse, and otherwise not applicable.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectBundleManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ProjectBundleManager::claim_folder_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">&#167;22</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectBundleManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ProjectBundleManager::claim_folder_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</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">Directories::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-pbm.html#SP2" class="function-link"><span class="function-syntax">ProjectBundleManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">), </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-pbm.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Police extraneous contents</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>

View file

@ -132,7 +132,7 @@ or <span class="extract"><span class="extract-syntax">.i7</span></span>.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">&#167;22</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-pfm.html#SP2" class="function-link"><span class="function-syntax">ProjectFileManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Filenames::get_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">), </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax"> = </span><a href="4-pfm.html#SP2" class="function-link"><span class="function-syntax">ProjectFileManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>

View file

@ -917,7 +917,7 @@ no project involved, we must take action ourselves.)
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Extensions::construct_graph</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Extensions::construct_graph</span></span>:<br/>Extension Manager - <a href="4-em.html#SP8">&#167;8</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP8">&#167;8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-ic.html#SP22" class="function-link"><span class="function-syntax">Supervisor::project_set_at_command_line</span></a><span class="plain-syntax">() == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-ic.html#SP21" class="function-link"><span class="function-syntax">Supervisor::project_set_at_command_line</span></a><span class="plain-syntax">() == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="2-cps.html#SP7" class="function-link"><span class="function-syntax">Copies::get_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"graphing extension"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Sentences::set_start_of_source</span><span class="plain-syntax">(</span><span class="identifier-syntax">sfsm</span><span class="plain-syntax">, -1);</span>
<span class="plain-syntax"> </span><a href="6-inc.html#SP1" class="function-link"><span class="function-syntax">Inclusions::traverse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">syntax_tree</span><span class="plain-syntax">);</span>

View file

@ -244,7 +244,7 @@ but ending <span class="extract"><span class="extract-syntax">.materials</span><
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::materialise_pathname</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Projects::materialise_pathname</span></span>:<br/><a href="5-ps2.html#SP2">&#167;2</a><br/>Inbuild Control - <a href="1-ic.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">in</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::materialise_pathname</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Projects::materialise_pathname</span></span>:<br/><a href="5-ps2.html#SP2">&#167;2</a><br/>Inbuild Control - <a href="1-ic.html#SP20">&#167;20</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">in</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">mf</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">mf</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">leaf</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">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">mf</span><span class="plain-syntax">)-1;</span>
@ -286,9 +286,7 @@ is small, but one likes to minimise the effect of the CWD.)
<span class="plain-syntax">}</span>
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::build_path</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Projects::build_path</span></span>:<br/><a href="5-ps2.html#SP31">&#167;31</a>, <a href="5-ps2.html#SP33_1">&#167;33.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</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">proj</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</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">Pathnames::down</span><span class="plain-syntax">(</span><a href="5-ps2.html#SP6" class="function-link"><span class="function-syntax">Projects::path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Build"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-ic.html#SP19" class="function-link"><span class="function-syntax">Supervisor::transient</span></a><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">Pathnames::down</span><span class="plain-syntax">(</span><a href="5-ps2.html#SP6" class="function-link"><span class="function-syntax">Projects::path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Build"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::materials_nest</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Projects::materials_nest</span></span>:<br/><a href="5-ps2.html#SP39">&#167;39</a><br/>Extensions Index Page - <a href="7-eip.html#SP1_1">&#167;1.1</a>, <a href="7-eip.html#SP1_2_1">&#167;1.2.1</a><br/>The Installer - <a href="7-ti.html#SP2_4_4">&#167;2.4.4</a>, <a href="7-ti.html#SP2_5">&#167;2.5</a>, <a href="7-ti.html#SP2_5_4">&#167;2.5.4</a>, <a href="7-ti.html#SP3_2">&#167;3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">) {</span>
@ -332,7 +330,7 @@ reasons, this list is created on demand.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::from_copy</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Projects::from_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">&#167;22</a><br/>Incremental Building - <a href="3-ib.html#SP7_1">&#167;7.1</a><br/>Inter Skill - <a href="3-is.html#SP4">&#167;4</a><br/>Inform7 Skill - <a href="3-is2.html#SP1">&#167;1</a>, <a href="3-is2.html#SP2">&#167;2</a><br/>Inform6 Skill - <a href="3-is3.html#SP1">&#167;1</a><br/>Inblorb Skill - <a href="3-is4.html#SP1">&#167;1</a><br/>Inclusions - <a href="6-inc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::from_copy</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Projects::from_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP21">&#167;21</a><br/>Incremental Building - <a href="3-ib.html#SP7_1">&#167;7.1</a><br/>Inter Skill - <a href="3-is.html#SP4">&#167;4</a><br/>Inform7 Skill - <a href="3-is2.html#SP1">&#167;1</a>, <a href="3-is2.html#SP2">&#167;2</a><br/>Inform6 Skill - <a href="3-is3.html#SP1">&#167;1</a><br/>Inblorb Skill - <a href="3-is4.html#SP1">&#167;1</a><br/>Inclusions - <a href="6-inc.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="4-pbm.html#SP2" class="function-link"><span class="function-syntax">ProjectBundleManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</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">project</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="4-pfm.html#SP2" class="function-link"><span class="function-syntax">ProjectFileManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</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">project</span><span class="plain-syntax">;</span>
@ -343,7 +341,7 @@ has a single, "primary", one.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::set_primary_source</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Projects::set_primary_source</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">&#167;22</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::set_primary_source</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Projects::set_primary_source</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">primary_source</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
@ -914,7 +912,7 @@ details instead.
<p class="commentary firstcommentary"><a id="SP31" class="paragraph-anchor"></a><b>&#167;31. File to write to. </b></p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::set_primary_output</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Projects::set_primary_output</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">&#167;22</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::set_primary_output</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Projects::set_primary_output</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP21">&#167;21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">primary_output</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -106,7 +106,7 @@ produces a second report.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionInstaller::install</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">confirmed</span><span class="plain-syntax">, </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to_tool</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">meth</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP22" class="function-link"><span class="function-syntax">Supervisor::project_set_at_command_line</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP21" class="function-link"><span class="function-syntax">Supervisor::project_set_at_command_line</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">project</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"-project not set at command line"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">pname</span><span class="plain-syntax">, </span><span class="string-syntax">"'%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">project</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">title</span><span class="plain-syntax">);</span>
@ -555,15 +555,15 @@ produces a second report.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionInstaller::uninstall</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">confirmed</span><span class="plain-syntax">, </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to_tool</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">meth</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP22" class="function-link"><span class="function-syntax">Supervisor::project_set_at_command_line</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP21" class="function-link"><span class="function-syntax">Supervisor::project_set_at_command_line</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">project</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"-project not set at command line"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pname</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">pname</span><span class="plain-syntax">, </span><span class="string-syntax">"'%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">project</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">title</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</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">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Begin uninstaller report</span><span class="named-paragraph-number">3.1</span></a></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">OUT</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Begin uninstaller report</span><span class="named-paragraph-number">3.1</span></a></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">confirmed</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Make confirmed uninstaller report</span><span class="named-paragraph-number">3.3</span></a></span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Make unconfirmed uninstaller report</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
@ -831,13 +831,10 @@ produces a second report.
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionInstaller::install_button</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ExtensionInstaller::install_button</span></span>:<br/>Extensions Index Page - <a href="7-eip.html#SP1_2_2_4_4_1">&#167;1.2.2.4.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">URL</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location_if_file</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">URL</span><span class="plain-syntax">, </span><span class="string-syntax">"%f"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_file</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">URL</span><span class="plain-syntax">, </span><span class="string-syntax">"%p"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"registrycontentslink\" href='javascript:project().install(\"%S\")'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">URL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">URL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">js_path</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Get the extension path escaped for use in Javascript</span><span class="named-paragraph-number">7.1</span></a></span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"registrycontentslink\" href='javascript:project().install(\"%S\")'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">js_path</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">js_path</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="7-ti.html#SP7" class="function-link"><span class="function-syntax">ExtensionInstaller::install_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -848,13 +845,10 @@ produces a second report.
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionInstaller::uninstall_button</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">ExtensionInstaller::uninstall_button</span></span>:<br/>Extensions Index Page - <a href="7-eip.html#SP1_2_2_4_4_1">&#167;1.2.2.4.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">URL</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location_if_file</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">URL</span><span class="plain-syntax">, </span><span class="string-syntax">"%f"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_file</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">URL</span><span class="plain-syntax">, </span><span class="string-syntax">"%p"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"registrycontentslink\" href='javascript:project().uninstall(\"%S\")'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">URL</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">URL</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">js_path</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-ti.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Get the extension path escaped for use in Javascript</span><span class="named-paragraph-number">7.1</span></a></span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"registrycontentslink\" href='javascript:project().uninstall(\"%S\")'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">js_path</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">js_path</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="7-ti.html#SP7" class="function-link"><span class="function-syntax">ExtensionInstaller::uninstall_icon</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"a"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
@ -863,6 +857,25 @@ produces a second report.
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&lt;span class=\"paste\"&gt;%c%c&lt;/span&gt;"</span><span class="plain-syntax">, </span><span class="constant-syntax">0x2198</span><span class="plain-syntax">, </span><span class="constant-syntax">0xFE0F</span><span class="plain-syntax">); </span><span class="comment-syntax"> Unicode "down right arrow"</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>&#167;7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Get the extension path escaped for use in Javascript</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">path</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">C</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">location_if_file</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">path</span><span class="plain-syntax">, </span><span class="string-syntax">"%f"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_file</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">path</span><span class="plain-syntax">, </span><span class="string-syntax">"%p"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location_if_path</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">, </span><span class="identifier-syntax">path</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::get</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</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">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'\\'</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">js_path</span><span class="plain-syntax">, </span><span class="string-syntax">"\\\\"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">js_path</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">path</span><span class="plain-syntax">)</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="7-ti.html#SP7">&#167;7</a> (twice).</li></ul>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="7-eip.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-sm.html">1</a></li><li class="progresschapter"><a href="2-gnr.html">2</a></li><li class="progresschapter"><a href="3-bg.html">3</a></li><li class="progresschapter"><a href="4-em.html">4</a></li><li class="progresschapter"><a href="5-es.html">5</a></li><li class="progresschapter"><a href="6-st.html">6</a></li><li class="progresscurrentchapter">7</li><li class="progresssection"><a href="7-tm.html">tm</a></li><li class="progresssection"><a href="7-eip.html">eip</a></li><li class="progresscurrent">ti</li><li class="progresssection"><a href="7-tc.html">tc</a></li><li class="progresssection"><a href="7-dt.html">dt</a></li><li class="progresssection"><a href="7-dc.html">dc</a></li><li class="progresssection"><a href="7-dr.html">dr</a></li><li class="progressnext"><a href="7-tc.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->

View file

@ -186,7 +186,7 @@ better way to choose a virtual machine to compile to.
CommandLine::declare_switch(DEPRECATED_EXTERNAL_CLSW, L"deprecated-external", 2,
L"same as -external X, but issues warnings if the nest is actually used");
CommandLine::declare_switch(TRANSIENT_CLSW, L"transient", 2,
L"use X for transient data such as the extensions census");
L"(an option now withdrawn)");
CommandLine::end_group();
@ These are all new in 2020. They are not formally shared with the |inter| tool,
@ -202,7 +202,7 @@ but |-pipeline-file| and |-variable| have the same effect as they would there.
@<Declare Inter-related options@> =
CommandLine::begin_group(INBUILD_INTER_CLSG, I"for tweaking code generation from Inter");
CommandLine::declare_switch(KIT_CLSW, L"kit", 2,
L"include Inter code from the kit called X");
L"(an option now withdrawn)");
CommandLine::declare_switch(PIPELINE_CLSW, L"pipeline", 2,
L"specify code-generation pipeline by name (default is \"compile\")");
CommandLine::declare_switch(PIPELINE_FILE_CLSW, L"pipeline-file", 2,
@ -218,7 +218,6 @@ set appropriately.
filename *inter_pipeline_file = NULL;
filename *transpiled_output_file = NULL;
dictionary *pipeline_vars = NULL;
pathname *shared_transient_resources = NULL;
int this_is_a_debug_compile = FALSE; /* Destined to be compiled with debug features */
int this_is_a_release_compile = FALSE; /* Omit sections of source text marked not for release */
text_stream *output_format = NULL; /* What story file we will eventually have */
@ -272,7 +271,8 @@ void Supervisor::option(int id, int val, text_stream *arg, void *state) {
Nests::deprecate(Supervisor::add_nest(Pathnames::from_text(arg),
EXTERNAL_NEST_TAG)); break;
case TRANSIENT_CLSW:
shared_transient_resources = Pathnames::from_text(arg); break;
Errors::fatal("the -transient option has been withdrawn");
break;
case BASIC_CLSW: Projects::enter_forcible_basic_mode(); break;
case KIT_CLSW:
Errors::fatal("the -kit option has been withdrawn");
@ -424,12 +424,8 @@ But among nests three are special, and can hold other things as well.
It contains, for example, the build-in extensions. But it also contains
miscellaneous other files needed by Inform (see below).
(b) The "external" nest is the one to which the user installs her own
selection of extensions, and so on. On most platforms, the external nest
is also the default home of "transient" storage, for more ephemeral content,
such as the mechanically generated extension documentation. Some mobile
operating systems are aggressive about wanting to delete ephemeral files
used by applications, so |-transient| can be used to divert these.
(b) The "external" nest is a place in which extensions to be shared among
multiple projects can be stored.
(c) Every project has its own private nest, in the form of its associated
Materials folder. For example, in |Jane Eyre.inform| is a project, then
@ -554,19 +550,6 @@ pathname *Supervisor::installed_files(void) {
return Supervisor::default_internal_path();
}
@ The transient area can be used for build files for project files, where
there's no build directory provided by the project bundle. |-transient| sets
it, but otherwise the external nest is used.
=
pathname *Supervisor::transient(void) {
RUN_ONLY_FROM_PHASE(TINKERING_INBUILD_PHASE)
if (shared_transient_resources == NULL)
if (shared_external_nest)
return shared_external_nest->location;
return shared_transient_resources;
}
@h The shared project.
In any single run, each of the Inform tools concerns itself with a single
Inform 7 program. This can be presented to it either in a project bundle

View file

@ -209,9 +209,7 @@ pathname *Projects::path(inform_project *proj) {
}
pathname *Projects::build_path(inform_project *proj) {
if (proj->as_copy->location_if_path)
return Pathnames::down(Projects::path(proj), I"Build");
return Supervisor::transient();
return Pathnames::down(Projects::path(proj), I"Build");
}
inbuild_nest *Projects::materials_nest(inform_project *proj) {

View file

@ -34,6 +34,7 @@ for testing and debugging inform7:
-inbuild-verbose equivalent to -inbuild-verbosity=1 (default is -no-inbuild-verbose)
-inbuild-verbosity=N how much inbuild should explain: lowest is 0 (default), highest is 3
-no-index don't produce an Index (default is -index)
-log-to-project X like -log X, but writing the debugging log into the project
-no-problems don't produce (an HTML) Problems report page (default is -problems)
-no-progress don't display progress percentages (default is -progress)
-require-problem X return 0 unless exactly this Problem message is generated

View file

@ -1,28 +1,28 @@
Total memory consumption was 141479K = 138 MB
Total memory consumption was 139121K = 136 MB
---- was used for 2123163 objects, in 374917 frames in 0 x 800K = 0K = 0 MB:
---- was used for 2123157 objects, in 374911 frames in 0 x 800K = 0K = 0 MB:
29.8% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes
18.9% text_stream_array 4883 x 100 = 488300 objects, 27501056 bytes
17.5% linked_list 45352 objects, 25397120 bytes
9.9% inter_symbol_array 135 x 1024 = 138240 objects, 14381280 bytes
9.6% inter_error_stash_array 107 x 1024 = 109568 objects, 14028128 bytes
7.3% parse_node 133796 objects, 10703680 bytes
5.2% verb_conjugation 164 objects, 7610912 bytes
3.9% parse_node_annotation_array 357 x 500 = 178500 objects, 5723424 bytes
30.3% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes
19.3% text_stream_array 4883 x 100 = 488300 objects, 27501056 bytes
17.8% linked_list 45352 objects, 25397120 bytes
10.0% inter_symbol_array 135 x 1024 = 138240 objects, 14381280 bytes
9.8% inter_error_stash_array 107 x 1024 = 109568 objects, 14028128 bytes
7.5% parse_node 133796 objects, 10703680 bytes
5.3% verb_conjugation 164 objects, 7610912 bytes
4.0% parse_node_annotation_array 357 x 500 = 178500 objects, 5723424 bytes
3.1% scan_directory 1092 objects, 4507776 bytes
2.4% pcalc_prop_array 26 x 1000 = 26000 objects, 3536832 bytes
2.2% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
1.8% kind_array 68 x 1000 = 68000 objects, 2722176 bytes
1.4% inter_schema_token 14176 objects, 2154752 bytes
1.9% kind_array 68 x 1000 = 68000 objects, 2722176 bytes
1.5% inter_schema_token 14176 objects, 2154752 bytes
1.4% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
1.2% package_request 21344 objects, 1878272 bytes
1.3% package_request 21344 objects, 1878272 bytes
1.2% vocabulary_entry_array 163 x 100 = 16300 objects, 1830816 bytes
1.0% dict_entry_array 491 x 100 = 49100 objects, 1586912 bytes
1.1% dict_entry_array 491 x 100 = 49100 objects, 1586912 bytes
1.0% inter_symbols_table 26921 objects, 1507576 bytes
1.0% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
0.9% i6_schema_array 24 x 100 = 2400 objects, 1440768 bytes
0.8% inter_package 26921 objects, 1292208 bytes
1.0% i6_schema_array 24 x 100 = 2400 objects, 1440768 bytes
0.9% inter_package 26921 objects, 1292208 bytes
0.7% map_data 677 objects, 1137360 bytes
0.7% id_body 979 objects, 1119976 bytes
0.7% adjective_meaning 208 objects, 1030016 bytes
@ -31,14 +31,14 @@ Total memory consumption was 141479K = 138 MB
0.6% production 3985 objects, 924520 bytes
0.6% ptoken 8652 objects, 899808 bytes
0.6% grammatical_usage 3648 objects, 875520 bytes
0.5% individual_form 2581 objects, 867216 bytes
0.6% individual_form 2581 objects, 867216 bytes
0.4% unary_predicate_array 17 x 1000 = 17000 objects, 680544 bytes
0.3% local_variable_array 49 x 100 = 4900 objects, 471968 bytes
0.2% verb_usage 1148 objects, 394912 bytes
0.2% rule 478 objects, 374752 bytes
0.2% dictionary 7754 objects, 372192 bytes
0.2% verb_form 388 objects, 350752 bytes
0.1% noun 2395 objects, 287400 bytes
0.2% noun 2395 objects, 287400 bytes
0.1% compilation_subtask 3388 objects, 271040 bytes
0.1% inference_subject 672 objects, 263424 bytes
0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
@ -93,7 +93,7 @@ Total memory consumption was 141479K = 138 MB
---- verb_sense 407 objects, 29304 bytes
---- action_pattern_array 7 x 100 = 700 objects, 28224 bytes
---- filename 703 objects, 28120 bytes
---- pathname 667 objects, 26680 bytes
---- pathname 660 objects, 26400 bytes
---- shared_variable_set_array 6 x 100 = 600 objects, 24192 bytes
---- parse_node_tree 27 objects, 23544 bytes
---- property 148 objects, 22496 bytes
@ -142,7 +142,7 @@ Total memory consumption was 141479K = 138 MB
---- value_property_data 86 objects, 4816 bytes
---- compatibility_specification 100 objects, 4800 bytes
---- parsing_pp_data 96 objects, 4608 bytes
---- command_line_switch 55 objects, 4400 bytes
---- command_line_switch 56 objects, 4480 bytes
---- semver_range 42 objects, 4368 bytes
---- use_option 31 objects, 4216 bytes
---- parse_node_annotation_type 124 objects, 3968 bytes
@ -261,25 +261,25 @@ Total memory consumption was 141479K = 138 MB
---- tree_type 1 object, 40 bytes
---- I6_generation_data 1 object, 40 bytes
100.0% was used for memory not allocated for objects:
99.9% was used for memory not allocated for objects:
62.8% text stream storage 91010388 bytes in 508728 claims
3.7% dictionary storage 5480960 bytes in 7754 claims
62.1% text stream storage 88595684 bytes in 508381 claims
3.8% dictionary storage 5480960 bytes in 7754 claims
---- sorting 2624 bytes in 531 claims
4.9% source text 7200000 bytes in 3 claims
7.4% source text details 10800000 bytes in 2 claims
5.0% source text 7200000 bytes in 3 claims
7.5% source text details 10800000 bytes in 2 claims
0.1% documentation fragments 262144 bytes in 1 claim
---- linguistic stock array 81920 bytes in 2 claims
---- small word set array 105600 bytes in 22 claims
3.2% inter symbols storage 4704736 bytes in 28298 claims
11.5% inter bytecode storage 16758228 bytes in 15 claims
4.2% inter links storage 6222976 bytes in 11 claims
3.3% inter symbols storage 4704736 bytes in 28298 claims
11.7% inter bytecode storage 16758228 bytes in 15 claims
4.3% inter links storage 6222976 bytes in 11 claims
0.1% inter tree location list storage 191232 bytes in 32 claims
1.1% instance-of-kind counting 1731856 bytes in 1 claim
1.2% instance-of-kind counting 1731856 bytes in 1 claim
---- compilation workspace for objects 21936 bytes in 25 claims
---- lists for type-checking invocations 16000 bytes in 1 claim
---- code generation workspace for objects 3488 bytes in 19 claims
0.1% emitter array storage 281184 bytes in 2006 claims
-134.-6% was overhead - -195021168 bytes = -190450K = -185 MB
-136.-8% was overhead - -195020968 bytes = -190450K = -185 MB

View file

@ -1,11 +1,11 @@
100.0% in inform7 run
67.0% in compilation to Inter
45.0% in //Sequence::undertake_queued_tasks//
4.5% in //MajorNodes::pre_pass//
67.4% in compilation to Inter
45.9% in //Sequence::undertake_queued_tasks//
4.2% in //MajorNodes::pre_pass//
3.4% in //MajorNodes::pass_1//
1.8% in //ImperativeDefinitions::assess_all//
1.8% in //RTPhrasebook::compile_entries//
1.9% in //ImperativeDefinitions::assess_all//
1.5% in //RTKindConstructors::compile//
1.5% in //RTPhrasebook::compile_entries//
1.1% in //Sequence::lint_inter//
0.3% in //CompletionModule::compile//
0.3% in //ImperativeDefinitions::compile_first_block//
@ -14,17 +14,16 @@
0.3% in //Sequence::undertake_queued_tasks//
0.3% in //Sequence::undertake_queued_tasks//
0.3% in //World::stage_V//
4.9% not specifically accounted for
28.7% in running Inter pipeline
9.8% in step 14/15: generate inform6 -> auto.inf
7.1% in step 5/15: load-binary-kits
6.0% in step 6/15: make-synoptic-module
2.2% in step 9/15: make-identifiers-unique
0.3% in step 11/15: eliminate-redundant-labels
5.0% not specifically accounted for
27.9% in running Inter pipeline
9.5% in step 14/15: generate inform6 -> auto.inf
6.8% in step 5/15: load-binary-kits
5.7% in step 6/15: make-synoptic-module
1.9% in step 9/15: make-identifiers-unique
0.3% in step 12/15: eliminate-redundant-operations
0.3% in step 4/15: compile-splats
0.3% in step 7/15: shorten-wiring
0.3% in step 8/15: detect-indirect-calls
1.5% not specifically accounted for
3.7% in supervisor
0.4% not specifically accounted for
2.3% not specifically accounted for
3.8% in supervisor
0.8% not specifically accounted for

View file

@ -10,8 +10,7 @@ default: $SCRIPT =
default: $LANGUAGE = Inform
default: $COMPATIBLEWITH = all
! (1) Set $FORMAT to the full description of the language we will transpile
! to, and extract the source text for the case, writing it to the given file:
! (1) Set $FORMAT to the full description of the language we will transpile to.
if compatible: inform6/32 `$COMPATIBLEWITH
default: $FOR = Glulx
@ -48,6 +47,8 @@ else
fail: `$ERROR
endif
! (2) Extract the source text for the case, writing it to the given file.
set: $SOURCE = $WORK/Example.inform/Source/story.ni
if compatible: $FORMAT Glulx
extract: $SOURCE G
@ -56,7 +57,7 @@ else
endif
show: source $SOURCE
! (2) Almost all tests produce actual textual output, which we put in $A,
! (3) Almost all tests produce actual textual output, which we put in $A,
! and ideal or blessed textual output, which is in $I: the test will end up
! by comparing $A with $I$.
@ -64,17 +65,9 @@ set: $A = $$workspace/Actuals/$CASE.txt
set: $I = $PATH/$CASE--I.txt
show: ideal $I
! (3) Make sure the "transient area" exists and is completely empty.
ifndef: $TRANSIENTAREA
set: $TRANSIENTAREA = $WORK/Transient
endif
mkdir: $TRANSIENTAREA
step: find $TRANSIENTAREA -mindepth 1 -delete
! (4) Work out the command-line options to pass to inform7.
set: $I7OPTIONS = -format=$FORMAT -no-progress -no-resource-checking -fixtime -rng -sigils -transient $TRANSIENTAREA -internal $INTERNAL
set: $I7OPTIONS = -format=$FORMAT -no-progress -no-resource-checking -fixtime -rng -sigils -internal $INTERNAL
ifdef: $EXTERNAL
set: $I7OPTIONS = `$I7OPTIONS -external $EXTERNAL
else

View file

@ -140,19 +140,6 @@ to compile) then source-reference links will be to the right examples.
For ordinary, non-Extension, projects, this switch should not be used.
@ When the app installs a new extension (in the external area), or is run
for the first time, it should call Inform 7 to perform a "census" of the
available extensions. The compiler then looks through its internal and
external areas, and creates suitable HTML pages showing what it finds,
which it stores in a writeable area of the file system called the "transient"
directory.
The usage for this is:
= (text as ConsoleText)
$ inform7/Tangled/inform7 -internal I -external E -transient T -census
=
(The caller has the obligation to provide the Transient directory.)
@h Using Inform 7 without projects.
To users of Inform UI apps, projects seem essential. On Mac OS, they are
sealed boxes, looking like files in the Finder, but on all platforms they

View file

@ -283,8 +283,8 @@ but is openly accessible even on MacOS.
If Inform is working on a single source text file, not a bundle, then the
project will be the current working directory, but now the build folder will
be the Inbuild transient area, and materials (if present) will again be
alongside.
be the folder |Build| in the same directory as the source file, and materials
(if present) will again be alongside.
To begin: what's in the project area? |story.ni| and |auto.inf|, neither
one very helpfully named, are defined in Inbuild rather than here: these