1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-17 07:40:47 +03:00

Revised in-app advice pages, and how they are generated

This commit is contained in:
Graham Nelson 2022-08-12 10:54:32 +01:00
parent b71bb92e37
commit bcf3b5561f
28 changed files with 459 additions and 366 deletions

View file

@ -1,6 +1,6 @@
# Inform 7
[Version](notes/versioning.md): 10.1.0-beta+6V39 'Krypton' (10 August 2022)
[Version](notes/versioning.md): 10.1.0-beta+6V40 'Krypton' (12 August 2022)
## About Inform

View file

@ -1,3 +1,3 @@
Prerelease: beta
Build Date: 10 August 2022
Build Number: 6V39
Build Date: 12 August 2022
Build Number: 6V40

View file

@ -279,9 +279,11 @@ opcode, and so Glulx followed suit.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">actor</span><span class="plain-syntax"> ~= </span><span class="identifier-syntax">player</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Banner</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Inform 7 v"</span><span class="plain-syntax">, (</span><span class="identifier-syntax">PrintI6Text</span><span class="plain-syntax">) </span><span class="identifier-syntax">I7_FULL_VERSION_NUMBER</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">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Identification number: "</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ix</span><span class="plain-syntax">=6: </span><span class="identifier-syntax">ix</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;0: </span><span class="identifier-syntax">ix</span><span class="plain-syntax">++) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="identifier-syntax">char</span><span class="plain-syntax">) </span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ix</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;0 &gt;= </span><span class="constant-syntax">6</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Identification number: "</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ix</span><span class="plain-syntax">=6: </span><span class="identifier-syntax">ix</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;0: </span><span class="identifier-syntax">ix</span><span class="plain-syntax">++) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="identifier-syntax">char</span><span class="plain-syntax">) </span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ix</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> @</span><span class="identifier-syntax">gestalt</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax"> </span><span class="identifier-syntax">ix</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Interpreter version "</span><span class="plain-syntax">, </span><span class="identifier-syntax">ix</span><span class="plain-syntax"> / </span><span class="constant-syntax">$10000</span><span class="plain-syntax">, </span><span class="string-syntax">"."</span><span class="plain-syntax">, (</span><span class="identifier-syntax">ix</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">$FF00</span><span class="plain-syntax">) / </span><span class="constant-syntax">$100</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="string-syntax">"."</span><span class="plain-syntax">, </span><span class="identifier-syntax">ix</span><span class="plain-syntax"> &amp; </span><span class="constant-syntax">$FF</span><span class="plain-syntax">, </span><span class="string-syntax">" / "</span><span class="plain-syntax">;</span>

View file

@ -184,9 +184,11 @@ opcode, and so Glulx followed suit.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">actor</span><span class="plain-syntax"> ~= </span><span class="identifier-syntax">player</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Banner</span><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Inform 7 v"</span><span class="plain-syntax">, (</span><span class="identifier-syntax">PrintI6Text</span><span class="plain-syntax">) </span><span class="identifier-syntax">I7_FULL_VERSION_NUMBER</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">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Identification number: "</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ix</span><span class="plain-syntax">=6: </span><span class="identifier-syntax">ix</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;0: </span><span class="identifier-syntax">ix</span><span class="plain-syntax">++) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="identifier-syntax">char</span><span class="plain-syntax">) </span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ix</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;0 &gt;= </span><span class="constant-syntax">6</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Identification number: "</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ix</span><span class="plain-syntax">=6: </span><span class="identifier-syntax">ix</span><span class="plain-syntax"> &lt;= </span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;0: </span><span class="identifier-syntax">ix</span><span class="plain-syntax">++) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="identifier-syntax">char</span><span class="plain-syntax">) </span><span class="identifier-syntax">UUID_ARRAY</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">ix</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">ix</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax">shut up compiler warning</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">standard_interpreter</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">print</span><span class="plain-syntax"> </span><span class="string-syntax">"Standard interpreter "</span><span class="plain-syntax">,</span>

View file

@ -1422,7 +1422,7 @@ text variable.
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_addtolist</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_InsertItem</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">new</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax">}, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, {</span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> </span><span class="identifier-syntax">options</span><span class="plain-syntax">}); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">add</span><span class="plain-syntax"> (</span><span class="identifier-syntax">new</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> - </span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">absent</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">add</span><span class="plain-syntax"> (</span><span class="identifier-syntax">new</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> - </span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">absent</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_addatentry</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_InsertItem</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">new</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax">}, </span><span class="constant-syntax">1</span><span class="plain-syntax">, {</span><span class="identifier-syntax">E</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> </span><span class="identifier-syntax">options</span><span class="plain-syntax">}); -).</span>
@ -1430,23 +1430,23 @@ text variable.
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_addlisttolist</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_AppendList</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, {-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">LX</span><span class="plain-syntax">}, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, {</span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> </span><span class="identifier-syntax">options</span><span class="plain-syntax">}); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">add</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LX</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">Ks</span><span class="plain-syntax">) </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">add</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LX</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">Ks</span><span class="plain-syntax">) </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_addlistatentry</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_AppendList</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, {-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">LX</span><span class="plain-syntax">}, </span><span class="constant-syntax">1</span><span class="plain-syntax">, {</span><span class="identifier-syntax">E</span><span class="plain-syntax">}, </span><span class="constant-syntax">0</span><span class="plain-syntax">); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">remove</span><span class="plain-syntax"> (</span><span class="identifier-syntax">existing</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> - </span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">present</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">remove</span><span class="plain-syntax"> (</span><span class="identifier-syntax">existing</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> - </span><span class="identifier-syntax">K</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">present</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_remfromlist</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_RemoveValue</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">existing</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> </span><span class="identifier-syntax">options</span><span class="plain-syntax">}); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">remove</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">Ks</span><span class="plain-syntax">) </span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">present</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">remove</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">Ks</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">present</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_remlistfromlist</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_Remove_List</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, {-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">N</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> </span><span class="identifier-syntax">options</span><span class="plain-syntax">}); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">remove</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">present</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">remove</span><span class="plain-syntax"> </span><span class="identifier-syntax">entry</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">present</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_rementry</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_RemoveItemRange</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">N</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">N</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> </span><span class="identifier-syntax">options</span><span class="plain-syntax">}); -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">remove</span><span class="plain-syntax"> </span><span class="identifier-syntax">entries</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">to</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N2</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">present</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">remove</span><span class="plain-syntax"> </span><span class="identifier-syntax">entries</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">to</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N2</span><span class="plain-syntax"> - </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">), </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">present</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_rementries</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_RemoveItemRange</span><span class="plain-syntax">({-</span><span class="identifier-syntax">lvalue</span><span class="plain-syntax">-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">N</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">N2</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">phrase</span><span class="plain-syntax"> </span><span class="identifier-syntax">options</span><span class="plain-syntax">}); -).</span>
</pre>
@ -1483,7 +1483,7 @@ current members (in creation order), but there's no reverse process.
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">Section</span><span class="plain-syntax"> </span><span class="constant-syntax">4</span><span class="plain-syntax"> - </span><span class="identifier-syntax">Length</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">lists</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">entries</span><span class="plain-syntax"> </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">of</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">)</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">entries</span><span class="plain-syntax"> </span><span class="identifier-syntax">in</span><span class="plain-syntax">/</span><span class="identifier-syntax">of</span><span class="plain-syntax">/</span><span class="identifier-syntax">from</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">documented</span><span class="plain-syntax"> </span><span class="identifier-syntax">at</span><span class="plain-syntax"> </span><span class="identifier-syntax">ph_numberentries</span><span class="plain-syntax">):</span>
<span class="plain-syntax"> (- </span><span class="identifier-syntax">LIST_OF_TY_GetLength</span><span class="plain-syntax">({-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}) -).</span>
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">truncate</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">values</span><span class="plain-syntax">) </span><span class="identifier-syntax">to</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">number</span><span class="plain-syntax">) </span><span class="identifier-syntax">entries</span><span class="plain-syntax">/</span><span class="identifier-syntax">entry</span>

View file

@ -73,6 +73,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">destination_nest</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inbuild_registry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">selected_registry</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">filter_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">preprocess_HTML_destination</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Main routine. </b>When Inbuild is called at the command line, it begins at <span class="extract"><span class="extract-syntax">main</span></span>, like all C
programs.
@ -398,6 +399,8 @@ other options to the selection defined here.
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERSIONS_IN_FILENAMES_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERIFY_REGISTRY_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BUILD_REGISTRY_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PREPROCESS_HTML_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PREPROCESS_HTML_TO_CLSW</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Read the command line</span><span class="named-paragraph-number">2.8</span></span><span class="comment-syntax"> =</span>
</p>
@ -450,6 +453,10 @@ other options to the selection defined here.
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"verify roster.json metadata of registry in the directory X"</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">BUILD_REGISTRY_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"build-registry"</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">"construct HTML menu pages for registry in the directory X"</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">PREPROCESS_HTML_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"preprocess-html"</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">"construct HTML page based on X"</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">PREPROCESS_HTML_TO_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"preprocess-html-to"</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">"set destination for -preprocess-html to be X"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::declare_options</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="identifier-syntax">argv</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &amp;</span><a href="1-mn.html#SP3" class="function-link"><span class="function-syntax">Main::option</span></a><span class="plain-syntax">, &amp;</span><a href="1-mn.html#SP4" class="function-link"><span class="function-syntax">Main::bareword</span></a><span class="plain-syntax">);</span>
@ -499,6 +506,16 @@ other options to the selection defined here.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">id</span><span class="plain-syntax"> == </span><span class="constant-syntax">BUILD_REGISTRY_CLSW</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="../supervisor-module/2-rgs.html#SP5" class="function-link"><span class="function-syntax">Registries::build</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">selected_registry</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">PREPROCESS_HTML_TO_CLSW:</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">preprocess_HTML_destination</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="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">PREPROCESS_HTML_CLSW:</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">preprocess_HTML_destination</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</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</span></a><span class="plain-syntax">(</span><span class="string-syntax">"must specify -preprocess-html-to P to give destination path P first"</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">arg</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">T</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">preprocess_HTML_destination</span><span class="plain-syntax">, </span><a href="../../../inweb/foundation-module/3-fln.html#SP7" class="function-link"><span class="function-syntax">Filenames::get_leafname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">));</span>
<span class="plain-syntax"> </span><a href="../supervisor-module/2-rgs.html#SP28" class="function-link"><span class="function-syntax">Registries::preprocess_HTML</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</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">break</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> }</span>
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP7" class="function-link"><span class="function-syntax">Supervisor::option</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">state</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -75,6 +75,8 @@ and those not documented in this manual are covered in that one.
<span class="plain-syntax">-graph show dependency graph of target(s) but take no action</span>
<span class="plain-syntax">-inspect show target(s) but take no action</span>
<span class="plain-syntax">-matching X apply to all works in nest(s) matching requirement X</span>
<span class="plain-syntax">-preprocess-html X construct HTML page based on X</span>
<span class="plain-syntax">-preprocess-html-to X set destination for -preprocess-html to be X</span>
<span class="plain-syntax">-rebuild completely rebuild target(s)</span>
<span class="plain-syntax">-sync-to X forcibly copy target(s) to nest X, even if prior version already there</span>
<span class="plain-syntax">-tools X make X the directory of intools executables, and exit developer mode</span>

View file

@ -70,36 +70,37 @@ 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"> 70.7% in compilation to Inter</span>
<span class="plain-syntax"> 50.2% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 4.6% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
<span class="plain-syntax"> 3.5% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
<span class="plain-syntax"> 1.8% in </span><a href="../assertions-module/5-id.html#SP4" class="internal">ImperativeDefinitions::assess_all</a>
<span class="plain-syntax"> 71.2% in compilation to Inter</span>
<span class="plain-syntax"> 49.7% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 4.8% 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"> 2.0% in </span><a href="../assertions-module/5-id.html#SP4" class="internal">ImperativeDefinitions::assess_all</a>
<span class="plain-syntax"> 2.0% in </span><a href="../runtime-module/6-pi.html#SP1" class="internal">RTPhrasebook::compile_entries</a>
<span class="plain-syntax"> 1.4% in </span><a href="../runtime-module/5-kc.html#SP10" class="internal">RTKindConstructors::compile</a>
<span class="plain-syntax"> 1.4% in </span><a href="../runtime-module/6-pi.html#SP1" class="internal">RTPhrasebook::compile_entries</a>
<span class="plain-syntax"> 1.2% in </span><a href="../core-module/1-htc.html#SP12" class="internal">Sequence::lint_inter</a>
<span class="plain-syntax"> 0.6% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 1.0% in </span><a href="../core-module/1-htc.html#SP12" class="internal">Sequence::lint_inter</a>
<span class="plain-syntax"> 0.6% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_2</a>
<span class="plain-syntax"> 0.6% in </span><a href="../knowledge-module/5-tmw.html#SP5" class="internal">World::stage_V</a>
<span class="plain-syntax"> 0.4% in </span><a href="../assertions-module/5-id.html#SP5" class="internal">ImperativeDefinitions::compile_first_block</a>
<span class="plain-syntax"> 0.4% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_2</a>
<span class="plain-syntax"> 0.4% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 0.4% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
<span class="plain-syntax"> 0.2% in </span><a href="../runtime-module/3-cm.html#SP1" class="internal">CompletionModule::compile</a>
<span class="plain-syntax"> 0.2% in </span><a href="../knowledge-module/4-is.html#SP27" class="internal">InferenceSubjects::emit_all</a>
<span class="plain-syntax"> 0.2% in </span><a href="../runtime-module/5-kc.html#SP10_7" class="internal">RTKindConstructors::compile_permissions</a>
<span class="plain-syntax"> 0.2% in </span><a href="../core-module/1-wtc.html#SP9" class="internal">Task::make_built_in_kind_constructors</a>
<span class="plain-syntax"> 2.9% not specifically accounted for</span>
<span class="plain-syntax"> 26.2% in running Inter pipeline</span>
<span class="plain-syntax"> 10.5% in step 14/15: generate inform6 -&gt; auto.inf</span>
<span class="plain-syntax"> 5.8% in step 5/15: load-binary-kits</span>
<span class="plain-syntax"> 5.4% in step 6/15: make-synoptic-module</span>
<span class="plain-syntax"> 0.2% in </span><a href="../knowledge-module/5-tmw.html#SP3" class="internal">World::stages_II_and_III</a>
<span class="plain-syntax"> 2.8% not specifically accounted for</span>
<span class="plain-syntax"> 25.7% in running Inter pipeline</span>
<span class="plain-syntax"> 9.9% in step 14/15: generate inform6 -&gt; auto.inf</span>
<span class="plain-syntax"> 5.6% in step 5/15: load-binary-kits</span>
<span class="plain-syntax"> 5.2% in step 6/15: make-synoptic-module</span>
<span class="plain-syntax"> 1.4% in step 9/15: make-identifiers-unique</span>
<span class="plain-syntax"> 0.4% in step 12/15: eliminate-redundant-operations</span>
<span class="plain-syntax"> 0.4% in step 4/15: compile-splats</span>
<span class="plain-syntax"> 0.4% in step 7/15: shorten-wiring</span>
<span class="plain-syntax"> 0.2% in step 11/15: eliminate-redundant-labels</span>
<span class="plain-syntax"> 0.2% in step 8/15: detect-indirect-calls</span>
<span class="plain-syntax"> 1.2% not specifically accounted for</span>
<span class="plain-syntax"> 2.5% in supervisor</span>
<span class="plain-syntax"> 1.9% not specifically accounted for</span>
<span class="plain-syntax"> 2.6% in supervisor</span>
<span class="plain-syntax"> 0.5% 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
@ -109,37 +110,37 @@ 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 120981K = 118 MB</span>
<span class="plain-syntax">Total memory consumption was 123356K = 120 MB</span>
<span class="plain-syntax"> ---- was used for 2048236 objects, in 364575 frames in 0 x 800K = 0K = 0 MB:</span>
<span class="plain-syntax"> ---- was used for 2049632 objects, in 364585 frames in 0 x 800K = 0K = 0 MB:</span>
<span class="plain-syntax"> 33.7% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes</span>
<span class="plain-syntax"> 21.0% text_stream_array 4620 x 100 = 462000 objects, 26019840 bytes</span>
<span class="plain-syntax"> 19.8% linked_list 43896 objects, 24581760 bytes</span>
<span class="plain-syntax"> 11.3% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes</span>
<span class="plain-syntax"> 10.6% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes</span>
<span class="plain-syntax"> 8.3% parse_node 129706 objects, 10376480 bytes</span>
<span class="plain-syntax"> 5.9% verb_conjugation 160 objects, 7425280 bytes</span>
<span class="plain-syntax"> 4.4% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes</span>
<span class="plain-syntax"> 2.7% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes</span>
<span class="plain-syntax"> 33.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes</span>
<span class="plain-syntax"> 20.6% text_stream_array 4632 x 100 = 463200 objects, 26087424 bytes</span>
<span class="plain-syntax"> 19.4% linked_list 43887 objects, 24576720 bytes</span>
<span class="plain-syntax"> 11.1% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes</span>
<span class="plain-syntax"> 10.4% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes</span>
<span class="plain-syntax"> 8.2% parse_node 129712 objects, 10376960 bytes</span>
<span class="plain-syntax"> 5.8% verb_conjugation 160 objects, 7425280 bytes</span>
<span class="plain-syntax"> 4.3% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes</span>
<span class="plain-syntax"> 2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes</span>
<span class="plain-syntax"> 2.5% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes</span>
<span class="plain-syntax"> 2.1% kind_array 66 x 1000 = 66000 objects, 2642112 bytes</span>
<span class="plain-syntax"> 1.7% scan_directory 522 objects, 2154816 bytes</span>
<span class="plain-syntax"> 2.0% kind_array 66 x 1000 = 66000 objects, 2642112 bytes</span>
<span class="plain-syntax"> 1.7% scan_directory 521 objects, 2150688 bytes</span>
<span class="plain-syntax"> 1.6% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes</span>
<span class="plain-syntax"> 1.6% inter_schema_token 13964 objects, 2010816 bytes</span>
<span class="plain-syntax"> 1.5% package_request 21153 objects, 1861464 bytes</span>
<span class="plain-syntax"> 1.5% inter_schema_token 13964 objects, 2010816 bytes</span>
<span class="plain-syntax"> 1.4% package_request 21153 objects, 1861464 bytes</span>
<span class="plain-syntax"> 1.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes</span>
<span class="plain-syntax"> 1.2% dict_entry_array 471 x 100 = 47100 objects, 1522272 bytes</span>
<span class="plain-syntax"> 1.2% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes</span>
<span class="plain-syntax"> 1.2% inter_symbols_table 26592 objects, 1489152 bytes</span>
<span class="plain-syntax"> 1.1% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes</span>
<span class="plain-syntax"> 1.2% dict_entry_array 473 x 100 = 47300 objects, 1528736 bytes</span>
<span class="plain-syntax"> 1.1% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes</span>
<span class="plain-syntax"> 1.1% inter_symbols_table 26592 objects, 1489152 bytes</span>
<span class="plain-syntax"> 1.0% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes</span>
<span class="plain-syntax"> 1.0% inter_package 26592 objects, 1276416 bytes</span>
<span class="plain-syntax"> 0.9% map_data 671 objects, 1127280 bytes</span>
<span class="plain-syntax"> 0.8% map_data 671 objects, 1127280 bytes</span>
<span class="plain-syntax"> 0.8% id_body 942 objects, 1077648 bytes</span>
<span class="plain-syntax"> 0.8% adjective_meaning 202 objects, 1000304 bytes</span>
<span class="plain-syntax"> 0.7% excerpt_meaning 3102 objects, 967824 bytes</span>
<span class="plain-syntax"> 0.7% adjective_meaning 202 objects, 1000304 bytes</span>
<span class="plain-syntax"> 0.7% excerpt_meaning 3109 objects, 970008 bytes</span>
<span class="plain-syntax"> 0.7% production 3878 objects, 899696 bytes</span>
<span class="plain-syntax"> 0.7% ptoken 8404 objects, 874016 bytes</span>
<span class="plain-syntax"> 0.6% ptoken 8408 objects, 874432 bytes</span>
<span class="plain-syntax"> 0.6% grammatical_usage 3613 objects, 867120 bytes</span>
<span class="plain-syntax"> 0.6% individual_form 2563 objects, 861168 bytes</span>
<span class="plain-syntax"> 0.6% inter_schema_node 8917 objects, 856032 bytes</span>
@ -147,7 +148,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> 0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes</span>
<span class="plain-syntax"> 0.3% verb_usage 1128 objects, 388032 bytes</span>
<span class="plain-syntax"> 0.2% rule 470 objects, 368480 bytes</span>
<span class="plain-syntax"> 0.2% dictionary 7588 objects, 364224 bytes</span>
<span class="plain-syntax"> 0.2% dictionary 7590 objects, 364320 bytes</span>
<span class="plain-syntax"> 0.2% verb_form 386 objects, 348944 bytes</span>
<span class="plain-syntax"> 0.2% noun 2382 objects, 285840 bytes</span>
<span class="plain-syntax"> 0.2% compilation_subtask 3355 objects, 268400 bytes</span>
@ -155,7 +156,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> 0.2% inference_subject 666 objects, 261072 bytes</span>
<span class="plain-syntax"> 0.1% vanilla_function 3683 objects, 235712 bytes</span>
<span class="plain-syntax"> 0.1% binary_predicate 322 objects, 170016 bytes</span>
<span class="plain-syntax"> 0.1% hierarchy_location 1123 objects, 161712 bytes</span>
<span class="plain-syntax"> 0.1% hierarchy_location 1124 objects, 161856 bytes</span>
<span class="plain-syntax"> 0.1% linguistic_stock_item 3318 objects, 159264 bytes</span>
<span class="plain-syntax"> 0.1% rule_family_data 401 objects, 147568 bytes</span>
<span class="plain-syntax"> 0.1% nonterminal 758 objects, 139472 bytes</span>
@ -170,7 +171,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- lexical_cluster 2519 objects, 80608 bytes</span>
<span class="plain-syntax"> ---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes</span>
<span class="plain-syntax"> ---- kind_variable_declaration 1655 objects, 79440 bytes</span>
<span class="plain-syntax"> ---- inter_tree 6 objects, 79296 bytes</span>
<span class="plain-syntax"> ---- inter_tree 6 objects, 79344 bytes</span>
<span class="plain-syntax"> ---- label_namespace 1472 objects, 70656 bytes</span>
<span class="plain-syntax"> ---- rulebook 407 objects, 68376 bytes</span>
<span class="plain-syntax"> ---- spatial_data 671 objects, 64416 bytes</span>
@ -190,8 +191,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"> ---- text_substitution 437 objects, 41952 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"> ---- activity_list_array 1 x 1000 objects, 40032 bytes</span>
<span class="plain-syntax"> ---- to_family_data 497 objects, 39760 bytes</span>
<span class="plain-syntax"> ---- shared_variable_access_list_array 12 x 100 = 1200 objects, 38784 bytes</span>
<span class="plain-syntax"> ---- parsing_data 671 objects, 37576 bytes</span>
@ -211,17 +212,17 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- nonlocal_variable 93 objects, 20088 bytes</span>
<span class="plain-syntax"> ---- property 146 objects, 19856 bytes</span>
<span class="plain-syntax"> ---- timed_rules_rfd_data 401 objects, 19248 bytes</span>
<span class="plain-syntax"> ---- filename 477 objects, 19080 bytes</span>
<span class="plain-syntax"> ---- filename 476 objects, 19040 bytes</span>
<span class="plain-syntax"> ---- method 380 objects, 18240 bytes</span>
<span class="plain-syntax"> ---- pcalc_prop_deferral 86 objects, 17888 bytes</span>
<span class="plain-syntax"> ---- instance 167 objects, 17368 bytes</span>
<span class="plain-syntax"> ---- parse_node_tree 20 objects, 17280 bytes</span>
<span class="plain-syntax"> ---- parse_node_tree 19 objects, 16416 bytes</span>
<span class="plain-syntax"> ---- understanding_reference_array 2 x 100 = 200 objects, 16064 bytes</span>
<span class="plain-syntax"> ---- to_phrase_request 59 objects, 16048 bytes</span>
<span class="plain-syntax"> ---- match_avinue_array 1 x 1000 objects, 16032 bytes</span>
<span class="plain-syntax"> ---- action_name_list_array 1 x 1000 objects, 16032 bytes</span>
<span class="plain-syntax"> ---- match_avinue_array 1 x 1000 objects, 16032 bytes</span>
<span class="plain-syntax"> ---- JSON_value 182 objects, 16016 bytes</span>
<span class="plain-syntax"> ---- build_vertex 130 objects, 15600 bytes</span>
<span class="plain-syntax"> ---- build_vertex 129 objects, 15480 bytes</span>
<span class="plain-syntax"> ---- adjective 137 objects, 15344 bytes</span>
<span class="plain-syntax"> ---- pathname 375 objects, 15000 bytes</span>
<span class="plain-syntax"> ---- generated_segment 14 objects, 14784 bytes</span>
@ -237,17 +238,17 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- determiner 22 objects, 7216 bytes</span>
<span class="plain-syntax"> ---- verb 108 objects, 6912 bytes</span>
<span class="plain-syntax"> ---- hierarchy_attachment_point 77 objects, 6776 bytes</span>
<span class="plain-syntax"> ---- inbuild_work 103 objects, 6592 bytes</span>
<span class="plain-syntax"> ---- text_literal_holder 163 objects, 6520 bytes</span>
<span class="plain-syntax"> ---- inbuild_copy 55 objects, 6160 bytes</span>
<span class="plain-syntax"> ---- heading_tree 20 objects, 5440 bytes</span>
<span class="plain-syntax"> ---- inbuild_edition 74 objects, 5328 bytes</span>
<span class="plain-syntax"> ---- inbuild_work 101 objects, 6464 bytes</span>
<span class="plain-syntax"> ---- inbuild_copy 54 objects, 6048 bytes</span>
<span class="plain-syntax"> ---- inbuild_edition 72 objects, 5184 bytes</span>
<span class="plain-syntax"> ---- heading_tree 19 objects, 5168 bytes</span>
<span class="plain-syntax"> ---- explicit_action_array 1 x 100 objects, 4832 bytes</span>
<span class="plain-syntax"> ---- value_property_data 84 objects, 4704 bytes</span>
<span class="plain-syntax"> ---- parsing_pp_data 96 objects, 4608 bytes</span>
<span class="plain-syntax"> ---- section_md 45 objects, 4320 bytes</span>
<span class="plain-syntax"> ---- build_script 130 objects, 4160 bytes</span>
<span class="plain-syntax"> ---- compatibility_specification 86 objects, 4128 bytes</span>
<span class="plain-syntax"> ---- build_script 129 objects, 4128 bytes</span>
<span class="plain-syntax"> ---- compatibility_specification 83 objects, 3984 bytes</span>
<span class="plain-syntax"> ---- activity 35 objects, 3920 bytes</span>
<span class="plain-syntax"> ---- command_line_switch 49 objects, 3920 bytes</span>
<span class="plain-syntax"> ---- submodule_request 94 objects, 3760 bytes</span>
@ -256,8 +257,8 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- method_set 104 objects, 3328 bytes</span>
<span class="plain-syntax"> ---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes</span>
<span class="plain-syntax"> ---- semver_range 31 objects, 3224 bytes</span>
<span class="plain-syntax"> ---- inform_extension 19 objects, 3192 bytes</span>
<span class="plain-syntax"> ---- definition 44 objects, 3168 bytes</span>
<span class="plain-syntax"> ---- inform_extension 18 objects, 3024 bytes</span>
<span class="plain-syntax"> ---- either_or_property_data 62 objects, 2976 bytes</span>
<span class="plain-syntax"> ---- target_vm 20 objects, 2880 bytes</span>
<span class="plain-syntax"> ---- use_option 29 objects, 2552 bytes</span>
@ -294,8 +295,8 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- JSON_pair_requirement 26 objects, 832 bytes</span>
<span class="plain-syntax"> ---- phrase_option_array 1 x 100 objects, 824 bytes</span>
<span class="plain-syntax"> ---- inbuild_search_result 20 objects, 800 bytes</span>
<span class="plain-syntax"> ---- web_md 5 objects, 720 bytes</span>
<span class="plain-syntax"> ---- internal_test 15 objects, 720 bytes</span>
<span class="plain-syntax"> ---- web_md 5 objects, 720 bytes</span>
<span class="plain-syntax"> ---- relation_guard 5 objects, 640 bytes</span>
<span class="plain-syntax"> ---- implication 13 objects, 624 bytes</span>
<span class="plain-syntax"> ---- code_generation 1 object, 576 bytes</span>
@ -303,42 +304,42 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- rulebook_outcome 17 objects, 544 bytes</span>
<span class="plain-syntax"> ---- small_word_set 11 objects, 528 bytes</span>
<span class="plain-syntax"> ---- inform_kit 5 objects, 520 bytes</span>
<span class="plain-syntax"> ---- equation 4 objects, 480 bytes</span>
<span class="plain-syntax"> ---- inform_language 6 objects, 480 bytes</span>
<span class="plain-syntax"> ---- equation 4 objects, 480 bytes</span>
<span class="plain-syntax"> ---- i6_memory_setting 14 objects, 448 bytes</span>
<span class="plain-syntax"> ---- inference_family 11 objects, 440 bytes</span>
<span class="plain-syntax"> ---- chapter_md 5 objects, 440 bytes</span>
<span class="plain-syntax"> ---- inference_family 11 objects, 440 bytes</span>
<span class="plain-syntax"> ---- bp_family 13 objects, 416 bytes</span>
<span class="plain-syntax"> ---- module 5 objects, 400 bytes</span>
<span class="plain-syntax"> ---- inter_annotation_form 10 objects, 400 bytes</span>
<span class="plain-syntax"> ---- module 5 objects, 400 bytes</span>
<span class="plain-syntax"> ---- article_usage 8 objects, 384 bytes</span>
<span class="plain-syntax"> ---- source_file 5 objects, 360 bytes</span>
<span class="plain-syntax"> ---- inbuild_genre 7 objects, 336 bytes</span>
<span class="plain-syntax"> ---- cached_kind_declaration 8 objects, 320 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"> ---- pronoun 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- cached_kind_declaration 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- door_dir_notice 5 objects, 320 bytes</span>
<span class="plain-syntax"> ---- module_request 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- tree_inventory 1 object, 312 bytes</span>
<span class="plain-syntax"> ---- inter_pipeline 1 object, 312 bytes</span>
<span class="plain-syntax"> ---- tree_inventory 1 object, 312 bytes</span>
<span class="plain-syntax"> ---- up_family 9 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"> ---- contents_entry 7 objects, 280 bytes</span>
<span class="plain-syntax"> ---- compilation_unit 5 objects, 280 bytes</span>
<span class="plain-syntax"> ---- verb_usage_tier 5 objects, 240 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"> ---- inform_project 1 object, 216 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"> ---- code_generator 5 objects, 200 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"> ---- plural_dictionary_entry 4 objects, 192 bytes</span>
<span class="plain-syntax"> ---- kit_dependency 4 objects, 192 bytes</span>
<span class="plain-syntax"> ---- inference_subject_family 5 objects, 160 bytes</span>
<span class="plain-syntax"> ---- inter_architecture 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- imperative_defn_family 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- attachment_instruction 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- imperative_defn_family 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- inference_subject_family 5 objects, 160 bytes</span>
<span class="plain-syntax"> ---- element_activation 4 objects, 128 bytes</span>
<span class="plain-syntax"> ---- inbuild_nest 3 objects, 120 bytes</span>
<span class="plain-syntax"> ---- local_block_value 2 objects, 112 bytes</span>
@ -346,29 +347,29 @@ represent less than 1/1000th of the total.
<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"> ---- article 2 objects, 80 bytes</span>
<span class="plain-syntax"> ---- figures_data 1 object, 56 bytes</span>
<span class="plain-syntax"> ---- inter_warehouse 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"> ---- star_invention 1 object, 48 bytes</span>
<span class="plain-syntax"> ---- HTML_file_state 1 object, 48 bytes</span>
<span class="plain-syntax"> ---- loop_over_scope 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- star_invention 1 object, 48 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"> ---- kind_template_definition 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- loop_over_scope 1 object, 40 bytes</span>
<span class="plain-syntax">100.0% was used for memory not allocated for objects:</span>
<span class="plain-syntax"> 56.8% text stream storage 70447620 bytes in 479130 claims</span>
<span class="plain-syntax"> 4.2% dictionary storage 5263872 bytes in 7588 claims</span>
<span class="plain-syntax"> 57.6% text stream storage 72814012 bytes in 480631 claims</span>
<span class="plain-syntax"> 4.1% dictionary storage 5297152 bytes in 7590 claims</span>
<span class="plain-syntax"> ---- sorting 1520 bytes in 159 claims</span>
<span class="plain-syntax"> 5.8% source text 7200000 bytes in 3 claims</span>
<span class="plain-syntax"> 8.7% source text details 10800000 bytes in 2 claims</span>
<span class="plain-syntax"> 5.6% source text 7200000 bytes in 3 claims</span>
<span class="plain-syntax"> 8.5% source text details 10800000 bytes in 2 claims</span>
<span class="plain-syntax"> 0.2% 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.6% inter symbols storage 4520768 bytes in 27950 claims</span>
<span class="plain-syntax"> 13.5% inter bytecode storage 16767568 bytes in 14 claims</span>
<span class="plain-syntax"> 5.0% inter links storage 6222976 bytes in 11 claims</span>
<span class="plain-syntax"> 3.6% inter symbols storage 4553008 bytes in 27952 claims</span>
<span class="plain-syntax"> 13.2% inter bytecode storage 16767568 bytes in 14 claims</span>
<span class="plain-syntax"> 4.9% 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.3% instance-of-kind counting 1700416 bytes in 1 claim</span>
<span class="plain-syntax"> ---- compilation workspace for objects 21896 bytes in 25 claims</span>
@ -376,7 +377,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- code generation workspace for objects 1336 bytes in 4 claims</span>
<span class="plain-syntax"> 0.2% emitter array storage 280288 bytes in 1999 claims</span>
<span class="plain-syntax">-150.0% was overhead - -185923840 bytes = -181566K = -177 MB</span>
<span class="plain-syntax">-147.-2% was overhead - -185990064 bytes = -181630K = -177 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

View file

@ -4772,19 +4772,19 @@
{...}
constraint (none) extremes [1, infinity)
<optional-article> hits 83034/166068 nti 13 constraint (none) extremes [1, infinity)
<optional-article> hits 83045/166090 nti 13 constraint (none) extremes [1, infinity)
English:
<article> {...}
(hits 16068/47443) (matched long text) constraint (none) extremes [2, infinity)
(hits 16076/47454) (matched long text) constraint (none) extremes [2, infinity)
{...}
(hits 66966/66966) (matched long text) constraint (none) extremes [1, infinity)
(hits 66969/66969) (matched long text) constraint (none) extremes [1, infinity)
<compulsory-article> nti 14 constraint (none) extremes [2, infinity)
English:
<article> {...}
constraint (none) extremes [2, infinity)
<article> internal hits 16522/98944 nti r2 constraint (none) extremes [1, 1]
<article> internal hits 16530/98966 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 20373/236440 nti r2 constraint (none) extremes [1, 1]
@ -7112,9 +7112,9 @@
<rulebook-bud> hits 92/1500 nti 29 constraint DS = {29} extremes [1, infinity)
English:
of/for {...}
(hits 48/252) (matched long text) constraint DS = {29} extremes [2, infinity)
(hits 48/258) (matched long text) constraint DS = {29} extremes [2, infinity)
rule about/for/on {...}
(hits 0/200) constraint DS = {29} extremes [3, infinity)
(hits 0/206) constraint DS = {29} extremes [3, infinity)
rule
(hits 44/44) (matched: 'rule') constraint CS = {29} extremes [1, 1]
@ -7779,7 +7779,7 @@
<s-rule-name> internal nti 16 constraint (none) extremes [1, infinity)
<s-table-column-name> internal hits 165/18632 nti 17 constraint (none) extremes [1, infinity)
<s-table-column-name> internal hits 165/18654 nti 17 constraint (none) extremes [1, infinity)
<property-name-as-noun-phrase> hits 36/1576 nti 18 constraint DS = {23} extremes [2, infinity)
English:
@ -8124,13 +8124,13 @@
English:
<s-table-column-name> entry
(hits 135/3831) (matched: 'the locale description priority entry') constraint DS = {29} extremes [2, infinity)
<s-table-column-name> in row <s-value-uncached> of <s-value-uncached>
<s-table-column-name> in row <s-value-uncached> in/of/from <s-value-uncached>
(hits 0/416) constraint DS = {29} extremes [6, infinity)
<s-table-column-name> listed in <s-value-uncached>
(hits 2/1437) (matched: 'a topic listed in source') constraint DS = {29} extremes [4, infinity)
<s-table-column-name> corresponding to <s-table-column-name> of <s-value-uncached> in <s-value-uncached>
<s-table-column-name> corresponding to <s-table-column-name> of <s-value-uncached> in/from <s-value-uncached>
(hits 0/196) constraint DS = {29} extremes [8, infinity)
<s-table-column-name> of <s-value-uncached> in <s-value-uncached>
<s-table-column-name> of <s-value-uncached> in/from <s-value-uncached>
(hits 2/682) (matched long text) constraint DS = {29} extremes [5, infinity)
<s-sentence> hits 1080/2250 nti 28 constraint (none) extremes [3, infinity)

View file

@ -181,19 +181,19 @@ than the number with correct ones
number of successes.
</li></ul>
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">Size of lexicon: 3102 excerpt meanings</span>
<span class="plain-syntax">Size of lexicon: 3109 excerpt meanings</span>
<span class="plain-syntax"> Stored among 840 words out of total vocabulary of 10547</span>
<span class="plain-syntax"> 710 words have a start list: longest belongs to report (with 293 meanings)</span>
<span class="plain-syntax"> 15 words have an end list: longest belongs to case (with 6 meanings)</span>
<span class="plain-syntax"> 29 words have a middle list: longest belongs to to (with 4 meanings)</span>
<span class="plain-syntax"> 108 words have a subset list: longest belongs to street (with 4 meanings)</span>
<span class="plain-syntax">Number of attempts to retrieve: 106495</span>
<span class="plain-syntax"> of which unsuccessful: 88844</span>
<span class="plain-syntax">Number of attempts to retrieve: 106506</span>
<span class="plain-syntax"> of which unsuccessful: 88855</span>
<span class="plain-syntax"> of which successful: 17651</span>
<span class="plain-syntax">Total attempts to match against excerpt meanings: 261329</span>
<span class="plain-syntax"> of which, total with incorrect hash codes: 239257</span>
<span class="plain-syntax">Total attempts to match against excerpt meanings: 262902</span>
<span class="plain-syntax"> of which, total with incorrect hash codes: 240830</span>
<span class="plain-syntax"> of which, total with correct hash codes: 22072</span>
<span class="plain-syntax"> of which, total which matched: 19333</span>
</pre>

View file

@ -187,7 +187,7 @@ should be able to fake the date-stamp with dates of their own choosing.
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">year_digits</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">tm_year</span><span class="plain-syntax">) % </span><span class="constant-syntax">100</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">SN</span><span class="plain-syntax">, </span><span class="string-syntax">"%02d%02d%02d"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">year_digits</span><span class="plain-syntax">, (</span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">tm_mon</span><span class="plain-syntax">)+1, </span><span class="identifier-syntax">the_present</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">tm_mday</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SERIAL_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">BibliographicData::read_uuid</span><span class="plain-syntax">());</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SERIAL_MD_HL</span><span class="plain-syntax">), </span><span class="identifier-syntax">SN</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><a href="2-emt.html#SP9" class="function-link"><span class="function-syntax">Emit::serial_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">SN</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">SN</span><span class="plain-syntax">)</span>
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>

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#2">Chapter 2: Conceptual Framework</a></li><li><b>Registries</b></li></ul></div>
<p class="purpose">Registries are nests provided with metadata and intended to be presented as an online source from which Inform resources can be downloaded.</p>
<ul class="toc"><li><a href="2-rgs.html#SP1">&#167;1. Creation</a></li><li><a href="2-rgs.html#SP3">&#167;3. The roster</a></li><li><a href="2-rgs.html#SP5">&#167;5. Building</a></li><li><a href="2-rgs.html#SP24">&#167;24. Escapology</a></li><li><a href="2-rgs.html#SP25">&#167;25. Looking up by textual ID</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="2-rgs.html#SP1">&#167;1. Creation</a></li><li><a href="2-rgs.html#SP3">&#167;3. The roster</a></li><li><a href="2-rgs.html#SP5">&#167;5. Building</a></li><li><a href="2-rgs.html#SP24">&#167;24. Escapology</a></li><li><a href="2-rgs.html#SP25">&#167;25. Looking up by textual ID</a></li><li><a href="2-rgs.html#SP28">&#167;28. Simpler preprocessing</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Creation. </b>To "create" a registry here does not mean actually altering the file system, for
example by making a directory: registries here are merely notes in memory of
@ -270,7 +270,7 @@ files for the named platform. It's an <span class="extract"><span class="extract
</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">Registries::css_expander</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">Registries::css_expander</span></span>:<br/><a href="2-rgs.html#SP5_1">&#167;5.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">preprocessor_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mm</span><span class="plain-syntax">, </span><span class="identifier-syntax">preprocessor_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PPS</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Registries::css_expander</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">Registries::css_expander</span></span>:<br/><a href="2-rgs.html#SP5_1">&#167;5.1</a>, <a href="2-rgs.html#SP28">&#167;28</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">preprocessor_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mm</span><span class="plain-syntax">, </span><span class="identifier-syntax">preprocessor_state</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PPS</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">parameter_values</span><span class="plain-syntax">, </span><span class="identifier-syntax">preprocessor_loop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loop</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</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">platform</span><span class="plain-syntax"> = </span><span class="identifier-syntax">parameter_values</span><span class="plain-syntax">[0];</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prototype</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InstalledFiles::filename_for_platform</span><span class="plain-syntax">(</span><span class="identifier-syntax">CSS_SET_BY_PLATFORM_IRES</span><span class="plain-syntax">, </span><span class="identifier-syntax">platform</span><span class="plain-syntax">);</span>
@ -754,6 +754,26 @@ of its subsection to <span class="extract"><span class="extract-syntax">subsecti
<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>
</pre>
<p class="commentary firstcommentary"><a id="SP28" class="paragraph-anchor"></a><b>&#167;28. Simpler preprocessing. </b>A simpler version of the above preprocessor is convenient as a way of manufacting
small HTML files needed in the Inform apps: for example, to display advice text
on the launcher panels. There's nothing interesting about those files except that
they may need platform-specific CSS in order to display properly in Dark Mode,
use congenial fonts, and so on.
</p>
<p class="commentary">We preprocess from <span class="extract"><span class="extract-syntax">F</span></span> to <span class="extract"><span class="extract-syntax">T</span></span>:
</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">Registries::preprocess_HTML</span><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</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">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ML</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">preprocessor_macro</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preprocessor::new_macro</span><span class="plain-syntax">(</span><span class="identifier-syntax">ML</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"include-css"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"?platform: PLATFORM"</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><a href="2-rgs.html#SP8" class="function-link"><span class="function-syntax">Registries::css_expander</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="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="string-syntax">"%f -&gt; %f\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Preprocessor::preprocess</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">ML</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">NULL_GENERAL_POINTER</span><span class="plain-syntax">, </span><span class="character-syntax">'#'</span><span class="plain-syntax">, </span><span class="identifier-syntax">UTF8_ENC</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
<ul class="progressbar"><li class="progressprev"><a href="2-nst.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="progresscurrentchapter">2</li><li class="progresssection"><a href="2-gnr.html">gnr</a></li><li class="progresssection"><a href="2-wrk.html">wrk</a></li><li class="progresssection"><a href="2-edt.html">edt</a></li><li class="progresssection"><a href="2-cps.html">cps</a></li><li class="progresssection"><a href="2-ce.html">ce</a></li><li class="progresssection"><a href="2-rqr.html">rqr</a></li><li class="progresssection"><a href="2-nst.html">nst</a></li><li class="progresscurrent">rgs</li><li class="progresssection"><a href="2-jm.html">jm</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="progresschapter"><a href="7-tm.html">7</a></li><li class="progressnext"><a href="2-jm.html">&#10095;</a></li></ul></div>
</nav><!--End of weave-->

View file

@ -584,10 +584,10 @@ Again, this is part of a condition, and can't evaluate.
<pre class="Preform-displayed-code all-displayed-code code-font">
<span class="Preform-function-syntax">&lt;s-table-reference&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">entry</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-teav.html#SP20_1" class="named-paragraph-link"><span class="named-paragraph">Table (a)</span><span class="named-paragraph-number">20.1</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">row</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-teav.html#SP20_2" class="named-paragraph-link"><span class="named-paragraph">Table (b)</span><span class="named-paragraph-number">20.2</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">row</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in/of/from</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-teav.html#SP20_2" class="named-paragraph-link"><span class="named-paragraph">Table (b)</span><span class="named-paragraph-number">20.2</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">listed</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-teav.html#SP20_3" class="named-paragraph-link"><span class="named-paragraph">Table (c)</span><span class="named-paragraph-number">20.3</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">corresponding</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">to</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-teav.html#SP20_4" class="named-paragraph-link"><span class="named-paragraph">Table (d)</span><span class="named-paragraph-number">20.4</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-teav.html#SP20_5" class="named-paragraph-link"><span class="named-paragraph">Table (e)</span><span class="named-paragraph-number">20.5</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">corresponding</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">to</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in/from</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-teav.html#SP20_4" class="named-paragraph-link"><span class="named-paragraph">Table (d)</span><span class="named-paragraph-number">20.4</span></a></span>
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-table-column-name&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">of</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">in/from</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax">&lt;s-value-uncached&gt;</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==&gt;</span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-teav.html#SP20_5" class="named-paragraph-link"><span class="named-paragraph">Table (e)</span><span class="named-paragraph-number">20.5</span></a></span>
</pre>
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
<p class="commentary firstcommentary"><a id="SP20_1" class="paragraph-anchor"></a><b>&#167;20.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Table (a)</span><span class="named-paragraph-number">20.1</span></span><span class="Preform-comment-syntax"> =</span>

View file

@ -15,6 +15,7 @@ int dry_run_mode = FALSE, build_trace_mode = FALSE;
inbuild_nest *destination_nest = NULL;
inbuild_registry *selected_registry = NULL;
text_stream *filter_text = NULL;
pathname *preprocess_HTML_destination = NULL;
@h Main routine.
When Inbuild is called at the command line, it begins at |main|, like all C
@ -314,6 +315,8 @@ other options to the selection defined here.
@e VERSIONS_IN_FILENAMES_CLSW
@e VERIFY_REGISTRY_CLSW
@e BUILD_REGISTRY_CLSW
@e PREPROCESS_HTML_CLSW
@e PREPROCESS_HTML_TO_CLSW
@<Read the command line@> =
CommandLine::declare_heading(
@ -363,6 +366,10 @@ other options to the selection defined here.
L"verify roster.json metadata of registry in the directory X");
CommandLine::declare_switch(BUILD_REGISTRY_CLSW, L"build-registry", 2,
L"construct HTML menu pages for registry in the directory X");
CommandLine::declare_switch(PREPROCESS_HTML_CLSW, L"preprocess-html", 2,
L"construct HTML page based on X");
CommandLine::declare_switch(PREPROCESS_HTML_TO_CLSW, L"preprocess-html-to", 2,
L"set destination for -preprocess-html to be X");
Supervisor::declare_options();
CommandLine::read(argc, argv, NULL, &Main::option, &Main::bareword);
@ -410,6 +417,16 @@ void Main::option(int id, int val, text_stream *arg, void *state) {
if (id == BUILD_REGISTRY_CLSW)
Registries::build(selected_registry);
break;
case PREPROCESS_HTML_TO_CLSW:
preprocess_HTML_destination = Pathnames::from_text(arg);
break;
case PREPROCESS_HTML_CLSW:
if (preprocess_HTML_destination == NULL)
Errors::fatal("must specify -preprocess-html-to P to give destination path P first");
filename *F = Filenames::from_text(arg);
filename *T = Filenames::in(preprocess_HTML_destination, Filenames::get_leafname(F));
Registries::preprocess_HTML(T, F);
break;
}
Supervisor::option(id, val, arg, state);
}

View file

@ -16,6 +16,8 @@ usage: inbuild [-TASK] TARGET1 TARGET2 ...
-graph show dependency graph of target(s) but take no action
-inspect show target(s) but take no action
-matching X apply to all works in nest(s) matching requirement X
-preprocess-html X construct HTML page based on X
-preprocess-html-to X set destination for -preprocess-html to be X
-rebuild completely rebuild target(s)
-sync-to X forcibly copy target(s) to nest X, even if prior version already there
-tools X make X the directory of intools executables, and exit developer mode

View file

@ -659,3 +659,22 @@ JSON_value *Registries::subsection_from_textual_id(inbuild_registry *R, text_str
WRITE_TO(STDERR, "error: no such subsection ID as '%S'\n", ssid);
return NULL;
}
@h Simpler preprocessing.
A simpler version of the above preprocessor is convenient as a way of manufacting
small HTML files needed in the Inform apps: for example, to display advice text
on the launcher panels. There's nothing interesting about those files except that
they may need platform-specific CSS in order to display properly in Dark Mode,
use congenial fonts, and so on.
We preprocess from |F| to |T|:
=
void Registries::preprocess_HTML(filename *T, filename *F) {
linked_list *ML = NEW_LINKED_LIST(preprocessor_macro);
Preprocessor::new_macro(ML, I"include-css", I"?platform: PLATFORM",
Registries::css_expander, NULL);
WRITE_TO(STDOUT, "%f -> %f\n", F, T);
Preprocessor::preprocess(F, T, NULL, ML,
NULL_GENERAL_POINTER, '#', UTF8_ENC);
}

View file

@ -1,15 +1,15 @@
Size of lexicon: 3102 excerpt meanings
Size of lexicon: 3109 excerpt meanings
Stored among 840 words out of total vocabulary of 10547
710 words have a start list: longest belongs to report (with 293 meanings)
15 words have an end list: longest belongs to case (with 6 meanings)
29 words have a middle list: longest belongs to to (with 4 meanings)
108 words have a subset list: longest belongs to street (with 4 meanings)
Number of attempts to retrieve: 106495
of which unsuccessful: 88844
Number of attempts to retrieve: 106506
of which unsuccessful: 88855
of which successful: 17651
Total attempts to match against excerpt meanings: 261329
of which, total with incorrect hash codes: 239257
Total attempts to match against excerpt meanings: 262902
of which, total with incorrect hash codes: 240830
of which, total with correct hash codes: 22072
of which, total which matched: 19333

View file

@ -4772,19 +4772,19 @@
{...}
constraint (none) extremes [1, infinity)
<optional-article> hits 83034/166068 nti 13 constraint (none) extremes [1, infinity)
<optional-article> hits 83045/166090 nti 13 constraint (none) extremes [1, infinity)
English:
<article> {...}
(hits 16068/47443) (matched long text) constraint (none) extremes [2, infinity)
(hits 16076/47454) (matched long text) constraint (none) extremes [2, infinity)
{...}
(hits 66966/66966) (matched long text) constraint (none) extremes [1, infinity)
(hits 66969/66969) (matched long text) constraint (none) extremes [1, infinity)
<compulsory-article> nti 14 constraint (none) extremes [2, infinity)
English:
<article> {...}
constraint (none) extremes [2, infinity)
<article> internal hits 16522/98944 nti r2 constraint (none) extremes [1, 1]
<article> internal hits 16530/98966 nti r2 constraint (none) extremes [1, 1]
<definite-article> internal hits 20373/236440 nti r2 constraint (none) extremes [1, 1]
@ -7112,9 +7112,9 @@
<rulebook-bud> hits 92/1500 nti 29 constraint DS = {29} extremes [1, infinity)
English:
of/for {...}
(hits 48/252) (matched long text) constraint DS = {29} extremes [2, infinity)
(hits 48/258) (matched long text) constraint DS = {29} extremes [2, infinity)
rule about/for/on {...}
(hits 0/200) constraint DS = {29} extremes [3, infinity)
(hits 0/206) constraint DS = {29} extremes [3, infinity)
rule
(hits 44/44) (matched: 'rule') constraint CS = {29} extremes [1, 1]
@ -7779,7 +7779,7 @@
<s-rule-name> internal nti 16 constraint (none) extremes [1, infinity)
<s-table-column-name> internal hits 165/18632 nti 17 constraint (none) extremes [1, infinity)
<s-table-column-name> internal hits 165/18654 nti 17 constraint (none) extremes [1, infinity)
<property-name-as-noun-phrase> hits 36/1576 nti 18 constraint DS = {23} extremes [2, infinity)
English:
@ -8124,13 +8124,13 @@
English:
<s-table-column-name> entry
(hits 135/3831) (matched: 'the locale description priority entry') constraint DS = {29} extremes [2, infinity)
<s-table-column-name> in row <s-value-uncached> of <s-value-uncached>
<s-table-column-name> in row <s-value-uncached> in/of/from <s-value-uncached>
(hits 0/416) constraint DS = {29} extremes [6, infinity)
<s-table-column-name> listed in <s-value-uncached>
(hits 2/1437) (matched: 'a topic listed in source') constraint DS = {29} extremes [4, infinity)
<s-table-column-name> corresponding to <s-table-column-name> of <s-value-uncached> in <s-value-uncached>
<s-table-column-name> corresponding to <s-table-column-name> of <s-value-uncached> in/from <s-value-uncached>
(hits 0/196) constraint DS = {29} extremes [8, infinity)
<s-table-column-name> of <s-value-uncached> in <s-value-uncached>
<s-table-column-name> of <s-value-uncached> in/from <s-value-uncached>
(hits 2/682) (matched long text) constraint DS = {29} extremes [5, infinity)
<s-sentence> hits 1080/2250 nti 28 constraint (none) extremes [3, infinity)

View file

@ -1,70 +1,69 @@
Total memory consumption was 157046K = 153 MB
Total memory consumption was 123356K = 120 MB
---- was used for 2585082 objects, in 589430 frames in 0 x 800K = 0K = 0 MB:
---- was used for 2049632 objects, in 364585 frames in 0 x 800K = 0K = 0 MB:
30.0% inter_tree_node_array 67 x 8192 = 548864 objects, 48302176 bytes
23.4% text_stream_array 6682 x 100 = 668200 objects, 37633024 bytes
15.4% linked_list 44435 objects, 24883600 bytes
13.5% inter_schema_token 151613 objects, 21832272 bytes
10.0% inter_symbol_array 151 x 1024 = 154624 objects, 16085728 bytes
8.2% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
6.4% parse_node 129705 objects, 10376400 bytes
4.8% inter_schema_node 81168 objects, 7792128 bytes
4.6% verb_conjugation 160 objects, 7425280 bytes
3.4% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
2.1% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
2.0% scan_directory 809 objects, 3339552 bytes
2.0% inter_name_array 69 x 1000 = 69000 objects, 3314208 bytes
1.6% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
1.3% inter_name_generator_array 53 x 1000 = 53000 objects, 2121696 bytes
1.1% package_request 21165 objects, 1862520 bytes
1.1% dict_entry_array 569 x 100 = 56900 objects, 1839008 bytes
1.1% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
1.0% inter_symbols_table 29438 objects, 1648528 bytes
0.9% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
0.8% inter_package 29438 objects, 1413024 bytes
0.8% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
0.7% map_data 671 objects, 1127280 bytes
0.6% id_body 942 objects, 1077648 bytes
0.6% adjective_meaning 202 objects, 1000304 bytes
0.6% excerpt_meaning 3102 objects, 967824 bytes
0.5% production 3878 objects, 899696 bytes
0.5% ptoken 8404 objects, 874016 bytes
0.5% grammatical_usage 3613 objects, 867120 bytes
0.5% individual_form 2563 objects, 861168 bytes
0.3% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
0.2% local_variable_array 47 x 100 = 4700 objects, 452704 bytes
0.2% hierarchy_location 3091 objects, 445104 bytes
0.2% dictionary 8657 objects, 415536 bytes
0.2% verb_usage 1128 objects, 388032 bytes
33.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
20.6% text_stream_array 4632 x 100 = 463200 objects, 26087424 bytes
19.4% linked_list 43887 objects, 24576720 bytes
11.1% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
10.4% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
8.2% parse_node 129712 objects, 10376960 bytes
5.8% verb_conjugation 160 objects, 7425280 bytes
4.3% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
2.5% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
2.0% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
1.7% scan_directory 521 objects, 2150688 bytes
1.6% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
1.5% inter_schema_token 13964 objects, 2010816 bytes
1.4% package_request 21153 objects, 1861464 bytes
1.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
1.2% dict_entry_array 473 x 100 = 47300 objects, 1528736 bytes
1.1% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
1.1% inter_symbols_table 26592 objects, 1489152 bytes
1.0% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
1.0% inter_package 26592 objects, 1276416 bytes
0.8% map_data 671 objects, 1127280 bytes
0.8% id_body 942 objects, 1077648 bytes
0.7% adjective_meaning 202 objects, 1000304 bytes
0.7% excerpt_meaning 3109 objects, 970008 bytes
0.7% production 3878 objects, 899696 bytes
0.6% ptoken 8408 objects, 874432 bytes
0.6% grammatical_usage 3613 objects, 867120 bytes
0.6% individual_form 2563 objects, 861168 bytes
0.6% inter_schema_node 8917 objects, 856032 bytes
0.5% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes
0.3% verb_usage 1128 objects, 388032 bytes
0.2% rule 470 objects, 368480 bytes
0.2% dictionary 7590 objects, 364320 bytes
0.2% verb_form 386 objects, 348944 bytes
0.1% noun 2382 objects, 285840 bytes
0.1% compilation_subtask 3355 objects, 268400 bytes
0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
0.1% inference_subject 666 objects, 261072 bytes
0.2% noun 2382 objects, 285840 bytes
0.2% compilation_subtask 3355 objects, 268400 bytes
0.2% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
0.2% inference_subject 666 objects, 261072 bytes
0.1% vanilla_function 3683 objects, 235712 bytes
0.1% binary_predicate 322 objects, 170016 bytes
---- linguistic_stock_item 3318 objects, 159264 bytes
---- rule_family_data 401 objects, 147568 bytes
---- inter_schema 2610 objects, 146160 bytes
---- nonterminal 758 objects, 139472 bytes
---- nascent_array 2127 objects, 136128 bytes
---- inter_tree 10 objects, 132240 bytes
0.1% hierarchy_location 1124 objects, 161856 bytes
0.1% linguistic_stock_item 3318 objects, 159264 bytes
0.1% rule_family_data 401 objects, 147568 bytes
0.1% nonterminal 758 objects, 139472 bytes
0.1% nascent_array 2127 objects, 136128 bytes
---- inference 1703 objects, 122616 bytes
---- documentation_ref 1273 objects, 112024 bytes
---- imperative_defn 1379 objects, 99288 bytes
---- noun_usage 2404 objects, 96160 bytes
---- function_body_request 1001 objects, 96096 bytes
---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes
---- preposition 273 objects, 87360 bytes
---- inter_schema 1511 objects, 84616 bytes
---- lexical_cluster 2519 objects, 80608 bytes
---- linked_list_item_array 5 x 1000 = 5000 objects, 80160 bytes
---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes
---- kind_variable_declaration 1655 objects, 79440 bytes
---- inter_tree 6 objects, 79344 bytes
---- label_namespace 1472 objects, 70656 bytes
---- rulebook 407 objects, 68376 bytes
---- spatial_data 671 objects, 64416 bytes
---- linked_list_item_array 4 x 1000 = 4000 objects, 64128 bytes
---- kind_macro_definition 9 objects, 62280 bytes
---- booking 861 objects, 61992 bytes
---- actions_rcd_data 1884 objects, 60288 bytes
@ -75,7 +74,6 @@ Total memory consumption was 157046K = 153 MB
---- pcalc_func_array 1 x 1000 objects, 56032 bytes
---- cg_line 230 objects, 53360 bytes
---- cg_token 603 objects, 53064 bytes
---- pipeline_step 39 objects, 52728 bytes
---- property_inference_data 1315 objects, 52600 bytes
---- response_message 408 objects, 52224 bytes
---- ap_clause_array 2 x 400 = 800 objects, 51264 bytes
@ -93,38 +91,35 @@ Total memory consumption was 157046K = 153 MB
---- property_permission 96 objects, 31488 bytes
---- stack_frame_box 305 objects, 29280 bytes
---- verb_sense 403 objects, 29016 bytes
---- filename 720 objects, 28800 bytes
---- action_pattern_array 7 x 100 = 700 objects, 28224 bytes
---- shared_variable_set_array 6 x 100 = 600 objects, 24192 bytes
---- pathname 575 objects, 23000 bytes
---- backdrops_data 671 objects, 21472 bytes
---- build_vertex 177 objects, 21240 bytes
---- inter_node_list 654 objects, 20928 bytes
---- pipeline_step 15 objects, 20280 bytes
---- action_name 90 objects, 20160 bytes
---- nonlocal_variable 93 objects, 20088 bytes
---- property 146 objects, 19856 bytes
---- timed_rules_rfd_data 401 objects, 19248 bytes
---- filename 476 objects, 19040 bytes
---- method 380 objects, 18240 bytes
---- pcalc_prop_deferral 86 objects, 17888 bytes
---- instance 167 objects, 17368 bytes
---- web_bibliographic_datum 261 objects, 16704 bytes
---- parse_node_tree 19 objects, 16416 bytes
---- understanding_reference_array 2 x 100 = 200 objects, 16064 bytes
---- to_phrase_request 59 objects, 16048 bytes
---- match_avinue_array 1 x 1000 objects, 16032 bytes
---- action_name_list_array 1 x 1000 objects, 16032 bytes
---- match_avinue_array 1 x 1000 objects, 16032 bytes
---- JSON_value 182 objects, 16016 bytes
---- build_vertex 129 objects, 15480 bytes
---- adjective 137 objects, 15344 bytes
---- pathname 375 objects, 15000 bytes
---- generated_segment 14 objects, 14784 bytes
---- booking_list 407 objects, 13024 bytes
---- adjective_iname_holder 320 objects, 12800 bytes
---- stopwatch_timer 146 objects, 11680 bytes
---- uniqueness_count 479 objects, 11496 bytes
---- inbuild_copy 102 objects, 11424 bytes
---- section_md 117 objects, 11232 bytes
---- uniqueness_count 453 objects, 10872 bytes
---- inter_construct 30 objects, 10320 bytes
---- inbuild_work 157 objects, 10048 bytes
---- inbuild_edition 120 objects, 8640 bytes
---- web_bibliographic_datum 145 objects, 9280 bytes
---- stopwatch_timer 114 objects, 9120 bytes
---- equation_node 68 objects, 7616 bytes
---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes
---- shared_variable_array 1 x 100 objects, 7232 bytes
@ -132,31 +127,33 @@ Total memory consumption was 157046K = 153 MB
---- verb 108 objects, 6912 bytes
---- hierarchy_attachment_point 77 objects, 6776 bytes
---- text_literal_holder 163 objects, 6520 bytes
---- compatibility_specification 131 objects, 6288 bytes
---- build_script 177 objects, 5664 bytes
---- inbuild_work 101 objects, 6464 bytes
---- inbuild_copy 54 objects, 6048 bytes
---- inbuild_edition 72 objects, 5184 bytes
---- heading_tree 19 objects, 5168 bytes
---- explicit_action_array 1 x 100 objects, 4832 bytes
---- value_property_data 84 objects, 4704 bytes
---- inform_pipeline 72 objects, 4608 bytes
---- parsing_pp_data 96 objects, 4608 bytes
---- semver_range 39 objects, 4056 bytes
---- command_line_switch 49 objects, 3920 bytes
---- section_md 45 objects, 4320 bytes
---- build_script 129 objects, 4128 bytes
---- compatibility_specification 83 objects, 3984 bytes
---- activity 35 objects, 3920 bytes
---- command_line_switch 49 objects, 3920 bytes
---- submodule_request 94 objects, 3760 bytes
---- parse_node_annotation_type 114 objects, 3648 bytes
---- property_setting_bp_data 84 objects, 3360 bytes
---- method_set 104 objects, 3328 bytes
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
---- semver_range 31 objects, 3224 bytes
---- definition 44 objects, 3168 bytes
---- inform_extension 18 objects, 3024 bytes
---- either_or_property_data 62 objects, 2976 bytes
---- target_vm 20 objects, 2880 bytes
---- code_generation 5 objects, 2880 bytes
---- use_option 29 objects, 2552 bytes
---- parentage_inference_data 79 objects, 2528 bytes
---- part_of_inference_data 79 objects, 2528 bytes
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
---- parentage_inference_data 79 objects, 2528 bytes
---- kind_constructor_instance_array 1 x 100 objects, 2432 bytes
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
---- equation_symbol 30 objects, 2400 bytes
---- JSON_type 31 objects, 2232 bytes
---- scene 1 object, 2096 bytes
@ -165,51 +162,53 @@ Total memory consumption was 157046K = 153 MB
---- pronoun_usage 42 objects, 1680 bytes
---- table_contribution_array 1 x 100 objects, 1632 bytes
---- plugin 25 objects, 1600 bytes
---- inter_pipeline 5 objects, 1560 bytes
---- inform_pipeline 24 objects, 1536 bytes
---- noun_filter_token 22 objects, 1408 bytes
---- inbuild_requirement 35 objects, 1400 bytes
---- inter_node_array 34 objects, 1360 bytes
---- special_meaning_holder 33 objects, 1320 bytes
---- web_md 9 objects, 1296 bytes
---- table_column 16 objects, 1280 bytes
---- constant_phrase 20 objects, 1280 bytes
---- invocation_options_array 1 x 100 objects, 1224 bytes
---- direction_inference_data 30 objects, 1200 bytes
---- JSON_requirement 36 objects, 1152 bytes
---- inbuild_search_result 28 objects, 1120 bytes
---- tree_inventory_item 28 objects, 1120 bytes
---- inbuild_requirement 27 objects, 1080 bytes
---- runtime_kind_structure 13 objects, 1040 bytes
---- quantifier 16 objects, 1024 bytes
---- submodule_identity 31 objects, 992 bytes
---- pipeline_stage 20 objects, 960 bytes
---- named_rulebook_outcome 15 objects, 960 bytes
---- pipeline_stage 20 objects, 960 bytes
---- control_structure_phrase 12 objects, 864 bytes
---- cached_understanding 21 objects, 840 bytes
---- JSON_pair_requirement 26 objects, 832 bytes
---- phrase_option_array 1 x 100 objects, 824 bytes
---- chapter_md 9 objects, 792 bytes
---- inbuild_search_result 20 objects, 800 bytes
---- internal_test 15 objects, 720 bytes
---- module 9 objects, 720 bytes
---- web_md 5 objects, 720 bytes
---- relation_guard 5 objects, 640 bytes
---- implication 13 objects, 624 bytes
---- code_generation 1 object, 576 bytes
---- inter_warehouse_room 10 objects, 560 bytes
---- rulebook_outcome 17 objects, 544 bytes
---- small_word_set 11 objects, 528 bytes
---- inform_kit 5 objects, 520 bytes
---- equation 4 objects, 480 bytes
---- inform_language 6 objects, 480 bytes
---- equation 4 objects, 480 bytes
---- i6_memory_setting 14 objects, 448 bytes
---- chapter_md 5 objects, 440 bytes
---- inference_family 11 objects, 440 bytes
---- bp_family 13 objects, 416 bytes
---- inter_annotation_form 10 objects, 400 bytes
---- module 5 objects, 400 bytes
---- article_usage 8 objects, 384 bytes
---- source_file 5 objects, 360 bytes
---- inbuild_genre 7 objects, 336 bytes
---- cached_kind_declaration 8 objects, 320 bytes
---- grammatical_category 8 objects, 320 bytes
---- door_dir_notice 5 objects, 320 bytes
---- pronoun 8 objects, 320 bytes
---- module_request 8 objects, 320 bytes
---- grammatical_category 8 objects, 320 bytes
---- pronoun 8 objects, 320 bytes
---- door_dir_notice 5 objects, 320 bytes
---- inter_pipeline 1 object, 312 bytes
---- tree_inventory 1 object, 312 bytes
---- up_family 9 objects, 288 bytes
---- explicit_bp_data 5 objects, 280 bytes
@ -225,47 +224,46 @@ Total memory consumption was 157046K = 153 MB
---- code_generator 5 objects, 200 bytes
---- plural_dictionary_entry 4 objects, 192 bytes
---- kit_dependency 4 objects, 192 bytes
---- imperative_defn_family 4 objects, 160 bytes
---- inter_architecture 4 objects, 160 bytes
---- attachment_instruction 4 objects, 160 bytes
---- imperative_defn_family 4 objects, 160 bytes
---- inference_subject_family 5 objects, 160 bytes
---- module_search 4 objects, 128 bytes
---- element_activation 4 objects, 128 bytes
---- inbuild_nest 3 objects, 120 bytes
---- local_block_value 2 objects, 112 bytes
---- inform_kit_ittt 2 objects, 96 bytes
---- article 2 objects, 80 bytes
---- group_together_function 2 objects, 80 bytes
---- compile_task_data 1 object, 80 bytes
---- article 2 objects, 80 bytes
---- inter_warehouse 1 object, 56 bytes
---- figures_data 1 object, 56 bytes
---- build_methodology 1 object, 56 bytes
---- HTML_file_state 1 object, 48 bytes
---- star_invention 1 object, 48 bytes
---- kind_template_definition 1 object, 40 bytes
---- loop_over_scope 1 object, 40 bytes
---- by_function_bp_data 1 object, 40 bytes
---- I6_generation_data 1 object, 40 bytes
---- by_function_bp_data 1 object, 40 bytes
---- loop_over_scope 1 object, 40 bytes
100.0% was used for memory not allocated for objects:
65.6% text stream storage 105608036 bytes in 697573 claims
3.9% dictionary storage 6414336 bytes in 8657 claims
---- sorting 2032 bytes in 243 claims
4.4% source text 7200000 bytes in 3 claims
6.7% source text details 10800000 bytes in 2 claims
0.1% documentation fragments 262144 bytes in 1 claim
57.6% text stream storage 72814012 bytes in 480631 claims
4.1% dictionary storage 5297152 bytes in 7590 claims
---- sorting 1520 bytes in 159 claims
5.6% source text 7200000 bytes in 3 claims
8.5% source text details 10800000 bytes in 2 claims
0.2% 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.1% inter symbols storage 5119168 bytes in 31004 claims
10.4% inter bytecode storage 16787804 bytes in 14 claims
3.8% inter links storage 6222976 bytes in 11 claims
3.6% inter symbols storage 4553008 bytes in 27952 claims
13.2% inter bytecode storage 16767568 bytes in 14 claims
4.9% inter links storage 6222976 bytes in 11 claims
0.1% inter tree location list storage 191232 bytes in 32 claims
1.0% instance-of-kind counting 1700416 bytes in 1 claim
1.3% instance-of-kind counting 1700416 bytes in 1 claim
---- compilation workspace for objects 21896 bytes in 25 claims
---- lists for type-checking invocations 16000 bytes in 1 claim
---- code generation workspace for objects 1336 bytes in 4 claims
0.1% emitter array storage 280288 bytes in 1999 claims
0.2% emitter array storage 280288 bytes in 1999 claims
-146.-5% was overhead - -235741872 bytes = -230216K = -224 MB
-147.-2% was overhead - -185990064 bytes = -181630K = -177 MB

View file

@ -1,52 +1,33 @@
100.0% in inform7 run
56.6% in compilation to Inter
40.3% in //Sequence::undertake_queued_tasks//
3.6% in //MajorNodes::pre_pass//
3.0% in //MajorNodes::pass_1//
1.5% in //ImperativeDefinitions::assess_all//
1.1% in //RTKindConstructors::compile//
1.1% in //RTPhrasebook::compile_entries//
0.8% in //Sequence::lint_inter//
0.5% in //MajorNodes::pass_2//
0.5% in //World::stage_V//
0.3% in //ImperativeDefinitions::compile_first_block//
0.3% in //Sequence::undertake_queued_tasks//
0.3% in //Sequence::undertake_queued_tasks//
0.1% in //CompletionModule::compile//
0.1% in //InferenceSubjects::emit_all//
0.1% in //RTKindConstructors::compile_permissions//
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::stages_II_and_III//
2.1% not specifically accounted for
22.0% in supervisor
20.8% in running Inter pipeline
8.1% in step 14/15: generate inform6 -> auto.inf
4.5% in step 5/15: load-binary-kits
4.3% in step 6/15: make-synoptic-module
1.1% 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.1% in step 11/15: eliminate-redundant-labels
0.1% in step 8/15: detect-indirect-calls
1.3% not specifically accounted for
5.1% in running Inter pipeline
4.0% in step 5/6: compile-splats
0.5% in step 2/6: load-kit-source <- WorldModelKit
0.3% in step 6/6: generate binary -> inform7/Internal/Inter/WorldModelKit/arch-32d.interb
0.3% not specifically accounted for
5.0% in running Inter pipeline
3.8% in step 5/6: compile-splats
0.5% in step 2/6: load-kit-source <- WorldModelKit
0.3% in step 6/6: generate binary -> inform7/Internal/Inter/WorldModelKit/arch-16d.interb
0.4% not specifically accounted for
4.6% in running Inter pipeline
3.5% in step 5/6: compile-splats
0.6% in step 2/6: load-kit-source <- WorldModelKit
0.3% in step 6/6: generate binary -> inform7/Internal/Inter/WorldModelKit/arch-16.interb
0.1% not specifically accounted for
4.5% in running Inter pipeline
3.3% in step 5/6: compile-splats
0.5% in step 2/6: load-kit-source <- WorldModelKit
0.3% in step 6/6: generate binary -> inform7/Internal/Inter/WorldModelKit/arch-32.interb
0.4% not specifically accounted for
71.2% in compilation to Inter
49.7% in //Sequence::undertake_queued_tasks//
4.8% in //MajorNodes::pre_pass//
3.8% in //MajorNodes::pass_1//
2.0% in //ImperativeDefinitions::assess_all//
2.0% in //RTPhrasebook::compile_entries//
1.4% in //RTKindConstructors::compile//
1.0% in //Sequence::lint_inter//
0.6% in //MajorNodes::pass_2//
0.6% in //World::stage_V//
0.4% in //ImperativeDefinitions::compile_first_block//
0.4% in //Sequence::undertake_queued_tasks//
0.4% in //Sequence::undertake_queued_tasks//
0.2% in //CompletionModule::compile//
0.2% in //InferenceSubjects::emit_all//
0.2% in //RTKindConstructors::compile_permissions//
0.2% in //Task::make_built_in_kind_constructors//
0.2% in //World::stages_II_and_III//
2.8% not specifically accounted for
25.7% in running Inter pipeline
9.9% in step 14/15: generate inform6 -> auto.inf
5.6% in step 5/15: load-binary-kits
5.2% in step 6/15: make-synoptic-module
1.4% in step 9/15: make-identifiers-unique
0.4% in step 12/15: eliminate-redundant-operations
0.4% in step 4/15: compile-splats
0.4% in step 7/15: shorten-wiring
0.2% in step 11/15: eliminate-redundant-labels
0.2% in step 8/15: detect-indirect-calls
1.9% not specifically accounted for
2.6% in supervisor
0.5% not specifically accounted for

View file

@ -2,24 +2,21 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="indoc_WI.css" rel="stylesheet" type="text/css" />
{include-css}
<title>Credits</title>
</head>
<body class="paper papertint">
<!-- START IGNORE -->
<p class="sectionheading">Credits</p>
<p>Inform is a team effort kept alive by the enthusiasm of a community of writers.<br><br>
The core software is by Graham Nelson, and the Examples and much of the design by Emily Short, with advice from Andrew Plotkin and others.<br><br>
The Mac OS X application was originally written by Andrew Hunter, and was rewritten in 2014 by Toby Nelson, building on Andrew's foundations. Corresponding apps for Windows and Linux are by David Kinder and Philip Chimento, and command-line tools for Linux, on a variety of processors, are maintained by Adam Thornton. David also maintains the Inform 6 code base, now used as a code-generator within Inform 7.<br><br>
The two virtual machines underlying Inform are the Z-machine, designed by Joel Berez, Marc Blank, Dave Lebling and others (and originally called the ZIP), and Glulx, a successor in the same general spirit, which was designed by Andrew Plotkin.<br><br>
Many people have generously shared their Extensions to Inform, and they're credited individually. But special thanks are due to Erik Temple, Dannii Willis, Aaron Reed, Ron Newcomb, Eric Eve and Juhana Leinonen for putting together the core of the Public Library. Mark Musante has been a tireless librarian of the extensions, and Justin de Vesine a great help in organising our forum.<br><br>
Literally thousands of people have filed bug reports or suggestions over the years. If you're one of them, sincere thanks to YOUR NAME HERE. Inform would never have got this far without you.
</p>
<!-- END IGNORE -->
<body>
<p><span class="headingpaneltext">Credits</span></p>
<p>Inform is a team effort kept alive by the enthusiasm of a community of writers.</p>
<p>The core software is by Graham Nelson, and the Examples and much of the design by Emily Short, with advice from Andrew Plotkin and others.</p>
<p>The Mac OS X application was originally written by Andrew Hunter, and was rewritten in 2014 by Toby Nelson, building on Andrew's foundations. Corresponding apps for Windows and Linux are by David Kinder and Philip Chimento, and command-line tools for Linux, on a variety of processors, are maintained by Adam Thornton. David also maintains the Inform 6 code base, now used as a code-generator within Inform 7.</p>
<p>Many people have generously shared their Extensions to Inform, and they're credited individually. But special thanks are due to Mark Musante, Zed Lopez, Dannii Willis, Erik Temple, Aaron Reed, Ron Newcomb, Eric Eve and Juhana Leinonen for work on the Public Library and elsewhere.</p>
<p>Literally thousands of people have filed bug reports or suggestions over the years. If you're one of them, sincere thanks to YOUR NAME HERE. Inform would never have got this far without you.</p>
<p>The Interactive Fiction Technology Foundation (IFTF), a non-profit
organisation working on behalf of the community, has done an enormous
amount to bring people and resources together. Inform is not strictly
speaking an IFTF project, but if you like using Inform and would
like to make a donation to help things along, please donate to IFTF.</p>
<hr style="margin-top: 18px;">
</body>
</html>

View file

@ -2,25 +2,22 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="indoc_WI.css" rel="stylesheet" type="text/css" />
{include-css}
<style type="text/css">
th,td
{
\{
text-align: left;
font-size: 80%;
padding: 0px;
}
\}
table
{
\{
border-spacing:16px 0px;
}
\}
</style>
<title>Keyboard Shortcuts</title>
</head>
<body class="paper papertint">
<!-- START IGNORE -->
<p class="sectionheading">Keyboard Shortcuts</p>
<body>
<p><span class="headingpaneltext">Keyboard Shortcuts</span></p>
<table>
<tr><td>&#8984;L</td><td>Summon/Dismiss Launcher</td></tr>
@ -111,7 +108,6 @@
</td></tr>
</table>
<!-- END IGNORE -->
<hr style="margin-top: 18px;">
</body>
</html>

View file

@ -2,27 +2,26 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="indoc_WI.css" rel="stylesheet" type="text/css" />
{include-css}
<style type="text/css">
.red
{
\{
color:rgb(255,0,0);
}
\}
</style>
<title>Materials Folder</title>
</head>
<body class="paper papertint">
<!-- START IGNORE -->
<p class="sectionheading">Materials Folder</p>
<body>
<p><span class="headingpaneltext">Materials Folder</span></p>
<p>Every project has a &quot;.materials&quot; folder, which is always stored next to it on disc. (Use &#8984;M to show the current project's .materials in the Finder.) This screenshot shows how the .materials folder would look for a project which used it in every possible way. In practice, this is very unlikely.</p>
<img src="MaterialsDiagram.png" width="275" height="403"/>
<p>Project (<span class="red">1</span>) and .materials folder (<span class="red">2</span>) live side by side in the Finder: everything else here is inside .materials (<span class="red">2</span>). The author of this story decided that it should be given to players along with a PDF booklet (<span class="red">3</span>), by including this Release instruction in the source text:
<blockquote class="code"><p class="quoted">
<blockquote>
Release along with a file of &quot;A Guide to Arboreal Fauna&quot; called &quot;A Guide to Arboreal Fauna.pdf&quot;.
</p></blockquote>
</blockquote>
<p>Every released project needs cover art. Authors have to provide two files, full-sized at 960 by 960 (<span class="red">4</span>) and reduced at 120 by 120 (<span class="red">18</span>): they can either be &quot;Cover.jpg&quot; and &quot;Small Cover.jpg&quot; or &quot;Cover.png&quot; and &quot;Small Cover.png&quot;.</p>
@ -30,31 +29,30 @@
<p>Projects which include pictures as well as text need to store the necessary images, in JPEG or PNG format, in the Figures folder (<span class="red">8</span>). This one was declared in the source text like so:</p>
<blockquote class="code"><p class="quoted">
<blockquote>
Figure of Red Admiral Butterfly is the file &quot;butterfly.jpg&quot;.
</p></blockquote>
</blockquote>
<p>Sound effects are similar, use AIFF or OGG format, and live in Sounds (<span class="red">19</span>). There's one here (<span class="red">20</span>), declared by:</p>
<blockquote class="code"><p class="quoted">
<blockquote>
Sound of Rustling Leaves is the file &quot;Rustling Leaves.aiff&quot;.
</p></blockquote>
</blockquote>
<p>Projects which read or write files of data as they play should have a Files folder (<span class="red">10</span>) to hold these. This one (<span class="red">11</span>) was declared by:
<blockquote class="code"><p class="quoted">
<blockquote>
The File of Nut Storage Locations is called &quot;nutstorage&quot;.
</p></blockquote>
</blockquote>
<p>Now for some expert-only features which hardly anybody needs in practice. The I6T folder (<span class="red">12</span>) provides extra template files (<span class="red">13</span>), or indeed replacement ones (<span class="red">14</span>), and allows a project to include substantial portions of raw Inform 6 code. The Languages folder (<span class="red">16</span>) is for experimenting with new language bundles, a 2014 feature still in its early stages. The Templates folder (<span class="red">21</span>) is for providing the project with a non-standard Javascript engine, called an &quot;interpreter&quot;, when it's released as a website. Here there's an intepreter called &quot;Experimental&quot; (<span class="red">22</span>) which can be selected by putting this into the source:</p>
<blockquote class="code"><p class="quoted">
<blockquote>
Release along with the &quot;Experimental&quot; interpreter.
</p></blockquote>
</blockquote>
<p>And that just leaves the Release folder (<span class="red">17</span>). Inform creates this automatically if the project's Release button is clicked, and then writes into it whatever will eventually go out to players. So never store anything permanent here: it's intended to be just a holding area.
</p>
<!-- END IGNORE -->
<hr style="margin-top: 18px;">
</body>
</html>

View file

@ -2,29 +2,50 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="indoc_WI.css" rel="stylesheet" type="text/css" />
{include-css}
<title>New To Inform?</title>
</head>
<body class="paper papertint">
<!-- START IGNORE -->
<p class="sectionheading">New To Inform?</p>
<p>Inform is both an application and a language for creating text-based interactive stories. Interactive fiction is an art form which evolved out of the adventure games of the 1970s, in the same way that today's graphic novels evolved out of the newspaper cartoons of the 1930s. Inform has been the design tool of choice for many, indeed most, of the world's leading writers in this genre since 1993, and is also widely used in education at a variety of levels. It's completely free, even when used to create commercial works. Thanks for downloading this copy, and we hope you'll enjoy it.</p>
<body>
<p><span class="headingpaneltext">New To Inform?</span></p>
<p>Inform is both an application and a language for creating text-based
interactive stories. Interactive fiction is an art form which evolved out of the
adventure games of the 1970s, in the same way that today's graphic novels
evolved out of the newspaper cartoons of the 1930s. Inform has been the design
tool of choice for many, indeed most, of the world's leading writers in this
genre since 1993, and is also widely used in education at a variety of levels.
It's completely free, even when used to create commercial works. Thanks for
downloading this copy, and we hope you'll enjoy it.</p>
<p>As you've seen, the app begins with a launcher panel. (Bring it back or remove it by typing &#8984;L.) You might like to try clicking Onyx, the smallest of the samples, under the &quot;Open a Sample Project&quot; list: it's a very short Russian folk-tale. Inform will ask you to choose somewhere on disc to store it, and then make a copy there. You can play with this and alter it freely, then throw it away when you're done: it's just a copy.</p>
<p>As you've seen, the app begins with a launcher panel. (Bring it back or
remove it by typing &#8984;L.) You might like to try clicking Onyx, the smallest
of the samples, under the &quot;Open a Sample Project&quot; list: it's a very
short Russian folk-tale. Inform will ask you to choose somewhere on disc to
store it, and then make a copy there. You can play with this and alter it
freely, then throw it away when you're done: it's just a copy.</p>
<p>You can have several Inform projects open at once, but each one lives in a single window which is divided in half. The left and right sides are called &quot;panes&quot; and you can choose what's shown in them with the side tabs: it starts out as Source on the left, Documentation on the right. (From the Launcher, you can also save out a copy of the documentation as an EPUB file to read in iBooks on Mac OS 10.9 or later, or on an iPad.)</p>
<p>You can have several Inform projects open at once, but each one lives in a
single window which is divided in half. The left and right sides are called
&quot;panes&quot; and you can choose what's shown in them with the side tabs: it
starts out as Source on the left, Documentation on the right. (From the
Launcher, you can also save out a copy of the documentation as an EPUB file to
read in iBooks on Mac OS 10.9 or later, or on an iPad.)</p>
<p>Inform &quot;translates&quot; the instructions in the Source into a playable story. To see that in action, click the Go button for the Onyx project. You'll have to wait just a moment - an Inform project is a surprisingly complicated thing to make, even when the instructions look short - but then the Story pane will open, and you can type in commands as if you were the player. If you're not sure what to type, try </p>
<p>Inform &quot;translates&quot; the instructions in the Source into a playable
story. To see that in action, click the Go button for the Onyx project. You'll
have to wait just a moment - an Inform project is a surprisingly complicated
thing to make, even when the instructions look short - but then the Story pane
will open, and you can type in commands as if you were the player. If you're not
sure what to type, try typing:</p>
<blockquote class="code"><p class="quoted">
<blockquote>
TEST ME
</p></blockquote>
</blockquote>
<p>which makes it show what it can do.</p>
<p>The Launcher also offers a larger sample project called &quot;Disenchantment
Bay&quot;, a story about a boat trip in Alaska. Beyond that, there are around
450 Examples in the Documentation, and by clicking on the &quot;save as
project&quot; icon you can get playable versions of all of those, too.</p>
<p>The Launcher also offers a larger sample project called &quot;Disenchantment Bay&quot;, a story about a boat trip in Alaska. Beyond that, there are around 450 Examples in the Documentation, and by clicking on the &quot;save as project&quot; icon you can get playable versions of all of those, too.</p>
</p>
<!-- END IGNORE -->
<hr style="margin-top: 18px;">
</body>
</html>

View file

@ -2,22 +2,27 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="indoc_WI.css" rel="stylesheet" type="text/css" />
{include-css}
<title>Upgrading?</title>
</head>
<body class="paper papertint">
<!-- START IGNORE -->
<p class="sectionheading">Upgrading?</p>
<p>Inform in 2015 includes several hundred bug fixes as compared with the 2014 releases. The language has only changed in minor ways, but the Inform app can now be used to make Extension projects as well as stories, and the old Skein and Transcript panels are merged into a new one called Testing. See the ebook &quot;Changes to Inform&quot;, which you can access from the Launcher.</p>
<body>
<p><span class="headingpaneltext">Upgrading?</span></p>
<p>If you haven't used Inform since before 2014, though, there are big changes. The Mac OS X application was considerably enhanced, for one thing, but the changes go deeper than that. Here are just the headlines: for the full story, see the ebook &quot;Changes to Inform&quot;, which you can access from the Launcher.</p>
<p>Between 2016 and 2022, Inform was rewritten from top to bottom, and prepared
for open-sourcing: that is, for being published as free software which anybody
can inspect, fix bugs in, or contribute to. The software changed enormously
as a result, seen from the inside, but for users it remains almost the same
(except for hundreds of bug fixes).</p>
<p>Firstly: the old &quot;Materials&quot; folder has been renamed &quot;.materials&quot;. So if your project is called &quot;Dream.inform&quot; then it's accompanied by &quot;Dream.materials&quot;, not &quot;Dream Materials&quot; as before.</p>
<p>There are exceptions to this, however, for users who mix their Inform source
text with low-level I6 code using "Include (- ... -)". Very few users do this
themselves, but it's more common to make use of extensions which do. Quite a
few popular extensions have needed to be rewritten for the version 10 Inform,
and you may therefore need to update your copies of them. The Public Library
in this app may be a good place to start.</p>
<p>Secondly: the language has much better handling of text, getting rid of &quot;indexed&quot; text entirely, and providing grammatical adaptation - the ability to turn &quot;You go out&quot; automatically into &quot;They went out&quot;, for example. There's also real number support with scientific functions (so you can perform physical calculations and have Inform check the dimensions, for example); there are named constants; there's a new ability for projects to have their own private Extensions; and so on.</p>
<p>Thirdly: a whole pile of phrases which have been deprecated since before 2010 have finally been removed from the language. If you're still using any of those, you'll need to reword - there's advice on this in the Changes book.</p>
<!-- END IGNORE -->
<p>The archive of release notes for Inform, detailing essentially every change
since 2006, can be found at <b>https://github.com/ganelson/inform</b>.<p>
<hr style="margin-top: 18px;">
</body>
</html>

View file

@ -2,16 +2,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="indoc_WI.css" rel="stylesheet" type="text/css" />
{include-css}
<title>Testing</title>
<script type='text/javascript'>
function showBlock(id) { if( document.getElementById(id) ) document.getElementById(id).style.display = 'block'; }
function hideBlock(id) { if( document.getElementById(id) ) document.getElementById(id).style.display = 'none'; }
function showBlock(id) \{ if( document.getElementById(id) ) document.getElementById(id).style.display = 'block'; \}
function hideBlock(id) \{ if( document.getElementById(id) ) document.getElementById(id).style.display = 'none'; \}
</script>
</head>
<body class="paper papertint" onLoad="test();">
<!-- START IGNORE -->
<body onLoad="test();">
<div id="welcome"><p>Welcome to the new Testing panel. This combines the old Skein and
Transcript panels. Like them, it records every play through the story. It helps with testing
because it compares the text this time with the &quot;blessed&quot; text on previous plays. The panel
@ -65,7 +63,6 @@ downwards, so later turns are below earlier ones.</p></div>
lets you save out the text from the currently selected thread of play. Play All
systematically plays through every variation in the diagram, restarting the story
as needed to do so, so that it tests every knot.</p></div>
<!-- END IGNORE -->
<hr style="margin-top: 18px;">
</body>
</html>

View file

@ -863,6 +863,22 @@ $(INTERNALEXEMPLUM): \
# the relation between the two, the indoc settings for the platform will need to
# agree with that.
{define: compile-inapp-advice}
ifdef ADVICEHTML
mkdir -p $(ADVICEHTML)
$(INBUILDX) -preprocess-html-to $(ADVICEHTML) -preprocess-html resources/Documentation/Advice/AdviceCredits.html
$(INBUILDX) -preprocess-html-to $(ADVICEHTML) -preprocess-html resources/Documentation/Advice/AdviceKeyboardShortcuts.html
$(INBUILDX) -preprocess-html-to $(ADVICEHTML) -preprocess-html resources/Documentation/Advice/AdviceMaterialsFolder.html
$(INBUILDX) -preprocess-html-to $(ADVICEHTML) -preprocess-html resources/Documentation/Advice/AdviceNewToInform.html
$(INBUILDX) -preprocess-html-to $(ADVICEHTML) -preprocess-html resources/Documentation/Advice/AdviceUpgrading.html
$(INBUILDX) -preprocess-html-to $(ADVICEHTML) -preprocess-html resources/Documentation/Advice/TestingTemplate.html
endif
{end-define}
.PHONY: forcetransferadvice
forcetransferadvice:
{compile-inapp-advice}
{define: compile-inapp-documentation}
mkdir -p $(BUILTINHTMLINNER)
$(INDOCX) -from resources/Documentation -xrefs '$(INFORM7WEB)/Internal/HTML/xrefs.txt' $(INDOCOPTS)
@ -872,10 +888,12 @@ $(INTERNALEXEMPLUM): \
transferdocumentation: $(BUILTINHTMLINNER)/index.html
$(BUILTINHTMLINNER)/index.html: resources/Documentation/*.txt resources/Documentation/Examples/*.txt
{compile-inapp-advice}
{compile-inapp-documentation}
.PHONY: forcetransferdocumentation
forcetransferdocumentation:
{compile-inapp-advice}
{compile-inapp-documentation}
# -----------------------------------------------------------------------------

View file

@ -1,15 +1,15 @@
Size of lexicon: 3102 excerpt meanings
Size of lexicon: 3109 excerpt meanings
Stored among 840 words out of total vocabulary of 10547
710 words have a start list: longest belongs to report (with 293 meanings)
15 words have an end list: longest belongs to case (with 6 meanings)
29 words have a middle list: longest belongs to to (with 4 meanings)
108 words have a subset list: longest belongs to street (with 4 meanings)
Number of attempts to retrieve: 106495
of which unsuccessful: 88844
Number of attempts to retrieve: 106506
of which unsuccessful: 88855
of which successful: 17651
Total attempts to match against excerpt meanings: 261329
of which, total with incorrect hash codes: 239257
Total attempts to match against excerpt meanings: 262902
of which, total with incorrect hash codes: 240830
of which, total with correct hash codes: 22072
of which, total which matched: 19333