1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-16 23:30:44 +03:00

Implemented -locale across all tools

This commit is contained in:
Graham Nelson 2020-07-05 11:01:27 +01:00
parent fe8e91e478
commit 267779bdbb
37 changed files with 2376 additions and 2265 deletions

View file

@ -1,6 +1,6 @@
# Inform 7
v10.1.0-alpha.1+6Q66 'Krypton' (4 July 2020)
v10.1.0-alpha.1+6Q67 'Krypton' (5 July 2020)
## About Inform 7

View file

@ -1,3 +1,3 @@
Prerelease: alpha.1
Build Date: 4 July 2020
Build Number: 6Q66
Build Date: 5 July 2020
Build Number: 6Q67

View file

@ -53,6 +53,7 @@
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../arch-module/1-am.html#SP3" class="function-link"><span class="function-syntax">ArchModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP14" class="function-link"><span class="function-syntax">CommandLine::declare_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"inexample: a tool for testing foundation facilities\n"</span><span class="plain-syntax">);</span>

View file

@ -62,6 +62,7 @@
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../words-module/1-wm.html#SP3" class="function-link"><span class="function-syntax">WordsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../building-module/1-bm.html#SP4" class="function-link"><span class="function-syntax">BuildingModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../bytecode-module/1-bm2.html#SP3" class="function-link"><span class="function-syntax">BytecodeModule::start</span></a><span class="plain-syntax">();</span>

View file

@ -104,6 +104,7 @@ file, for instance.
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">argv</span><span class="plain-syntax">[]) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="1-bsc.html#SP4" class="function-link"><span class="function-syntax">Basics::register_mreasons</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">blurb_filename</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/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">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Release.blurb"</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">blorb_filename</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/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">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"story.zblorb"</span><span class="plain-syntax">);</span>

View file

@ -108,6 +108,7 @@ on; then to carry out that work, and then shut down again.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">(); </span><span class="comment-syntax"> must be started first</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../words-module/1-wm.html#SP3" class="function-link"><span class="function-syntax">WordsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../syntax-module/1-sm.html#SP3" class="function-link"><span class="function-syntax">SyntaxModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../html-module/1-hm.html#SP2" class="function-link"><span class="function-syntax">HTMLModule::start</span></a><span class="plain-syntax">();</span>

View file

@ -57,8 +57,9 @@ definition we need to make is:
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">PROGRAM_NAME</span><span class="plain-syntax"> </span><span class="string-syntax">"indoc"</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Basics::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Basics::start</span></span>:<br/>Main - <a href="1-mn.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Basics::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Basics::start</span></span>:<br/>Main - <a href="1-mn.html#SP1">&#167;1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bsc.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Declare the debugging log aspects</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

View file

@ -55,7 +55,7 @@ chosen format, a process we'll call "rendering". We do this in two passes.
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_examples</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="1-bsc.html#SP1" class="function-link"><span class="function-syntax">Basics::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="1-bsc.html#SP1" class="function-link"><span class="function-syntax">Basics::start</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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Start up indoc</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Make a first-pass scan of the rawtext</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Render the rawtext as documentation</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>

View file

@ -58,6 +58,7 @@
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../words-module/1-wm.html#SP3" class="function-link"><span class="function-syntax">WordsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../inflections-module/1-im.html#SP3" class="function-link"><span class="function-syntax">InflectionsModule::start</span></a><span class="plain-syntax">();</span>

View file

@ -97,6 +97,7 @@ when they want I7 to run.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">(); </span><span class="comment-syntax"> must be started first</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../words-module/1-wm.html#SP3" class="function-link"><span class="function-syntax">WordsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../inflections-module/1-im.html#SP3" class="function-link"><span class="function-syntax">InflectionsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../syntax-module/1-sm.html#SP3" class="function-link"><span class="function-syntax">SyntaxModule::start</span></a><span class="plain-syntax">();</span>

View file

@ -77,32 +77,31 @@ 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"> 66.7% in compilation to Inter</span>
<span class="plain-syntax"> 26.3% in </span><a href="../core-module/22-cs.html#SP10" class="internal">Phrases::Manager::compile_first_block</a>
<span class="plain-syntax"> 8.7% in </span><a href="../core-module/22-cs.html#SP14" class="internal">Phrases::Manager::compile_as_needed</a>
<span class="plain-syntax"> 67.4% in compilation to Inter</span>
<span class="plain-syntax"> 27.5% in </span><a href="../core-module/22-cs.html#SP10" class="internal">Phrases::Manager::compile_first_block</a>
<span class="plain-syntax"> 8.5% in </span><a href="../core-module/22-cs.html#SP14" class="internal">Phrases::Manager::compile_as_needed</a>
<span class="plain-syntax"> 6.8% in </span><a href="../core-module/17-rs.html#SP7" class="internal">Strings::compile_responses</a>
<span class="plain-syntax"> 6.1% in </span><a href="../core-module/16-cmw2.html#SP2" class="internal">World::Compile::compile</a>
<span class="plain-syntax"> 3.2% in </span><a href="../core-module/9-tfa.html#SP7" class="internal">Assertions::Traverse::traverse1</a>
<span class="plain-syntax"> 2.8% in </span><a href="../core-module/7-ns.html#SP8" class="internal">Sentences::VPs::traverse</a>
<span class="plain-syntax"> 2.0% in </span><a href="../core-module/22-cs.html#SP13" class="internal">Phrases::Manager::RulePrintingRule_routine</a>
<span class="plain-syntax"> 1.9% in </span><a href="../core-module/22-cs.html#SP12" class="internal">Phrases::Manager::rulebooks_array</a>
<span class="plain-syntax"> 1.1% in </span><a href="../core-module/6-nv.html#SP18" class="internal">NewVerbs::ConjugateVerb</a>
<span class="plain-syntax"> 5.7% in </span><a href="../core-module/16-cmw2.html#SP2" class="internal">World::Compile::compile</a>
<span class="plain-syntax"> 3.1% in </span><a href="../core-module/9-tfa.html#SP7" class="internal">Assertions::Traverse::traverse1</a>
<span class="plain-syntax"> 2.9% in </span><a href="../core-module/7-ns.html#SP8" class="internal">Sentences::VPs::traverse</a>
<span class="plain-syntax"> 2.2% in </span><a href="../core-module/22-cs.html#SP13" class="internal">Phrases::Manager::RulePrintingRule_routine</a>
<span class="plain-syntax"> 1.8% in </span><a href="../core-module/22-cs.html#SP12" class="internal">Phrases::Manager::rulebooks_array</a>
<span class="plain-syntax"> 1.1% in </span><a href="../core-module/6-nv.html#SP20" class="internal">NewVerbs::ConjugateVerb</a>
<span class="plain-syntax"> 0.7% in </span><a href="../core-module/22-cs.html#SP7" class="internal">Phrases::Manager::parse_rule_parameters</a>
<span class="plain-syntax"> 0.7% in </span><a href="../core-module/22-cs.html#SP4" class="internal">Phrases::Manager::traverse</a>
<span class="plain-syntax"> 0.3% in </span><a href="../core-module/22-cs.html#SP12" class="internal">Phrases::Manager::compile_rulebooks</a>
<span class="plain-syntax"> 0.3% in </span><a href="../core-module/22-cs.html#SP7" class="internal">Phrases::Manager::parse_rule_parameters</a>
<span class="plain-syntax"> 0.3% in </span><a href="../core-module/22-cs.html#SP2" class="internal">Phrases::Manager::traverse_for_names</a>
<span class="plain-syntax"> 0.3% in </span><a href="../core-module/6-rlt.html#SP29" class="internal">Relations::compile_defined_relations</a>
<span class="plain-syntax"> 0.1% in </span><a href="../core-module/9-tfa.html#SP7" class="internal">Assertions::Traverse::traverse2</a>
<span class="plain-syntax"> 0.1% in </span><a href="../core-module/6-bp.html#SP46" class="internal">BinaryPredicates::make_built_in_further</a>
<span class="plain-syntax"> 0.1% in </span><a href="../if-module/5-gv.html#SP26" class="internal">PL::Parsing::Verbs::compile_all</a>
<span class="plain-syntax"> 0.1% in </span><a href="../core-module/7-rs.html#SP3" class="internal">Sentences::RuleSubtrees::register_recently_lexed_phrases</a>
<span class="plain-syntax"> 0.1% in </span><a href="../core-module/1-wtc.html#SP8" class="internal">Task::load_types</a>
<span class="plain-syntax"> 0.1% in </span><a href="../core-module/16-cmw.html#SP1" class="internal">World::complete</a>
<span class="plain-syntax"> 4.0% not specifically accounted for</span>
<span class="plain-syntax"> 30.9% in running Inter pipeline</span>
<span class="plain-syntax"> 10.3% in step preparation</span>
<span class="plain-syntax"> 9.9% in inter step 2/12: link</span>
<span class="plain-syntax"> 7.2% in inter step 12/12: generate inform6 -&gt; auto.inf</span>
<span class="plain-syntax"> 3.9% not specifically accounted for</span>
<span class="plain-syntax"> 30.1% in running Inter pipeline</span>
<span class="plain-syntax"> 9.8% in step preparation</span>
<span class="plain-syntax"> 9.6% in inter step 2/12: link</span>
<span class="plain-syntax"> 7.0% in inter step 12/12: generate inform6 -&gt; auto.inf</span>
<span class="plain-syntax"> 0.3% in inter step 9/12: make-identifiers-unique</span>
<span class="plain-syntax"> 0.1% in inter step 10/12: reconcile-verbs</span>
<span class="plain-syntax"> 0.1% in inter step 11/12: eliminate-redundant-labels</span>
@ -110,9 +109,9 @@ which take more than 1/1000th of the total running time.
<span class="plain-syntax"> 0.1% in inter step 6/12: assimilate</span>
<span class="plain-syntax"> 0.1% in inter step 7/12: resolve-external-symbols</span>
<span class="plain-syntax"> 0.1% in inter step 8/12: inspect-plugs</span>
<span class="plain-syntax"> 1.9% not specifically accounted for</span>
<span class="plain-syntax"> 2.1% not specifically accounted for</span>
<span class="plain-syntax"> 2.0% in supervisor</span>
<span class="plain-syntax"> 0.2% not specifically accounted for</span>
<span class="plain-syntax"> 0.4% not specifically accounted for</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3"></a><b>&#167;3. Memory consumption. </b>The following gives some idea of which classes of object have the most
instances, and also of how Inform's memory tends to be used in practice.
@ -121,89 +120,91 @@ 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 256347K = 250 MB</span>
<span class="plain-syntax">Total memory consumption was 256243K = 250 MB</span>
<span class="plain-syntax">62.4% was used for 1335177 objects, in 267912 frames in 200 x 800K = 160000K = 156 MB:</span>
<span class="plain-syntax">62.4% was used for 1347149 objects, in 270289 frames in 200 x 800K = 160000K = 156 MB:</span>
<span class="plain-syntax"> 9.8% inter_tree_node_array 36 x 8192 = 294912 objects, 25953408 bytes</span>
<span class="plain-syntax"> 5.5% text_stream_array 2587 x 100 = 258700 objects, 14569984 bytes</span>
<span class="plain-syntax"> 3.9% parse_node 130338 objects, 10427040 bytes</span>
<span class="plain-syntax"> 5.5% text_stream_array 2569 x 100 = 256900 objects, 14468608 bytes</span>
<span class="plain-syntax"> 3.9% parse_node 130221 objects, 10417680 bytes</span>
<span class="plain-syntax"> 2.8% parse_node_annotation_array 470 x 500 = 235000 objects, 7535040 bytes</span>
<span class="plain-syntax"> 2.8% verb_conjugation 160 objects, 7425280 bytes</span>
<span class="plain-syntax"> 2.7% parse_node_annotation_array 445 x 500 = 222500 objects, 7134240 bytes</span>
<span class="plain-syntax"> 2.4% inter_symbol_array 70 x 1024 = 71680 objects, 6310080 bytes</span>
<span class="plain-syntax"> 1.9% linked_list 9033 objects, 5058480 bytes</span>
<span class="plain-syntax"> 1.4% map_data 778 objects, 3690832 bytes</span>
<span class="plain-syntax"> 1.3% pcalc_prop_array 24 x 1000 = 24000 objects, 3456768 bytes</span>
<span class="plain-syntax"> 1.9% linked_list 8915 objects, 4992400 bytes</span>
<span class="plain-syntax"> 1.3% pcalc_prop_array 24 x 1000 = 24000 objects, 3648768 bytes</span>
<span class="plain-syntax"> 1.1% map_data 660 objects, 3131040 bytes</span>
<span class="plain-syntax"> 0.9% kind_array 65 x 1000 = 65000 objects, 2602080 bytes</span>
<span class="plain-syntax"> 0.7% inter_schema_token 14554 objects, 2095776 bytes</span>
<span class="plain-syntax"> 0.7% inter_schema_token 13492 objects, 1942848 bytes</span>
<span class="plain-syntax"> 0.6% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes</span>
<span class="plain-syntax"> 0.5% match_trie_array 10 x 1000 = 10000 objects, 1360320 bytes</span>
<span class="plain-syntax"> 0.4% phrase 940 objects, 1233280 bytes</span>
<span class="plain-syntax"> 0.3% adjective_meaning 202 objects, 1001920 bytes</span>
<span class="plain-syntax"> 0.3% excerpt_meaning 3161 objects, 986232 bytes</span>
<span class="plain-syntax"> 0.3% excerpt_meaning 3102 objects, 967824 bytes</span>
<span class="plain-syntax"> 0.3% inter_name_array 20 x 1000 = 20000 objects, 960640 bytes</span>
<span class="plain-syntax"> 0.3% inter_package 13201 objects, 950472 bytes</span>
<span class="plain-syntax"> 0.3% inter_schema_node 9518 objects, 913728 bytes</span>
<span class="plain-syntax"> 0.3% production 3895 objects, 903640 bytes</span>
<span class="plain-syntax"> 0.3% ptoken 8318 objects, 865072 bytes</span>
<span class="plain-syntax"> 0.3% production 3921 objects, 909672 bytes</span>
<span class="plain-syntax"> 0.3% ptoken 8339 objects, 867256 bytes</span>
<span class="plain-syntax"> 0.3% individual_form 2564 objects, 861504 bytes</span>
<span class="plain-syntax"> 0.3% inter_symbols_table 13201 objects, 844864 bytes</span>
<span class="plain-syntax"> 0.3% inter_schema_node 8692 objects, 834432 bytes</span>
<span class="plain-syntax"> 0.2% dictionary 16345 objects, 784560 bytes</span>
<span class="plain-syntax"> 0.2% dict_entry_array 236 x 100 = 23600 objects, 762752 bytes</span>
<span class="plain-syntax"> 0.2% package_request 7928 objects, 697664 bytes</span>
<span class="plain-syntax"> 0.2% individual_name 2623 objects, 692472 bytes</span>
<span class="plain-syntax"> 0.2% inter_name_generator_array 16 x 1000 = 16000 objects, 640512 bytes</span>
<span class="plain-syntax"> 0.2% verb_usage 1628 objects, 573056 bytes</span>
<span class="plain-syntax"> 0.1% inference_subject 781 objects, 512336 bytes</span>
<span class="plain-syntax"> 0.2% noun_usage 2405 objects, 577200 bytes</span>
<span class="plain-syntax"> 0.2% verb_usage 1628 objects, 560032 bytes</span>
<span class="plain-syntax"> 0.1% local_variable_array 45 x 100 = 4500 objects, 505440 bytes</span>
<span class="plain-syntax"> 0.1% inference_subject 663 objects, 434928 bytes</span>
<span class="plain-syntax"> 0.1% rule 469 objects, 363944 bytes</span>
<span class="plain-syntax"> 0.1% i6_schema_array 6 x 100 = 600 objects, 360192 bytes</span>
<span class="plain-syntax"> 0.1% verb_form 386 objects, 339680 bytes</span>
<span class="plain-syntax"> 0.1% noun 2440 objects, 312320 bytes</span>
<span class="plain-syntax"> 0.1% verb_form 386 objects, 342768 bytes</span>
<span class="plain-syntax"> 0.1% i6_schema_array 5 x 100 = 500 objects, 300160 bytes</span>
<span class="plain-syntax"> 0.1% scan_directory 70 objects, 288960 bytes</span>
<span class="plain-syntax"> 0.1% binary_predicate 439 objects, 270424 bytes</span>
<span class="plain-syntax"> 0.1% noun 2381 objects, 285720 bytes</span>
<span class="plain-syntax"> ---- action_name_list_array 3 x 1000 = 3000 objects, 240096 bytes</span>
<span class="plain-syntax"> ---- binary_predicate 321 objects, 197736 bytes</span>
<span class="plain-syntax"> ---- inter_annotation_array 1 x 8192 objects, 196640 bytes</span>
<span class="plain-syntax"> ---- inference 1703 objects, 177112 bytes</span>
<span class="plain-syntax"> ---- linked_list_item_array 11 x 1000 = 11000 objects, 176352 bytes</span>
<span class="plain-syntax"> ---- linked_list_item_array 10 x 1000 = 10000 objects, 160320 bytes</span>
<span class="plain-syntax"> ---- linguistic_stock_item 3312 objects, 158976 bytes</span>
<span class="plain-syntax"> ---- stacked_variable_owner_list_array 38 x 100 = 3800 objects, 153216 bytes</span>
<span class="plain-syntax"> ---- action_pattern_array 6 x 100 = 600 objects, 144192 bytes</span>
<span class="plain-syntax"> ---- lexicon_entry 395 objects, 142200 bytes</span>
<span class="plain-syntax"> ---- nonterminal 743 objects, 136712 bytes</span>
<span class="plain-syntax"> ---- adjective_usage_array 8 x 1000 = 8000 objects, 128256 bytes</span>
<span class="plain-syntax"> ---- index_lexicon_entry 395 objects, 142200 bytes</span>
<span class="plain-syntax"> ---- nonterminal 752 objects, 138368 bytes</span>
<span class="plain-syntax"> ---- documentation_ref 1275 objects, 112200 bytes</span>
<span class="plain-syntax"> ---- hierarchy_location 731 objects, 105264 bytes</span>
<span class="plain-syntax"> ---- preposition_identity 273 objects, 82992 bytes</span>
<span class="plain-syntax"> ---- name_cluster 2577 objects, 82464 bytes</span>
<span class="plain-syntax"> ---- preposition 273 objects, 87360 bytes</span>
<span class="plain-syntax"> ---- lexical_cluster 2518 objects, 80576 bytes</span>
<span class="plain-syntax"> ---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes</span>
<span class="plain-syntax"> ---- kind_variable_declaration 1652 objects, 79296 bytes</span>
<span class="plain-syntax"> ---- inter_tree 6 objects, 78672 bytes</span>
<span class="plain-syntax"> ---- inter_schema 1627 objects, 78096 bytes</span>
<span class="plain-syntax"> ---- spatial_data 782 objects, 75072 bytes</span>
<span class="plain-syntax"> ---- inter_schema 1509 objects, 72432 bytes</span>
<span class="plain-syntax"> ---- rulebook 407 objects, 71632 bytes</span>
<span class="plain-syntax"> ---- kind_macro_definition 10 objects, 64400 bytes</span>
<span class="plain-syntax"> ---- spatial_data 664 objects, 63744 bytes</span>
<span class="plain-syntax"> ---- booking 860 objects, 61920 bytes</span>
<span class="plain-syntax"> ---- grammar_verb 130 objects, 57200 bytes</span>
<span class="plain-syntax"> ---- property_permission 96 objects, 56832 bytes</span>
<span class="plain-syntax"> ---- pcalc_func_array 1 x 1000 objects, 56032 bytes</span>
<span class="plain-syntax"> ---- ph_stack_frame_box 577 objects, 55392 bytes</span>
<span class="plain-syntax"> ---- kind_constructor 75 objects, 54600 bytes</span>
<span class="plain-syntax"> ---- kind_constructor 75 objects, 55200 bytes</span>
<span class="plain-syntax"> ---- text_substitution 436 objects, 48832 bytes</span>
<span class="plain-syntax"> ---- grammar_line 230 objects, 46000 bytes</span>
<span class="plain-syntax"> ---- table 7 objects, 45528 bytes</span>
<span class="plain-syntax"> ---- inter_node_list 750 objects, 42000 bytes</span>
<span class="plain-syntax"> ---- activity_list_array 1 x 1000 objects, 40032 bytes</span>
<span class="plain-syntax"> ---- regions_data 778 objects, 37344 bytes</span>
<span class="plain-syntax"> ---- response_message 407 objects, 35816 bytes</span>
<span class="plain-syntax"> ---- production_list 618 objects, 34608 bytes</span>
<span class="plain-syntax"> ---- production_list 627 objects, 35112 bytes</span>
<span class="plain-syntax"> ---- unary_predicate_array 8 x 1000 = 8000 objects, 32192 bytes</span>
<span class="plain-syntax"> ---- HTML_tag_array 1 x 1000 objects, 32032 bytes</span>
<span class="plain-syntax"> ---- regions_data 660 objects, 31680 bytes</span>
<span class="plain-syntax"> ---- property 146 objects, 31536 bytes</span>
<span class="plain-syntax"> ---- counting_data 782 objects, 31280 bytes</span>
<span class="plain-syntax"> ---- verb_sense 403 objects, 29016 bytes</span>
<span class="plain-syntax"> ---- stacked_variable_owner_array 6 x 100 = 600 objects, 28992 bytes</span>
<span class="plain-syntax"> ---- heading 198 objects, 28512 bytes</span>
<span class="plain-syntax"> ---- parsing_data 782 objects, 25024 bytes</span>
<span class="plain-syntax"> ---- counting_data 664 objects, 26560 bytes</span>
<span class="plain-syntax"> ---- instance 167 objects, 22712 bytes</span>
<span class="plain-syntax"> ---- ap_optional_clause_array 1 x 400 objects, 22432 bytes</span>
<span class="plain-syntax"> ---- parsing_data 664 objects, 21248 bytes</span>
<span class="plain-syntax"> ---- pcalc_prop_deferral 90 objects, 19440 bytes</span>
<span class="plain-syntax"> ---- nonlocal_variable 93 objects, 19344 bytes</span>
<span class="plain-syntax"> ---- action_name 90 objects, 18720 bytes</span>
@ -216,17 +217,16 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- stopwatch_timer 156 objects, 12480 bytes</span>
<span class="plain-syntax"> ---- understanding_reference_array 2 x 100 = 200 objects, 11264 bytes</span>
<span class="plain-syntax"> ---- pathname 265 objects, 10600 bytes</span>
<span class="plain-syntax"> ---- adjective 137 objects, 9864 bytes</span>
<span class="plain-syntax"> ---- method 177 objects, 8496 bytes</span>
<span class="plain-syntax"> ---- filename 206 objects, 8240 bytes</span>
<span class="plain-syntax"> ---- method 169 objects, 8112 bytes</span>
<span class="plain-syntax"> ---- adjectival_phrase 137 objects, 7672 bytes</span>
<span class="plain-syntax"> ---- equation_node 68 objects, 7616 bytes</span>
<span class="plain-syntax"> ---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes</span>
<span class="plain-syntax"> ---- determiner 22 objects, 7040 bytes</span>
<span class="plain-syntax"> ---- determiner 22 objects, 7216 bytes</span>
<span class="plain-syntax"> ---- stacked_variable_array 1 x 100 objects, 6432 bytes</span>
<span class="plain-syntax"> ---- uniqueness_count 260 objects, 6240 bytes</span>
<span class="plain-syntax"> ---- verb 108 objects, 6048 bytes</span>
<span class="plain-syntax"> ---- text_literal_holder 145 objects, 5800 bytes</span>
<span class="plain-syntax"> ---- adjective_meaning_block 137 objects, 5480 bytes</span>
<span class="plain-syntax"> ---- verb_identity 108 objects, 5184 bytes</span>
<span class="plain-syntax"> ---- inbuild_work 78 objects, 4992 bytes</span>
<span class="plain-syntax"> ---- kind_constructor_instance_array 2 x 100 = 200 objects, 4864 bytes</span>
<span class="plain-syntax"> ---- heading_tree 20 objects, 4640 bytes</span>
@ -238,9 +238,9 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- activity 35 objects, 3920 bytes</span>
<span class="plain-syntax"> ---- inbuild_edition 54 objects, 3888 bytes</span>
<span class="plain-syntax"> ---- inbuild_copy 35 objects, 3640 bytes</span>
<span class="plain-syntax"> ---- command_line_switch 41 objects, 3280 bytes</span>
<span class="plain-syntax"> ---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes</span>
<span class="plain-syntax"> ---- command_line_switch 42 objects, 3360 bytes</span>
<span class="plain-syntax"> ---- instance_usage_array 1 x 200 objects, 3232 bytes</span>
<span class="plain-syntax"> ---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes</span>
<span class="plain-syntax"> ---- definition 44 objects, 3168 bytes</span>
<span class="plain-syntax"> ---- compatibility_specification 66 objects, 3168 bytes</span>
<span class="plain-syntax"> ---- inform_extension 19 objects, 3040 bytes</span>
@ -250,22 +250,22 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes</span>
<span class="plain-syntax"> ---- equation_symbol 30 objects, 2400 bytes</span>
<span class="plain-syntax"> ---- semver_range 22 objects, 2288 bytes</span>
<span class="plain-syntax"> ---- table_contribution_array 1 x 100 objects, 1632 bytes</span>
<span class="plain-syntax"> ---- method_set 56 objects, 1792 bytes</span>
<span class="plain-syntax"> ---- plugin_call_array 1 x 100 objects, 1632 bytes</span>
<span class="plain-syntax"> ---- activity_crossref_array 1 x 100 objects, 1632 bytes</span>
<span class="plain-syntax"> ---- table_contribution_array 1 x 100 objects, 1632 bytes</span>
<span class="plain-syntax"> ---- use_option 29 objects, 1624 bytes</span>
<span class="plain-syntax"> ---- kind_interaction 39 objects, 1560 bytes</span>
<span class="plain-syntax"> ---- method_set 48 objects, 1536 bytes</span>
<span class="plain-syntax"> ---- inter_annotation_form 37 objects, 1480 bytes</span>
<span class="plain-syntax"> ---- pipeline_step 12 objects, 1440 bytes</span>
<span class="plain-syntax"> ---- noun_filter_token 22 objects, 1408 bytes</span>
<span class="plain-syntax"> ---- scene 1 object, 1344 bytes</span>
<span class="plain-syntax"> ---- special_meaning_holder 33 objects, 1320 bytes</span>
<span class="plain-syntax"> ---- build_script 40 objects, 1280 bytes</span>
<span class="plain-syntax"> ---- constant_phrase 20 objects, 1280 bytes</span>
<span class="plain-syntax"> ---- build_script 40 objects, 1280 bytes</span>
<span class="plain-syntax"> ---- invocation_options_array 1 x 100 objects, 1224 bytes</span>
<span class="plain-syntax"> ---- hierarchy_metadatum 15 objects, 1200 bytes</span>
<span class="plain-syntax"> ---- quantifier 16 objects, 1152 bytes</span>
<span class="plain-syntax"> ---- quantifier 16 objects, 1024 bytes</span>
<span class="plain-syntax"> ---- table_column 16 objects, 896 bytes</span>
<span class="plain-syntax"> ---- inbuild_requirement 22 objects, 880 bytes</span>
<span class="plain-syntax"> ---- code_generation 1 object, 864 bytes</span>
@ -285,53 +285,57 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- I6T_intervention 8 objects, 640 bytes</span>
<span class="plain-syntax"> ---- relation_guard 5 objects, 640 bytes</span>
<span class="plain-syntax"> ---- nascent_array 7 objects, 616 bytes</span>
<span class="plain-syntax"> ---- inbuild_search_result 15 objects, 600 bytes</span>
<span class="plain-syntax"> ---- named_rulebook_outcome 15 objects, 600 bytes</span>
<span class="plain-syntax"> ---- inbuild_search_result 15 objects, 600 bytes</span>
<span class="plain-syntax"> ---- label_namespace 10 objects, 560 bytes</span>
<span class="plain-syntax"> ---- inform_kit 5 objects, 520 bytes</span>
<span class="plain-syntax"> ---- equation 4 objects, 416 bytes</span>
<span class="plain-syntax"> ---- i6_memory_setting 13 objects, 416 bytes</span>
<span class="plain-syntax"> ---- module_package 10 objects, 400 bytes</span>
<span class="plain-syntax"> ---- dval_written 10 objects, 400 bytes</span>
<span class="plain-syntax"> ---- module_package 10 objects, 400 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"> ---- door_dir_notice 5 objects, 320 bytes</span>
<span class="plain-syntax"> ---- grammatical_category 8 objects, 320 bytes</span>
<span class="plain-syntax"> ---- build_step 4 objects, 288 bytes</span>
<span class="plain-syntax"> ---- door_to_notice 5 objects, 280 bytes</span>
<span class="plain-syntax"> ---- inform_pipeline 4 objects, 256 bytes</span>
<span class="plain-syntax"> ---- verb_usage_tier 5 objects, 240 bytes</span>
<span class="plain-syntax"> ---- test_scenario 1 object, 208 bytes</span>
<span class="plain-syntax"> ---- build_skill 5 objects, 200 bytes</span>
<span class="plain-syntax"> ---- compilation_module 5 objects, 200 bytes</span>
<span class="plain-syntax"> ---- kit_dependency 4 objects, 192 bytes</span>
<span class="plain-syntax"> ---- build_skill 5 objects, 200 bytes</span>
<span class="plain-syntax"> ---- plural_dictionary_entry 4 objects, 192 bytes</span>
<span class="plain-syntax"> ---- kit_dependency 4 objects, 192 bytes</span>
<span class="plain-syntax"> ---- inform_project 1 object, 176 bytes</span>
<span class="plain-syntax"> ---- kind_template_obligation 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- link_instruction 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- inter_architecture 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- pointer_allocation 2 objects, 160 bytes</span>
<span class="plain-syntax"> ---- code_generation_target 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- codegen_pipeline 1 object, 128 bytes</span>
<span class="plain-syntax"> ---- inter_architecture 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- kind_template_obligation 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- link_instruction 4 objects, 160 bytes</span>
<span class="plain-syntax"> ---- element_activation 4 objects, 128 bytes</span>
<span class="plain-syntax"> ---- codegen_pipeline 1 object, 128 bytes</span>
<span class="plain-syntax"> ---- inbuild_nest 3 objects, 120 bytes</span>
<span class="plain-syntax"> ---- pronoun 3 objects, 120 bytes</span>
<span class="plain-syntax"> ---- inform_kit_ittt 2 objects, 96 bytes</span>
<span class="plain-syntax"> ---- compile_task_data 1 object, 80 bytes</span>
<span class="plain-syntax"> ---- list_together_routine 2 objects, 80 bytes</span>
<span class="plain-syntax"> ---- article 2 objects, 80 bytes</span>
<span class="plain-syntax"> ---- compile_task_data 1 object, 80 bytes</span>
<span class="plain-syntax"> ---- inter_warehouse 1 object, 56 bytes</span>
<span class="plain-syntax"> ---- build_methodology 1 object, 56 bytes</span>
<span class="plain-syntax"> ---- HTML_file_state 1 object, 48 bytes</span>
<span class="plain-syntax"> ---- blorb_figure 1 object, 48 bytes</span>
<span class="plain-syntax"> ---- loop_over_scope 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- HTML_file_state 1 object, 48 bytes</span>
<span class="plain-syntax"> ---- kind_template_definition 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- parse_name_notice 1 object, 40 bytes</span>
<span class="plain-syntax"> ---- loop_over_scope 1 object, 40 bytes</span>
<span class="plain-syntax">37.5% was used for memory not allocated for objects:</span>
<span class="plain-syntax"> 16.0% text stream storage 42037484 bytes in 265078 claims</span>
<span class="plain-syntax"> 15.9% text stream storage 41849780 bytes in 263291 claims</span>
<span class="plain-syntax"> 3.5% dictionary storage 9265152 bytes in 16345 claims</span>
<span class="plain-syntax"> ---- sorting 1112 bytes in 3 claims</span>
<span class="plain-syntax"> 2.7% source text 7200000 bytes in 3 claims</span>
<span class="plain-syntax"> 4.1% source text details 10800000 bytes in 2 claims</span>
<span class="plain-syntax"> ---- linguistic stock array 81920 bytes in 2 claims</span>
<span class="plain-syntax"> 0.8% inter symbols storage 2276992 bytes in 13911 claims</span>
<span class="plain-syntax"> 6.4% inter bytecode storage 16802820 bytes in 14 claims</span>
<span class="plain-syntax"> 3.3% inter links storage 8750208 bytes in 246 claims</span>
@ -342,7 +346,7 @@ represent less than 1/1000th of the total.
<span class="plain-syntax"> ---- emitter array storage 14368 bytes in 8 claims</span>
<span class="plain-syntax"> ---- code generation workspace for objects 9200 bytes in 9 claims</span>
<span class="plain-syntax">19.9% was overhead - 52468856 bytes = 51239K = 50 MB</span>
<span class="plain-syntax">19.9% was overhead - 52335680 bytes = 51109K = 49 MB</span>
</pre>
<p class="commentary firstcommentary"><a id="SP4"></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
@ -351,14 +355,14 @@ sample, showing the nonterminal used to parse literals in Inform 7 source text:
</p>
<pre class="undisplayed-code all-displayed-code code-font">
<span class="plain-syntax">&lt;s-literal&gt; hits 2097/23834 nti 23 constraint (none) extremes [1, infinity)</span>
<span class="plain-syntax">&lt;s-literal&gt; hits 2097/23834 nti 27 constraint (none) extremes [1, infinity)</span>
<span class="plain-syntax"> English:</span>
<span class="plain-syntax"> (@1)&lt;cardinal-number&gt;=1 </span>
<span class="plain-syntax"> (hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]</span>
<span class="plain-syntax"> (@1)minus (@2)&lt;cardinal-number&gt;=1 </span>
<span class="plain-syntax"> (hits 0/1481) constraint DS = {23} extremes [2, 2]</span>
<span class="plain-syntax"> (hits 0/1395) constraint DS = {27} extremes [2, 2]</span>
<span class="plain-syntax"> (@1)&lt;quoted-text&gt;=1 (@2)( (@3)&lt;response-letter&gt;=2 (@4)) </span>
<span class="plain-syntax"> (hits 273/728) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {23} extremes [4, 4]</span>
<span class="plain-syntax"> (hits 273/802) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {27} extremes [4, 4]</span>
<span class="plain-syntax"> (@1)&lt;quoted-text&gt;=1 </span>
<span class="plain-syntax"> (hits 1564/5548) (matched: 'Represents geographical locations, both indoor</span>
<span class="plain-syntax"> and outdoor, which are not necessarily areas in a building. A player in one</span>
@ -367,13 +371,13 @@ sample, showing the nonterminal used to parse literals in Inform 7 source text:
<span class="plain-syntax"> &lt;s-literal-real-number&gt;=1 </span>
<span class="plain-syntax"> (hits 11/9909) (matched: 'plus infinity') constraint (none) extremes [1, infinity)</span>
<span class="plain-syntax"> (@1)&lt;s-literal-truth-state&gt;=1 </span>
<span class="plain-syntax"> (hits 78/231) (matched: 'false') constraint CS = {17} extremes [1, 1]</span>
<span class="plain-syntax"> (hits 78/228) (matched: 'false') constraint CS = {21} extremes [1, 1]</span>
<span class="plain-syntax"> &lt;s-literal-list&gt;=1 </span>
<span class="plain-syntax"> (hits 0/3241) constraint DS = {19} extremes [2, infinity)</span>
<span class="plain-syntax"> (hits 0/3681) constraint DS = {23} extremes [2, infinity)</span>
<span class="plain-syntax"> (@1)unicode &lt;s-unicode-character&gt;=1 </span>
<span class="plain-syntax"> (hits 0/3299) constraint DS = {23} extremes [2, infinity)</span>
<span class="plain-syntax"> (hits 0/3352) constraint DS = {27} extremes [2, infinity)</span>
<span class="plain-syntax"> &lt;s-literal-time&gt;=1 </span>
<span class="plain-syntax"> (hits 0/3457) constraint DW = {20, 21, 22} extremes [2, 5]</span>
<span class="plain-syntax"> (hits 0/3474) constraint DW = {24, 25, 26} extremes [2, 5]</span>
<span class="plain-syntax"> &lt;s-literal-unit-notation&gt;=1 </span>
<span class="plain-syntax"> (hits 0/9820) constraint (none) extremes [1, infinity)</span>
</pre>
@ -385,7 +389,7 @@ sample, showing the nonterminal used to parse literals in Inform 7 source text:
<a href="../../inform7/Downloads/preform-diagnostics.txt" download>
<button class="download-button">
<img src="../docs-assets/download.png" alt="download icon" height=16 width=16>
Download <b>preform-diagnostics.txt</b> (Preform diagnostics file, 394.1kB)
Download <b>preform-diagnostics.txt</b> (Preform diagnostics file, 397.3kB)
</button>
</a>
</p>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -63,6 +63,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP14" class="function-link"><span class="function-syntax">CommandLine::declare_heading</span></a><span class="plain-syntax">(</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"[[Purpose]]\n\n"</span>

View file

@ -62,6 +62,7 @@ function togglePopup(material_id) {
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Read the command line</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">from_folder</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">to_folder</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>

View file

@ -123,6 +123,7 @@ also done with a pipeline.
<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">(); </span><span class="comment-syntax"> must be started first</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../arch-module/1-am.html#SP3" class="function-link"><span class="function-syntax">ArchModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../bytecode-module/1-bm.html#SP3" class="function-link"><span class="function-syntax">BytecodeModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../building-module/1-bm2.html#SP4" class="function-link"><span class="function-syntax">BuildingModule::start</span></a><span class="plain-syntax">();</span>

View file

@ -55,6 +55,7 @@
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../words-module/1-wm.html#SP3" class="function-link"><span class="function-syntax">WordsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../inflections-module/1-im.html#SP3" class="function-link"><span class="function-syntax">InflectionsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../syntax-module/1-sm.html#SP3" class="function-link"><span class="function-syntax">SyntaxModule::start</span></a><span class="plain-syntax">();</span>

View file

@ -53,6 +53,7 @@
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../words-module/1-wm.html#SP3" class="function-link"><span class="function-syntax">WordsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../syntax-module/1-sm.html#SP3" class="function-link"><span class="function-syntax">SyntaxModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../problems-module/1-pm.html#SP3" class="function-link"><span class="function-syntax">ProblemsModule::start</span></a><span class="plain-syntax">();</span>

View file

@ -53,6 +53,7 @@
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../words-module/1-wm.html#SP3" class="function-link"><span class="function-syntax">WordsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../syntax-module/1-sm.html#SP3" class="function-link"><span class="function-syntax">SyntaxModule::start</span></a><span class="plain-syntax">();</span>

View file

@ -54,6 +54,7 @@
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">main</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> **</span><span class="identifier-syntax">argv</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/1-fm.html#SP8" class="function-link"><span class="function-syntax">Foundation::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::set_locale</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="plain-syntax"> </span><a href="../words-module/1-wm.html#SP3" class="function-link"><span class="function-syntax">WordsModule::start</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-cla.html#SP14" class="function-link"><span class="function-syntax">CommandLine::declare_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"inexample: a tool for testing foundation facilities\n"</span><span class="plain-syntax">);</span>

View file

@ -55,6 +55,7 @@ filename *blorb_filename = NULL;
int main(int argc, char *argv[]) {
Foundation::start();
CommandLine::set_locale(argc, argv);
Basics::register_mreasons();
blurb_filename = Filenames::in(NULL, I"Release.blurb");
blorb_filename = Filenames::in(NULL, I"story.zblorb");

View file

@ -39,6 +39,7 @@ int main(int argc, char **argv) {
@<Start up the modules@> =
Foundation::start(); /* must be started first */
CommandLine::set_locale(argc, argv);
WordsModule::start();
SyntaxModule::start();
HTMLModule::start();

View file

@ -9,8 +9,9 @@ definition we need to make is:
@d PROGRAM_NAME "indoc"
=
void Basics::start(void) {
void Basics::start(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
@<Declare the debugging log aspects@>;
}

View file

@ -15,7 +15,7 @@ int no_volumes = 0;
int no_examples = 0;
int main(int argc, char **argv) {
Basics::start();
Basics::start(argc, argv);
@<Start up indoc@>;
@<Make a first-pass scan of the rawtext@>;
@<Render the rawtext as documentation@>;

View file

@ -35,6 +35,7 @@ int Main::deputy(int argc, char *argv[]) {
@<Start up the modules@> =
Foundation::start(); /* must be started first */
CommandLine::set_locale(argc, argv);
WordsModule::start();
InflectionsModule::start();
SyntaxModule::start();

View file

@ -1,6 +1,6 @@
Total memory consumption was 256243K = 250 MB
62.4% was used for 1347148 objects, in 270288 frames in 200 x 800K = 160000K = 156 MB:
62.4% was used for 1347149 objects, in 270289 frames in 200 x 800K = 160000K = 156 MB:
9.8% inter_tree_node_array 36 x 8192 = 294912 objects, 25953408 bytes
5.5% text_stream_array 2569 x 100 = 256900 objects, 14468608 bytes
@ -116,7 +116,7 @@ Total memory consumption was 256243K = 250 MB
---- activity 35 objects, 3920 bytes
---- inbuild_edition 54 objects, 3888 bytes
---- inbuild_copy 35 objects, 3640 bytes
---- command_line_switch 41 objects, 3280 bytes
---- command_line_switch 42 objects, 3360 bytes
---- instance_usage_array 1 x 200 objects, 3232 bytes
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
---- definition 44 objects, 3168 bytes
@ -208,7 +208,7 @@ Total memory consumption was 256243K = 250 MB
37.5% was used for memory not allocated for objects:
15.9% text stream storage 41849192 bytes in 263287 claims
15.9% text stream storage 41849780 bytes in 263291 claims
3.5% dictionary storage 9265152 bytes in 16345 claims
---- sorting 1112 bytes in 3 claims
2.7% source text 7200000 bytes in 3 claims
@ -224,5 +224,5 @@ Total memory consumption was 256243K = 250 MB
---- emitter array storage 14368 bytes in 8 claims
---- code generation workspace for objects 9200 bytes in 9 claims
19.9% was overhead - 52335760 bytes = 51109K = 49 MB
19.9% was overhead - 52335680 bytes = 51109K = 49 MB

View file

@ -1,14 +1,14 @@
100.0% in inform7 run
67.8% in compilation to Inter
29.0% in //Phrases::Manager::compile_first_block//
8.1% in //Phrases::Manager::compile_as_needed//
6.7% in //Strings::compile_responses//
5.6% in //World::Compile::compile//
3.0% in //Assertions::Traverse::traverse1//
67.4% in compilation to Inter
27.5% in //Phrases::Manager::compile_first_block//
8.5% in //Phrases::Manager::compile_as_needed//
6.8% in //Strings::compile_responses//
5.7% in //World::Compile::compile//
3.1% in //Assertions::Traverse::traverse1//
2.9% in //Sentences::VPs::traverse//
1.9% in //Phrases::Manager::RulePrintingRule_routine//
1.9% in //Phrases::Manager::rulebooks_array//
1.0% in //NewVerbs::ConjugateVerb//
2.2% in //Phrases::Manager::RulePrintingRule_routine//
1.8% in //Phrases::Manager::rulebooks_array//
1.1% in //NewVerbs::ConjugateVerb//
0.7% in //Phrases::Manager::parse_rule_parameters//
0.7% in //Phrases::Manager::traverse//
0.3% in //Phrases::Manager::compile_rulebooks//
@ -19,8 +19,8 @@
0.1% in //Sentences::RuleSubtrees::register_recently_lexed_phrases//
0.1% in //Task::load_types//
0.1% in //World::complete//
3.8% not specifically accounted for
29.7% in running Inter pipeline
3.9% not specifically accounted for
30.1% in running Inter pipeline
9.8% in step preparation
9.6% in inter step 2/12: link
7.0% in inter step 12/12: generate inform6 -> auto.inf
@ -31,6 +31,6 @@
0.1% in inter step 6/12: assimilate
0.1% in inter step 7/12: resolve-external-symbols
0.1% in inter step 8/12: inspect-plugs
1.8% not specifically accounted for
1.9% in supervisor
2.1% not specifically accounted for
2.0% in supervisor
0.4% not specifically accounted for

View file

@ -16,7 +16,8 @@ int return_happy = TRUE, silence_mode = FALSE, verbose_mode = FALSE;
int main(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
CommandLine::declare_heading(
L"[[Purpose]]\n\n"
L"usage: inpolicy [options]\n");

View file

@ -15,6 +15,7 @@ int font_setting = TRUE;
int main(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
@<Read the command line@>;
if (from_folder) {
if (to_folder == NULL)

View file

@ -54,6 +54,7 @@ int main(int argc, char **argv) {
@<Start up the modules@> =
Foundation::start(); /* must be started first */
CommandLine::set_locale(argc, argv);
ArchModule::start();
BytecodeModule::start();
BuildingModule::start();

View file

@ -19,6 +19,7 @@ kind *K_value = NULL;
=
int main(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
WordsModule::start();
BuildingModule::start();
BytecodeModule::start();

View file

@ -11,6 +11,7 @@ What shall we test?
=
int main(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
ArchModule::start();
CommandLine::declare_heading(L"inexample: a tool for testing foundation facilities\n");

View file

@ -16,6 +16,7 @@ What shall we test?
=
int main(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
WordsModule::start();
InflectionsModule::start();

View file

@ -14,6 +14,7 @@ What shall we test?
=
int main(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
WordsModule::start();
InflectionsModule::start();
SyntaxModule::start();

View file

@ -11,6 +11,7 @@ What shall we test?
=
int main(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
WordsModule::start();
SyntaxModule::start();
ProblemsModule::start();

View file

@ -11,6 +11,7 @@ What shall we test?
=
int main(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
WordsModule::start();
SyntaxModule::start();

View file

@ -12,6 +12,7 @@ What shall we test?
=
int main(int argc, char **argv) {
Foundation::start();
CommandLine::set_locale(argc, argv);
WordsModule::start();
CommandLine::declare_heading(L"inexample: a tool for testing foundation facilities\n");