1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-03 07:24:58 +03:00

Chipped away at remaining explicit PR counters, which should not exist

This commit is contained in:
Graham Nelson 2019-04-16 12:46:46 +01:00
parent 0806f3bc16
commit 63efd05db8
41 changed files with 475 additions and 369 deletions

View file

@ -80,9 +80,8 @@ all deferral requests are redeemed — they would then never be reached.
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;reason</span><span class="plain"> = </span><span class="identifier">reason</span><span class="plain">;</span>
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;deferred_from</span><span class="plain"> = </span><span class="identifier">current_sentence</span><span class="plain">;</span>
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;rtp_iname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;ppd_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::function</span><span class="plain">(</span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="constant">PROPOSITION_PR_COUNTER</span><span class="plain">), </span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="identifier">NULL</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;ppd_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">PROPOSITIONS_HAP</span><span class="plain">);</span>
<span class="identifier">pdef</span><span class="plain">-</span><span class="element">&gt;ppd_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">PROPOSITION_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">no_further_deferrals</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"Too late now to defer propositions"</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">pdef</span><span class="plain">;</span>

View file

@ -11,7 +11,7 @@
<!--Weave of '13/rsfk' generated by 7-->
<ul class="crumbs"><li><a href="../webs.html">&#9733;</a></li><li><a href="index.html">core</a></li><li><a href="index.html#13">Chapter 13: Bridge to Kinds Module</a></li><li><b>Runtime Support for Kinds</b></li></ul><p class="purpose">To compile I6 material needed at runtime to enable kinds to function as they should.</p>
<ul class="toc"><li><a href="#SP1">&#167;1. Definitions</a></li><li><a href="#SP3">&#167;3. Kinds as I6 classes</a></li><li><a href="#SP4">&#167;4. Default values</a></li><li><a href="#SP6">&#167;6. Equality tests</a></li><li><a href="#SP7">&#167;7. Casts at runtime</a></li><li><a href="#SP8">&#167;8. IDs</a></li><li><a href="#SP17">&#167;17. The heap</a></li><li><a href="#SP22">&#167;22. Run-time support for units and enumerations</a></li><li><a href="#SP26_6">&#167;26.6. Further runtime support</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="#SP1">&#167;1. Definitions</a></li><li><a href="#SP3">&#167;3. Kinds as I6 classes</a></li><li><a href="#SP4">&#167;4. Default values</a></li><li><a href="#SP6">&#167;6. Equality tests</a></li><li><a href="#SP7">&#167;7. Casts at runtime</a></li><li><a href="#SP8">&#167;8. IDs</a></li><li><a href="#SP17">&#167;17. The heap</a></li><li><a href="#SP21">&#167;21. Run-time support for units and enumerations</a></li><li><a href="#SP25_6">&#167;25.6. Further runtime support</a></li></ul><hr class="tocbar">
<p class="inwebparagraph"><a id="SP1"></a><b>&#167;1. Definitions. </b></p>
@ -60,7 +60,7 @@ kinds being compiled to an I6 <code class="display"><span class="extract">Class<
<p class="inwebparagraph"></p>
<p class="endnote">The function Kinds::RunTime::I6_classname is used in <a href="#SP27">&#167;27</a>, 6/bp (<a href="6-bp.html#SP25">&#167;25</a>), 6/rlt (<a href="6-rlt.html#SP29_2">&#167;29.2</a>, <a href="6-rlt.html#SP29_3">&#167;29.3</a>, <a href="6-rlt.html#SP29_4">&#167;29.4</a>, <a href="6-rlt.html#SP29_5">&#167;29.5</a>, <a href="6-rlt.html#SP29_6">&#167;29.6</a>), 12/ter (<a href="12-ter.html#SP8_6">&#167;8.6</a>), 12/ca (<a href="12-ca.html#SP6_2">&#167;6.2</a>), 12/dtd (<a href="12-dtd.html#SP24">&#167;24</a>), 13/kak (<a href="13-kak.html#SP2">&#167;2</a>), 25/cii (<a href="25-cii.html#SP3_1_1_4_7_1">&#167;3.1.1.4.7.1</a>), 26/iti (<a href="26-iti.html#SP9">&#167;9</a>), 27/is (<a href="27-is.html#SP31_8_1">&#167;31.8.1</a>), 27/hr (<a href="27-hr.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Kinds::RunTime::I6_classname is used in <a href="#SP26">&#167;26</a>, 6/bp (<a href="6-bp.html#SP25">&#167;25</a>), 6/rlt (<a href="6-rlt.html#SP29_2">&#167;29.2</a>, <a href="6-rlt.html#SP29_3">&#167;29.3</a>, <a href="6-rlt.html#SP29_4">&#167;29.4</a>, <a href="6-rlt.html#SP29_5">&#167;29.5</a>, <a href="6-rlt.html#SP29_6">&#167;29.6</a>), 12/ter (<a href="12-ter.html#SP8_6">&#167;8.6</a>), 12/ca (<a href="12-ca.html#SP6_2">&#167;6.2</a>), 12/dtd (<a href="12-dtd.html#SP24">&#167;24</a>), 13/kak (<a href="13-kak.html#SP2">&#167;2</a>), 25/cii (<a href="25-cii.html#SP3_1_1_4_7_1">&#167;3.1.1.4.7.1</a>), 26/iti (<a href="26-iti.html#SP9">&#167;9</a>), 27/is (<a href="27-is.html#SP31_8_1">&#167;31.8.1</a>), 27/hr (<a href="27-hr.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Kinds::RunTime::I6_classnumber is used in 16/ic (<a href="16-ic.html#SP6">&#167;6</a>, <a href="16-ic.html#SP12_2">&#167;12.2</a>), 27/in (<a href="27-in.html#SP4">&#167;4</a>).</p>
@ -105,17 +105,21 @@ chosen), but no problem message has been issued about this, or
<span class="plain">(</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_phrase</span><span class="plain">) ||</span>
<span class="plain">(</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_relation</span><span class="plain">)) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_list_of</span><span class="plain">) {</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">rks_symb</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::compile_default_value_inner</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">rks_symb</span><span class="plain">);</span>
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_stored_action</span><span class="plain">)) {</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="functiontext">Kinds::RunTime::emit_block_value_header</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">, 6);</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">PL::Actions::double_sharp</span><span class="plain">(</span><span class="identifier">PL::Actions::Wait</span><span class="plain">()));</span>
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
@ -128,14 +132,16 @@ chosen), but no problem message has been issued about this, or
<span class="plain">#</span><span class="identifier">endif</span>
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">);</span>
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_relation</span><span class="plain">) {</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="functiontext">Relations::compile_blank_relation</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
@ -154,11 +160,13 @@ chosen), but no problem message has been issued about this, or
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Compare::eq</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">, </span><span class="identifier">K_text</span><span class="plain">)) {</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">PACKED_TEXT_STORAGE_HL</span><span class="plain">));</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">EMPTY_TEXT_PACKED_HL</span><span class="plain">));</span>
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">TRUE</span><span class="plain">;</span>
@ -185,7 +193,7 @@ chosen), but no problem message has been issued about this, or
<p class="endnote">The function Kinds::RunTime::emit_default_value is used in 19/rsft (<a href="19-rsft.html#SP1_1_1_1_1_5">&#167;1.1.1.1.1.5</a>).</p>
<p class="endnote">The function Kinds::RunTime::emit_default_value_as_val is used in <a href="#SP26_6_2">&#167;26.6.2</a>, 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>), 24/lv (<a href="24-lv.html#SP43">&#167;43</a>), 25/cii (<a href="25-cii.html#SP3_2_1">&#167;3.2.1</a>, <a href="25-cii.html#SP3_5_3">&#167;3.5.3</a>), 25/cp (<a href="25-cp.html#SP3_3_1">&#167;3.3.1</a>).</p>
<p class="endnote">The function Kinds::RunTime::emit_default_value_as_val is used in <a href="#SP25_6_2">&#167;25.6.2</a>, 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>), 24/lv (<a href="24-lv.html#SP43">&#167;43</a>), 25/cii (<a href="25-cii.html#SP3_2_1">&#167;3.2.1</a>, <a href="25-cii.html#SP3_5_3">&#167;3.5.3</a>), 25/cp (<a href="25-cp.html#SP3_3_1">&#167;3.3.1</a>).</p>
<p class="endnote">The function Kinds::RunTime::compile_default_value_vh is used in 5/nv (<a href="5-nv.html#SP25_1">&#167;25.1</a>), 15/vp (<a href="15-vp.html#SP11">&#167;11</a>).</p>
@ -534,7 +542,7 @@ like variables. That's what makes them intermediate.)
<p class="inwebparagraph"></p>
<p class="endnote">The function Kinds::RunTime::weak_id is used in <a href="#SP9">&#167;9</a>, <a href="#SP26">&#167;26</a>, <a href="#SP26_1">&#167;26.1</a>, 4/am (<a href="4-am.html#SP20">&#167;20</a>, <a href="4-am.html#SP29_1">&#167;29.1</a>, <a href="4-am.html#SP30">&#167;30</a>, <a href="4-am.html#SP34_2">&#167;34.2</a>).</p>
<p class="endnote">The function Kinds::RunTime::weak_id is used in <a href="#SP9">&#167;9</a>, <a href="#SP25">&#167;25</a>, <a href="#SP25_1">&#167;25.1</a>, 4/am (<a href="4-am.html#SP20">&#167;20</a>, <a href="4-am.html#SP29_1">&#167;29.1</a>, <a href="4-am.html#SP30">&#167;30</a>, <a href="4-am.html#SP34_2">&#167;34.2</a>).</p>
<p class="inwebparagraph"><a id="SP9"></a><b>&#167;9. </b>And the following compiles an easier-on-the-eye form of the weak ID, but
which might occupy up to 31 characters, the maximum length of an I6 identifier:
@ -570,9 +578,9 @@ which might occupy up to 31 characters, the maximum length of an I6 identifier:
<p class="endnote">The function Kinds::RunTime::compile_weak_id is used in 12/is (<a href="12-is.html#SP4_3_1">&#167;4.3.1</a>).</p>
<p class="endnote">The function Kinds::RunTime::emit_weak_id is used in <a href="#SP12">&#167;12</a>, <a href="#SP16_1">&#167;16.1</a>, <a href="#SP21">&#167;21</a>.</p>
<p class="endnote">The function Kinds::RunTime::emit_weak_id is used in <a href="#SP12">&#167;12</a>, <a href="#SP16_1">&#167;16.1</a>, <a href="#SP20">&#167;20</a>.</p>
<p class="endnote">The function Kinds::RunTime::emit_weak_id_as_val is used in <a href="#SP12">&#167;12</a>, <a href="#SP26_6_1">&#167;26.6.1</a>, <a href="#SP26_6_2">&#167;26.6.2</a>, <a href="#SP26_6_3">&#167;26.6.3</a>, <a href="#SP26_6_4">&#167;26.6.4</a>, <a href="#SP26_6_5">&#167;26.6.5</a>, <a href="#SP26_6_6">&#167;26.6.6</a>, 12/is (<a href="12-is.html#SP8">&#167;8</a>), 14/lv (<a href="14-lv.html#SP14_3">&#167;14.3</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 25/cii (<a href="25-cii.html#SP3_2_8">&#167;3.2.8</a>).</p>
<p class="endnote">The function Kinds::RunTime::emit_weak_id_as_val is used in <a href="#SP12">&#167;12</a>, <a href="#SP25_6_1">&#167;25.6.1</a>, <a href="#SP25_6_2">&#167;25.6.2</a>, <a href="#SP25_6_3">&#167;25.6.3</a>, <a href="#SP25_6_4">&#167;25.6.4</a>, <a href="#SP25_6_5">&#167;25.6.5</a>, <a href="#SP25_6_6">&#167;25.6.6</a>, 12/is (<a href="12-is.html#SP8">&#167;8</a>), 14/lv (<a href="14-lv.html#SP14_3">&#167;14.3</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 25/cii (<a href="25-cii.html#SP3_2_8">&#167;3.2.8</a>).</p>
<p class="inwebparagraph"><a id="SP10"></a><b>&#167;10. </b>The strong ID is a faithful representation of the <code class="display"><span class="extract">kind</span></code> structure,
so we don't need access to its value for comparison purposes; we just need
@ -651,7 +659,7 @@ turns up. This means remembering everything we've seen, using a new structure:
<p class="endnote">The function Kinds::RunTime::emit_strong_id is used in <a href="#SP16_1_1">&#167;16.1.1</a>, <a href="#SP16_1_1_1">&#167;16.1.1.1</a>, <a href="#SP16_1_1_2">&#167;16.1.1.2</a>, 6/rlt (<a href="6-rlt.html#SP15_1_4">&#167;15.1.4</a>, <a href="6-rlt.html#SP16">&#167;16</a>), 18/lc (<a href="18-lc.html#SP12_1">&#167;12.1</a>, <a href="18-lc.html#SP13">&#167;13</a>), 22/pav (<a href="22-pav.html#SP8_1">&#167;8.1</a>, <a href="22-pav.html#SP9_1">&#167;9.1</a>).</p>
<p class="endnote">The function Kinds::RunTime::emit_strong_id_as_val is used in <a href="#SP16_3">&#167;16.3</a>, <a href="#SP20">&#167;20</a>, 6/rlt (<a href="6-rlt.html#SP15">&#167;15</a>, <a href="6-rlt.html#SP15_2_9_1">&#167;15.2.9.1</a>), 12/dtd (<a href="12-dtd.html#SP16">&#167;16</a>, <a href="12-dtd.html#SP17">&#167;17</a>, <a href="12-dtd.html#SP27">&#167;27</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>), 25/cii (<a href="25-cii.html#SP3_2_7">&#167;3.2.7</a>).</p>
<p class="endnote">The function Kinds::RunTime::emit_strong_id_as_val is used in <a href="#SP16_3">&#167;16.3</a>, <a href="#SP19">&#167;19</a>, 6/rlt (<a href="6-rlt.html#SP15">&#167;15</a>, <a href="6-rlt.html#SP15_2_9_1">&#167;15.2.9.1</a>), 12/dtd (<a href="12-dtd.html#SP16">&#167;16</a>, <a href="12-dtd.html#SP17">&#167;17</a>, <a href="12-dtd.html#SP27">&#167;27</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>), 25/cii (<a href="25-cii.html#SP3_2_7">&#167;3.2.7</a>).</p>
<p class="inwebparagraph"><a id="SP13"></a><b>&#167;13. </b>Thus the following routine must return <code class="display"><span class="extract">NULL</span></code> if K is a kind whose weak
ID is the same as its strong ID &mdash; if it's a base kind, in other words &mdash;
@ -741,15 +749,16 @@ compile under Inform 6.
<span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;kind_described</span><span class="plain"> = </span><span class="identifier">K</span><span class="plain">;</span>
<span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;make_default</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;default_requested_here</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;rks_iname</span><span class="plain"> = </span><span class="functiontext">InterNames::new</span><span class="plain">(</span><span class="constant">KIND_ID_INAMEF</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::package</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="functiontext">Packaging::house</span><span class="plain">(</span><span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;rks_iname</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="comment">rks-&gt;rks_iname = InterNames::new(KIND_ID_INAMEF);</span>
<span class="comment">Packaging::house(rks-&gt;rks_iname, PR);</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">TEMP</span><span class="plain">);</span>
<span class="identifier">Kinds::Textual::write</span><span class="plain">(</span><span class="identifier">TEMP</span><span class="plain">, </span><span class="identifier">K</span><span class="plain">);</span>
<span class="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain"> = </span><span class="identifier">Feeds::feed_stream</span><span class="plain">(</span><span class="identifier">TEMP</span><span class="plain">);</span>
<span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;rks_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_with_memo</span><span class="plain">(</span><span class="constant">KIND_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">TEMP</span><span class="plain">);</span>
<span class="functiontext">InterNames::attach_memo</span><span class="plain">(</span><span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;rks_iname</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;rks_iname</span><span class="plain">);</span>
<span class="comment">InterNames::attach_memo(rks-&gt;rks_iname, W);</span>
<span class="comment">InterNames::to_symbol(rks-&gt;rks_iname);</span>
<span class="identifier">rks</span><span class="plain">-</span><span class="element">&gt;rks_dv_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">DEFAULT_VALUE_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
</pre>
@ -783,7 +792,7 @@ values for kinds, since both involve tracking constructions uniquely.
<p class="endnote">The function Kinds::RunTime::compile_default_value_inner is used in <a href="#SP4">&#167;4</a>.</p>
<p class="endnote">The function Kinds::RunTime::precompile_default_value is used in <a href="#SP20">&#167;20</a>.</p>
<p class="endnote">The function Kinds::RunTime::precompile_default_value is used in <a href="#SP19">&#167;19</a>.</p>
<p class="inwebparagraph"><a id="SP15"></a><b>&#167;15. </b>Convenient storage for some names.
</p>
@ -1085,29 +1094,7 @@ has essentially no memory constraints compared with the Z-machine.
<p class="endnote">This code is used in <a href="#SP18">&#167;18</a>.</p>
<p class="inwebparagraph"><a id="SP19"></a><b>&#167;19. </b></p>
<pre class="display">
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">kind</span><span class="plain"> *</span><span class="identifier">K</span><span class="plain">) {</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="constant">BLOCK_CONSTANT_PR_COUNTER</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">kind</span><span class="plain"> *</span><span class="identifier">K</span><span class="plain">) {</span>
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Kinds::RunTime::begin_block_constant is used in <a href="#SP4">&#167;4</a>, 17/tl (<a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP8_1">&#167;8.1</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>).</p>
<p class="endnote">The function Kinds::RunTime::end_block_constant is used in <a href="#SP4">&#167;4</a>, 17/tl (<a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP8_1">&#167;8.1</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>).</p>
<p class="inwebparagraph"><a id="SP20"></a><b>&#167;20. </b>The following routine both compiles code to create a pointer value, and
<p class="inwebparagraph"><a id="SP19"></a><b>&#167;19. </b>The following routine both compiles code to create a pointer value, and
also increments the heap allocation suitably. Each pointer-value kind comes
with an estimate of its likely size needs &mdash; its exact size needs if it is
fixed in size, and a reasonable overestimate of typical usage if it is
@ -1169,7 +1156,7 @@ list of 20 texts. For the cases above, it's always 1.
<p class="endnote">The structure heap_allocation is private to this section.</p>
<p class="inwebparagraph"><a id="SP21"></a><b>&#167;21. </b></p>
<p class="inwebparagraph"><a id="SP20"></a><b>&#167;20. </b></p>
<pre class="definitions">
@ -1203,7 +1190,7 @@ list of 20 texts. For the cases above, it's always 1.
<p class="endnote">The function Kinds::RunTime::emit_block_value_header is used in <a href="#SP4">&#167;4</a>, 6/rlt (<a href="6-rlt.html#SP15_1">&#167;15.1</a>, <a href="6-rlt.html#SP16">&#167;16</a>), 18/lc (<a href="18-lc.html#SP12_1">&#167;12.1</a>, <a href="18-lc.html#SP13">&#167;13</a>).</p>
<p class="inwebparagraph"><a id="SP22"></a><b>&#167;22. Run-time support for units and enumerations. </b>The following generates a small suite of I6 routines associated with
<p class="inwebparagraph"><a id="SP21"></a><b>&#167;21. Run-time support for units and enumerations. </b>The following generates a small suite of I6 routines associated with
each such kind, and needed at run-time.
</p>
@ -1225,11 +1212,11 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">The function Kinds::RunTime::base_represented_in_inter is used in <a href="#SP24">&#167;24</a>, <a href="#SP25">&#167;25</a>, <a href="#SP26">&#167;26</a>.</p>
<p class="endnote">The function Kinds::RunTime::base_represented_in_inter is used in <a href="#SP23">&#167;23</a>, <a href="#SP24">&#167;24</a>, <a href="#SP25">&#167;25</a>.</p>
<p class="endnote">The structure kind_interaction is private to this section.</p>
<p class="inwebparagraph"><a id="SP23"></a><b>&#167;23. </b></p>
<p class="inwebparagraph"><a id="SP22"></a><b>&#167;22. </b></p>
<pre class="display">
@ -1243,7 +1230,7 @@ each such kind, and needed at run-time.
<p class="endnote">The function Kinds::RunTime::package is used in <a href="#SP15">&#167;15</a>, 15/epv (<a href="15-epv.html#SP2">&#167;2</a>), 22/pav (<a href="22-pav.html#SP9">&#167;9</a>), 27/ei (<a href="27-ei.html#SP4">&#167;4</a>).</p>
<p class="inwebparagraph"><a id="SP24"></a><b>&#167;24. </b></p>
<p class="inwebparagraph"><a id="SP23"></a><b>&#167;23. </b></p>
<pre class="definitions">
@ -1267,13 +1254,13 @@ each such kind, and needed at run-time.
<span class="identifier">kind</span><span class="plain"> *</span><span class="identifier">operands</span><span class="plain">[</span><span class="constant">MAX_KIND_ARITY</span><span class="plain">];</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">icon</span><span class="plain"> = -1;</span>
<span class="identifier">inter_t</span><span class="plain"> </span><span class="identifier">idt</span><span class="plain"> = </span><span class="identifier">ROUTINE_IDT</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_description</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for description</span> <span class="cwebmacronumber">24.2</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_list_of</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for list</span> <span class="cwebmacronumber">24.1</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_phrase</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for phrase</span> <span class="cwebmacronumber">24.5</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_rule</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for rule</span> <span class="cwebmacronumber">24.6</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_rulebook</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for rulebook</span> <span class="cwebmacronumber">24.7</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_table_column</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for column</span> <span class="cwebmacronumber">24.3</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_relation</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for relation</span> <span class="cwebmacronumber">24.4</span>&gt;
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_description</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for description</span> <span class="cwebmacronumber">23.2</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_list_of</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for list</span> <span class="cwebmacronumber">23.1</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_phrase</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for phrase</span> <span class="cwebmacronumber">23.5</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_rule</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for rule</span> <span class="cwebmacronumber">23.6</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_rulebook</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for rulebook</span> <span class="cwebmacronumber">23.7</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_table_column</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for column</span> <span class="cwebmacronumber">23.3</span>&gt;
<span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::get_construct</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">CON_relation</span><span class="plain">) </span>&lt;<span class="cwebmacro">Run out inter kind for relation</span> <span class="cwebmacronumber">23.4</span>&gt;
<span class="reserved">else</span><span class="plain"> {</span>
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"Unfortunate kind is: $u\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">K</span><span class="plain">);</span>
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"unable to represent kind in inter"</span><span class="plain">);</span>
@ -1287,10 +1274,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">The function Kinds::RunTime::iname is used in <a href="#SP3">&#167;3</a>, <a href="#SP23">&#167;23</a>, <a href="#SP26">&#167;26</a>, 15/epv (<a href="15-epv.html#SP1">&#167;1</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Kinds::RunTime::iname is used in <a href="#SP3">&#167;3</a>, <a href="#SP22">&#167;22</a>, <a href="#SP25">&#167;25</a>, 15/epv (<a href="15-epv.html#SP1">&#167;1</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>).</p>
<p class="inwebparagraph"><a id="SP24_1"></a><b>&#167;24.1. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for list</span> <span class="cwebmacronumber">24.1</span>&gt; =
<p class="inwebparagraph"><a id="SP23_1"></a><b>&#167;23.1. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for list</span> <span class="cwebmacronumber">23.1</span>&gt; =
</code></p>
@ -1303,10 +1290,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP24">&#167;24</a>.</p>
<p class="endnote">This code is used in <a href="#SP23">&#167;23</a>.</p>
<p class="inwebparagraph"><a id="SP24_2"></a><b>&#167;24.2. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for description</span> <span class="cwebmacronumber">24.2</span>&gt; =
<p class="inwebparagraph"><a id="SP23_2"></a><b>&#167;23.2. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for description</span> <span class="cwebmacronumber">23.2</span>&gt; =
</code></p>
@ -1318,10 +1305,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP24">&#167;24</a>.</p>
<p class="endnote">This code is used in <a href="#SP23">&#167;23</a>.</p>
<p class="inwebparagraph"><a id="SP24_3"></a><b>&#167;24.3. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for column</span> <span class="cwebmacronumber">24.3</span>&gt; =
<p class="inwebparagraph"><a id="SP23_3"></a><b>&#167;23.3. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for column</span> <span class="cwebmacronumber">23.3</span>&gt; =
</code></p>
@ -1333,10 +1320,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP24">&#167;24</a>.</p>
<p class="endnote">This code is used in <a href="#SP23">&#167;23</a>.</p>
<p class="inwebparagraph"><a id="SP24_4"></a><b>&#167;24.4. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for relation</span> <span class="cwebmacronumber">24.4</span>&gt; =
<p class="inwebparagraph"><a id="SP23_4"></a><b>&#167;23.4. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for relation</span> <span class="cwebmacronumber">23.4</span>&gt; =
</code></p>
@ -1348,10 +1335,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP24">&#167;24</a>.</p>
<p class="endnote">This code is used in <a href="#SP23">&#167;23</a>.</p>
<p class="inwebparagraph"><a id="SP24_5"></a><b>&#167;24.5. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for phrase</span> <span class="cwebmacronumber">24.5</span>&gt; =
<p class="inwebparagraph"><a id="SP23_5"></a><b>&#167;23.5. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for phrase</span> <span class="cwebmacronumber">23.5</span>&gt; =
</code></p>
@ -1372,10 +1359,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP24">&#167;24</a>.</p>
<p class="endnote">This code is used in <a href="#SP23">&#167;23</a>.</p>
<p class="inwebparagraph"><a id="SP24_6"></a><b>&#167;24.6. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for rule</span> <span class="cwebmacronumber">24.6</span>&gt; =
<p class="inwebparagraph"><a id="SP23_6"></a><b>&#167;23.6. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for rule</span> <span class="cwebmacronumber">23.6</span>&gt; =
</code></p>
@ -1387,10 +1374,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP24">&#167;24</a>.</p>
<p class="endnote">This code is used in <a href="#SP23">&#167;23</a>.</p>
<p class="inwebparagraph"><a id="SP24_7"></a><b>&#167;24.7. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for rulebook</span> <span class="cwebmacronumber">24.7</span>&gt; =
<p class="inwebparagraph"><a id="SP23_7"></a><b>&#167;23.7. </b><code class="display">
&lt;<span class="cwebmacrodefn">Run out inter kind for rulebook</span> <span class="cwebmacronumber">23.7</span>&gt; =
</code></p>
@ -1404,9 +1391,9 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP24">&#167;24</a>.</p>
<p class="endnote">This code is used in <a href="#SP23">&#167;23</a>.</p>
<p class="inwebparagraph"><a id="SP25"></a><b>&#167;25. </b></p>
<p class="inwebparagraph"><a id="SP24"></a><b>&#167;24. </b></p>
<pre class="display">
@ -1435,11 +1422,11 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p>
<p class="endnote">The function Kinds::RunTime::iname_inner is used in <a href="#SP24">&#167;24</a>.</p>
<p class="endnote">The function Kinds::RunTime::iname_inner is used in <a href="#SP23">&#167;23</a>.</p>
<p class="endnote">The function Kinds::RunTime::assure_iname_exists is used in 5/un (<a href="5-un.html#SP2">&#167;2</a>).</p>
<p class="inwebparagraph"><a id="SP26"></a><b>&#167;26. </b></p>
<p class="inwebparagraph"><a id="SP25"></a><b>&#167;25. </b></p>
<pre class="display">
@ -1509,9 +1496,9 @@ each such kind, and needed at run-time.
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Behaviour::stored_as</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">NULL</span><span class="plain">)</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Behaviour::is_an_enumeration</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">)) {</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">printing_rule_name</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::get_iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
&lt;<span class="cwebmacro">Compile I6 printing routine for an enumerated kind</span> <span class="cwebmacronumber">26.3</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile the A and B routines for an enumerated kind</span> <span class="cwebmacronumber">26.4</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">26.5</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile I6 printing routine for an enumerated kind</span> <span class="cwebmacronumber">25.3</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile the A and B routines for an enumerated kind</span> <span class="cwebmacronumber">25.4</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">25.5</span>&gt;<span class="plain">;</span>
<span class="plain">}</span>
<span class="plain">}</span>
<span class="identifier">LOOP_OVER_BASE_KINDS</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) {</span>
@ -1521,15 +1508,15 @@ each such kind, and needed at run-time.
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Behaviour::stored_as</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">) == </span><span class="identifier">NULL</span><span class="plain">) {</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">printing_rule_name</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::get_iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Kinds::Behaviour::is_quasinumerical</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">)) {</span>
&lt;<span class="cwebmacro">Compile I6 printing routine for a unit kind</span> <span class="cwebmacronumber">26.2</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">26.5</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile I6 printing routine for a unit kind</span> <span class="cwebmacronumber">25.2</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">25.5</span>&gt;<span class="plain">;</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
&lt;<span class="cwebmacro">Compile I6 printing routine for a vacant but named kind</span> <span class="cwebmacronumber">26.1</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile I6 printing routine for a vacant but named kind</span> <span class="cwebmacronumber">25.1</span>&gt;<span class="plain">;</span>
<span class="plain">}</span>
<span class="plain">}</span>
<span class="plain">}</span>
&lt;<span class="cwebmacro">Compile a suite of I6 routines taking kind IDs as arguments</span> <span class="cwebmacronumber">26.6</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile a suite of I6 routines taking kind IDs as arguments</span> <span class="cwebmacronumber">25.6</span>&gt;<span class="plain">;</span>
<span class="plain">}</span>
</pre>
@ -1545,7 +1532,7 @@ each such kind, and needed at run-time.
<p class="endnote">The function Kinds::RunTime::compile_data_type_support_routines is used in 1/mr (<a href="1-mr.html#SP4_14">&#167;4.14</a>).</p>
<p class="inwebparagraph"><a id="SP26_1"></a><b>&#167;26.1. </b>A slightly bogus case first. If the source text declares a kind but never
<p class="inwebparagraph"><a id="SP25_1"></a><b>&#167;25.1. </b>A slightly bogus case first. If the source text declares a kind but never
gives any enumerated values or literal patterns, then such values will never
appear at run-time; but we need the printing routine to exist to avoid
compilation errors.
@ -1553,7 +1540,7 @@ compilation errors.
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile I6 printing routine for a vacant but named kind</span> <span class="cwebmacronumber">26.1</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile I6 printing routine for a vacant but named kind</span> <span class="cwebmacronumber">25.1</span>&gt; =
</code></p>
@ -1573,16 +1560,16 @@ compilation errors.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26">&#167;26</a>.</p>
<p class="endnote">This code is used in <a href="#SP25">&#167;25</a>.</p>
<p class="inwebparagraph"><a id="SP26_2"></a><b>&#167;26.2. </b>A unit is printed back with its earliest-defined literal pattern used as
<p class="inwebparagraph"><a id="SP25_2"></a><b>&#167;25.2. </b>A unit is printed back with its earliest-defined literal pattern used as
notation. If it had no literal patterns, it would come out as decimal numbers,
but at present this can't happen.
</p>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile I6 printing routine for a unit kind</span> <span class="cwebmacronumber">26.2</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile I6 printing routine for a unit kind</span> <span class="cwebmacronumber">25.2</span>&gt; =
</code></p>
@ -1603,10 +1590,10 @@ but at present this can't happen.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26">&#167;26</a>.</p>
<p class="endnote">This code is used in <a href="#SP25">&#167;25</a>.</p>
<p class="inwebparagraph"><a id="SP26_3"></a><b>&#167;26.3. </b><code class="display">
&lt;<span class="cwebmacrodefn">Compile I6 printing routine for an enumerated kind</span> <span class="cwebmacronumber">26.3</span>&gt; =
<p class="inwebparagraph"><a id="SP25_3"></a><b>&#167;25.3. </b><code class="display">
&lt;<span class="cwebmacrodefn">Compile I6 printing routine for an enumerated kind</span> <span class="cwebmacronumber">25.3</span>&gt; =
</code></p>
@ -1665,9 +1652,9 @@ but at present this can't happen.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26">&#167;26</a>.</p>
<p class="endnote">This code is used in <a href="#SP25">&#167;25</a>.</p>
<p class="inwebparagraph"><a id="SP26_4"></a><b>&#167;26.4. </b>The suite of standard routines provided for enumerative types is a little
<p class="inwebparagraph"><a id="SP25_4"></a><b>&#167;25.4. </b>The suite of standard routines provided for enumerative types is a little
like the one in Ada (<code class="display"><span class="extract">T'Succ</span></code>, <code class="display"><span class="extract">T'Pred</span></code>, and so on).
</p>
@ -1684,7 +1671,7 @@ to <code class="display"><span class="extract">A_T1_colour(v)</span></code>.
</li></ul>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile the A and B routines for an enumerated kind</span> <span class="cwebmacronumber">26.4</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile the A and B routines for an enumerated kind</span> <span class="cwebmacronumber">25.4</span>&gt; =
</code></p>
@ -1695,26 +1682,26 @@ to <code class="display"><span class="extract">A_T1_colour(v)</span></code>.
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname_i</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::get_inc_iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Routines::begin</span><span class="plain">(</span><span class="identifier">iname_i</span><span class="plain">);</span>
&lt;<span class="cwebmacro">Implement the A routine</span> <span class="cwebmacronumber">26.4.1</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Implement the A routine</span> <span class="cwebmacronumber">25.4.1</span>&gt;<span class="plain">;</span>
<span class="functiontext">Routines::end</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname_d</span><span class="plain"> = </span><span class="identifier">Kinds::Behaviour::get_dec_iname</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Routines::begin</span><span class="plain">(</span><span class="identifier">iname_d</span><span class="plain">);</span>
&lt;<span class="cwebmacro">Implement the B routine</span> <span class="cwebmacronumber">26.4.2</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Implement the B routine</span> <span class="cwebmacronumber">25.4.2</span>&gt;<span class="plain">;</span>
<span class="functiontext">Routines::end</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26">&#167;26</a>.</p>
<p class="endnote">This code is used in <a href="#SP25">&#167;25</a>.</p>
<p class="inwebparagraph"><a id="SP26_4_1"></a><b>&#167;26.4.1. </b>There should be a blue historical plaque on the wall here: this was the
<p class="inwebparagraph"><a id="SP25_4_1"></a><b>&#167;25.4.1. </b>There should be a blue historical plaque on the wall here: this was the
first routine implemented by emitting Inter code, on 12 November 2017.
</p>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Implement the A routine</span> <span class="cwebmacronumber">26.4.1</span>&gt; =
&lt;<span class="cwebmacrodefn">Implement the A routine</span> <span class="cwebmacronumber">25.4.1</span>&gt; =
</code></p>
@ -1749,14 +1736,14 @@ first routine implemented by emitting Inter code, on 12 November 2017.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26_4">&#167;26.4</a>.</p>
<p class="endnote">This code is used in <a href="#SP25_4">&#167;25.4</a>.</p>
<p class="inwebparagraph"><a id="SP26_4_2"></a><b>&#167;26.4.2. </b>And this was the second, a few minutes later.
<p class="inwebparagraph"><a id="SP25_4_2"></a><b>&#167;25.4.2. </b>And this was the second, a few minutes later.
</p>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Implement the B routine</span> <span class="cwebmacronumber">26.4.2</span>&gt; =
&lt;<span class="cwebmacrodefn">Implement the B routine</span> <span class="cwebmacronumber">25.4.2</span>&gt; =
</code></p>
@ -1804,9 +1791,9 @@ first routine implemented by emitting Inter code, on 12 November 2017.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26_4">&#167;26.4</a>.</p>
<p class="endnote">This code is used in <a href="#SP25_4">&#167;25.4</a>.</p>
<p class="inwebparagraph"><a id="SP26_5"></a><b>&#167;26.5. </b>And here we add:
<p class="inwebparagraph"><a id="SP25_5"></a><b>&#167;25.5. </b>And here we add:
</p>
<p class="inwebparagraph"></p>
@ -1819,7 +1806,7 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
</li></ul>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">26.5</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile random-ranger routine for this kind</span> <span class="cwebmacronumber">25.5</span>&gt; =
</code></p>
@ -1889,7 +1876,7 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
<span class="functiontext">Emit::inv_primitive</span><span class="plain">(</span><span class="identifier">return_interp</span><span class="plain">);</span>
<span class="functiontext">Emit::down</span><span class="plain">();</span>
<span class="identifier">smaller</span><span class="plain"> = </span><span class="identifier">b_s</span><span class="plain">; </span><span class="identifier">larger</span><span class="plain"> = </span><span class="identifier">a_s</span><span class="plain">;</span>
&lt;<span class="cwebmacro">Formula for range</span> <span class="cwebmacronumber">26.5.1</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Formula for range</span> <span class="cwebmacronumber">25.5.1</span>&gt;<span class="plain">;</span>
<span class="functiontext">Emit::up</span><span class="plain">();</span>
<span class="functiontext">Emit::up</span><span class="plain">();</span>
<span class="functiontext">Emit::up</span><span class="plain">();</span>
@ -1897,7 +1884,7 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
<span class="functiontext">Emit::inv_primitive</span><span class="plain">(</span><span class="identifier">return_interp</span><span class="plain">);</span>
<span class="functiontext">Emit::down</span><span class="plain">();</span>
<span class="identifier">smaller</span><span class="plain"> = </span><span class="identifier">a_s</span><span class="plain">; </span><span class="identifier">larger</span><span class="plain"> = </span><span class="identifier">b_s</span><span class="plain">;</span>
&lt;<span class="cwebmacro">Formula for range</span> <span class="cwebmacronumber">26.5.1</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Formula for range</span> <span class="cwebmacronumber">25.5.1</span>&gt;<span class="plain">;</span>
<span class="functiontext">Emit::up</span><span class="plain">();</span>
<span class="functiontext">Routines::end</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
@ -1905,10 +1892,10 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26">&#167;26</a> (twice).</p>
<p class="endnote">This code is used in <a href="#SP25">&#167;25</a> (twice).</p>
<p class="inwebparagraph"><a id="SP26_5_1"></a><b>&#167;26.5.1. </b><code class="display">
&lt;<span class="cwebmacrodefn">Formula for range</span> <span class="cwebmacronumber">26.5.1</span>&gt; =
<p class="inwebparagraph"><a id="SP25_5_1"></a><b>&#167;25.5.1. </b><code class="display">
&lt;<span class="cwebmacrodefn">Formula for range</span> <span class="cwebmacronumber">25.5.1</span>&gt; =
</code></p>
@ -1937,39 +1924,39 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26_5">&#167;26.5</a> (twice).</p>
<p class="endnote">This code is used in <a href="#SP25_5">&#167;25.5</a> (twice).</p>
<p class="inwebparagraph"><a id="SP26_6"></a><b>&#167;26.6. Further runtime support. </b>These last routines are synoptic: they take the ID number of the kind as an
<p class="inwebparagraph"><a id="SP25_6"></a><b>&#167;25.6. Further runtime support. </b>These last routines are synoptic: they take the ID number of the kind as an
argument, so there is only one of each routine.
</p>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile a suite of I6 routines taking kind IDs as arguments</span> <span class="cwebmacronumber">26.6</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile a suite of I6 routines taking kind IDs as arguments</span> <span class="cwebmacronumber">25.6</span>&gt; =
</code></p>
<pre class="displaydefn">
&lt;<span class="cwebmacro">Compile PrintKindValuePair</span> <span class="cwebmacronumber">26.6.1</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile DefaultValueOfKOV</span> <span class="cwebmacronumber">26.6.2</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile KOVComparisonFunction</span> <span class="cwebmacronumber">26.6.3</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile KOVDomainSize</span> <span class="cwebmacronumber">26.6.4</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile KOVIsBlockValue</span> <span class="cwebmacronumber">26.6.5</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile KOVSupportFunction</span> <span class="cwebmacronumber">26.6.6</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile PrintKindValuePair</span> <span class="cwebmacronumber">25.6.1</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile DefaultValueOfKOV</span> <span class="cwebmacronumber">25.6.2</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile KOVComparisonFunction</span> <span class="cwebmacronumber">25.6.3</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile KOVDomainSize</span> <span class="cwebmacronumber">25.6.4</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile KOVIsBlockValue</span> <span class="cwebmacronumber">25.6.5</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile KOVSupportFunction</span> <span class="cwebmacronumber">25.6.6</span>&gt;<span class="plain">;</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26">&#167;26</a>.</p>
<p class="endnote">This code is used in <a href="#SP25">&#167;25</a>.</p>
<p class="inwebparagraph"><a id="SP26_6_1"></a><b>&#167;26.6.1. </b><code class="display"><span class="extract">PrintKindValuePair(K, V)</span></code> prints out the value <code class="display"><span class="extract">V</span></code>, declaring its kind to
<p class="inwebparagraph"><a id="SP25_6_1"></a><b>&#167;25.6.1. </b><code class="display"><span class="extract">PrintKindValuePair(K, V)</span></code> prints out the value <code class="display"><span class="extract">V</span></code>, declaring its kind to
be <code class="display"><span class="extract">K</span></code>. (Since I6 is typeless and in general the kind of <code class="display"><span class="extract">V</span></code> cannot be
deduced from its value alone, <code class="display"><span class="extract">K</span></code> must explicitly be supplied.)
</p>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile PrintKindValuePair</span> <span class="cwebmacronumber">26.6.1</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile PrintKindValuePair</span> <span class="cwebmacronumber">25.6.1</span>&gt; =
</code></p>
@ -2027,16 +2014,16 @@ deduced from its value alone, <code class="display"><span class="extract">K</spa
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26_6">&#167;26.6</a>.</p>
<p class="endnote">This code is used in <a href="#SP25_6">&#167;25.6</a>.</p>
<p class="inwebparagraph"><a id="SP26_6_2"></a><b>&#167;26.6.2. </b><code class="display"><span class="extract">DefaultValueOfKOV(K)</span></code> returns the default value for kind <code class="display"><span class="extract">K</span></code>: it's needed,
<p class="inwebparagraph"><a id="SP25_6_2"></a><b>&#167;25.6.2. </b><code class="display"><span class="extract">DefaultValueOfKOV(K)</span></code> returns the default value for kind <code class="display"><span class="extract">K</span></code>: it's needed,
for instance, when increasing the size of a list of K to include new entries,
which have to be given some type-safe value to start out at.
</p>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile DefaultValueOfKOV</span> <span class="cwebmacronumber">26.6.2</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile DefaultValueOfKOV</span> <span class="cwebmacronumber">25.6.2</span>&gt; =
</code></p>
@ -2104,9 +2091,9 @@ which have to be given some type-safe value to start out at.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26_6">&#167;26.6</a>.</p>
<p class="endnote">This code is used in <a href="#SP25_6">&#167;25.6</a>.</p>
<p class="inwebparagraph"><a id="SP26_6_3"></a><b>&#167;26.6.3. </b><code class="display"><span class="extract">KOVComparisonFunction(K)</span></code> returns either the address of a function to
<p class="inwebparagraph"><a id="SP25_6_3"></a><b>&#167;25.6.3. </b><code class="display"><span class="extract">KOVComparisonFunction(K)</span></code> returns either the address of a function to
perform a comparison between two values, or else 0 to signal that no
special sort of comparison is needed. (In which case signed numerical
comparison will be used.) The function <code class="display"><span class="extract">F</span></code> may be used in a sorting algorithm,
@ -2117,7 +2104,7 @@ unless the two values are genuinely equal.
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile KOVComparisonFunction</span> <span class="cwebmacronumber">26.6.3</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile KOVComparisonFunction</span> <span class="cwebmacronumber">25.6.3</span>&gt; =
</code></p>
@ -2179,10 +2166,10 @@ unless the two values are genuinely equal.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26_6">&#167;26.6</a>.</p>
<p class="endnote">This code is used in <a href="#SP25_6">&#167;25.6</a>.</p>
<p class="inwebparagraph"><a id="SP26_6_4"></a><b>&#167;26.6.4. </b><code class="display">
&lt;<span class="cwebmacrodefn">Compile KOVDomainSize</span> <span class="cwebmacronumber">26.6.4</span>&gt; =
<p class="inwebparagraph"><a id="SP25_6_4"></a><b>&#167;25.6.4. </b><code class="display">
&lt;<span class="cwebmacrodefn">Compile KOVDomainSize</span> <span class="cwebmacronumber">25.6.4</span>&gt; =
</code></p>
@ -2242,15 +2229,15 @@ unless the two values are genuinely equal.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26_6">&#167;26.6</a>.</p>
<p class="endnote">This code is used in <a href="#SP25_6">&#167;25.6</a>.</p>
<p class="inwebparagraph"><a id="SP26_6_5"></a><b>&#167;26.6.5. </b><code class="display"><span class="extract">KOVIsBlockValue(K)</span></code> is true if and only if <code class="display"><span class="extract">K</span></code> is the I6 ID of a kind
<p class="inwebparagraph"><a id="SP25_6_5"></a><b>&#167;25.6.5. </b><code class="display"><span class="extract">KOVIsBlockValue(K)</span></code> is true if and only if <code class="display"><span class="extract">K</span></code> is the I6 ID of a kind
storing pointers to blocks on the heap.
</p>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile KOVIsBlockValue</span> <span class="cwebmacronumber">26.6.5</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile KOVIsBlockValue</span> <span class="cwebmacronumber">25.6.5</span>&gt; =
</code></p>
@ -2293,16 +2280,16 @@ storing pointers to blocks on the heap.
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26_6">&#167;26.6</a>.</p>
<p class="endnote">This code is used in <a href="#SP25_6">&#167;25.6</a>.</p>
<p class="inwebparagraph"><a id="SP26_6_6"></a><b>&#167;26.6.6. </b><code class="display"><span class="extract">KOVSupportFunction(K)</span></code> returns the address of the specific support function
<p class="inwebparagraph"><a id="SP25_6_6"></a><b>&#167;25.6.6. </b><code class="display"><span class="extract">KOVSupportFunction(K)</span></code> returns the address of the specific support function
for a pointer-value kind <code class="display"><span class="extract">K</span></code>, or returns 0 if <code class="display"><span class="extract">K</span></code> is not such a kind. For what
such a function does, see "BlockValues.i6t".
</p>
<p class="macrodefinition"><code class="display">
&lt;<span class="cwebmacrodefn">Compile KOVSupportFunction</span> <span class="cwebmacronumber">26.6.6</span>&gt; =
&lt;<span class="cwebmacrodefn">Compile KOVSupportFunction</span> <span class="cwebmacronumber">25.6.6</span>&gt; =
</code></p>
@ -2364,9 +2351,9 @@ such a function does, see "BlockValues.i6t".
<p class="inwebparagraph"></p>
<p class="endnote">This code is used in <a href="#SP26_6">&#167;26.6</a>.</p>
<p class="endnote">This code is used in <a href="#SP25_6">&#167;25.6</a>.</p>
<p class="inwebparagraph"><a id="SP27"></a><b>&#167;27. </b>Code for printing names of kinds at run-time. This needn't run quickly, and
<p class="inwebparagraph"><a id="SP26"></a><b>&#167;26. </b>Code for printing names of kinds at run-time. This needn't run quickly, and
making it a routine rather than using an array saves a few bytes of precious
Z-machine array space.
</p>
@ -2406,7 +2393,7 @@ Z-machine array space.
<p class="endnote">The function Kinds::RunTime::I7_Kind_Name_routine is used in 1/mr (<a href="1-mr.html#SP4_14">&#167;4.14</a>).</p>
<p class="inwebparagraph"><a id="SP28"></a><b>&#167;28. </b></p>
<p class="inwebparagraph"><a id="SP27"></a><b>&#167;27. </b></p>
<pre class="display">

View file

@ -156,10 +156,9 @@ in the source.
<span class="identifier">x</span><span class="plain">-</span><span class="element">&gt;unexpanded</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">x</span><span class="plain">-</span><span class="element">&gt;small_block_array_needed</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">x</span><span class="plain">-</span><span class="element">&gt;lt_sba_iname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">x</span><span class="plain">-</span><span class="element">&gt;lt_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="constant">LITERAL_PR_COUNTER</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">x</span><span class="plain">-</span><span class="element">&gt;lt_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">LITERALS_HAP</span><span class="plain">);</span>
<span class="identifier">x</span><span class="plain">-</span><span class="element">&gt;lt_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">TEXT_LITERAL_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="functiontext">Emit::annotate_symbol_i</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">x</span><span class="plain">-</span><span class="element">&gt;lt_iname</span><span class="plain">), </span><span class="identifier">TEXT_LITERAL_IANN</span><span class="plain">, 1);</span>
<span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">x</span><span class="plain">-</span><span class="element">&gt;lt_iname</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">wn_quote_suppressed</span><span class="plain"> &gt;= 0) &amp;&amp; (</span><span class="identifier">w1</span><span class="plain"> == </span><span class="identifier">wn_quote_suppressed</span><span class="plain">)) </span><span class="identifier">x</span><span class="plain">-</span><span class="element">&gt;unexpanded</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">x</span><span class="plain">;</span>
<span class="plain">}</span>
@ -392,7 +391,7 @@ different for compilation purposes.
<p class="endnote">The function Strings::TextLiterals::compile_quotation is used in 17/rs (<a href="17-rs.html#SP12">&#167;12</a>).</p>
<p class="endnote">The function Strings::TextLiterals::CCOUNT_QUOTATIONS is used in 13/rsfk (<a href="13-rsfk.html#SP26">&#167;26</a>).</p>
<p class="endnote">The function Strings::TextLiterals::CCOUNT_QUOTATIONS is used in 13/rsfk (<a href="13-rsfk.html#SP25">&#167;25</a>).</p>
<p class="inwebparagraph"><a id="SP13"></a><b>&#167;13. </b>A version from fixed text:
</p>
@ -533,15 +532,17 @@ number <code class="display"><span class="extract">-1</span></code>).
<span class="reserved">literal_text</span><span class="plain"> *</span><span class="functiontext">Strings::TextLiterals::compile_literal_sb</span><span class="plain">(</span><span class="reserved">value_holster</span><span class="plain"> *</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain">) {</span>
<span class="reserved">literal_text</span><span class="plain"> *</span><span class="identifier">lt</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">TEST_COMPILATION_MODE</span><span class="plain">(</span><span class="constant">CONSTANT_CMODE</span><span class="plain">)) {</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_text</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="identifier">lt</span><span class="plain"> = </span><span class="functiontext">Strings::TextLiterals::compile_literal</span><span class="plain">(</span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">PACKED_TEXT_STORAGE_HL</span><span class="plain">));</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">lt</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">EMPTY_TEXT_PACKED_HL</span><span class="plain">));</span>
<span class="reserved">else</span><span class="plain"> </span><span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">lt</span><span class="plain">-</span><span class="element">&gt;lt_iname</span><span class="plain">);</span>
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K_text</span><span class="plain">);</span>
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="identifier">lt</span><span class="plain"> = </span><span class="functiontext">Strings::TextLiterals::compile_literal</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">TRUE</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="plain">}</span>

View file

@ -245,13 +245,15 @@ that routine later. This appearance of the routine name is called the "cue".
<span class="reserved">text_substitution</span><span class="plain"> *</span><span class="identifier">ts</span><span class="plain"> = </span><span class="functiontext">Strings::TextSubstitutions::new_text_substitution</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">phsf</span><span class="plain">,</span>
<span class="identifier">adopted_rule_for_compilation</span><span class="plain">, </span><span class="identifier">adopted_marker_for_compilation</span><span class="plain">, </span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">());</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">TEST_COMPILATION_MODE</span><span class="plain">(</span><span class="constant">CONSTANT_CMODE</span><span class="plain">)) {</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_text</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">CONSTANT_PACKED_TEXT_STORAGE_HL</span><span class="plain">));</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">ts</span><span class="plain">-</span><span class="element">&gt;ts_routine_iname</span><span class="plain">);</span>
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K_text</span><span class="plain">);</span>
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="functiontext">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">tin</span><span class="plain"> = </span><span class="functiontext">Strings::TextSubstitutions::text_substitution_iname</span><span class="plain">(</span><span class="identifier">ts</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">Holsters::data_acceptable</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">)) {</span>

View file

@ -391,12 +391,14 @@ so there was once a two-page explanation here, but it is now blessedly simple.
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">incipit</span><span class="plain"> = </span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">);</span>
<span class="reserved">literal_list</span><span class="plain"> *</span><span class="identifier">ll</span><span class="plain"> = </span><span class="functiontext">Lists::find_list_at</span><span class="plain">(</span><span class="identifier">incipit</span><span class="plain">+1);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">ll</span><span class="plain">) {</span>
<span class="identifier">kind</span><span class="plain"> *</span><span class="identifier">K</span><span class="plain"> = </span><span class="functiontext">Lists::kind_of_ll</span><span class="plain">(</span><span class="identifier">ll</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">);</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_current_enclosure</span><span class="plain">();</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="functiontext">Lists::kind_of_ll</span><span class="plain">(</span><span class="identifier">ll</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
<span class="functiontext">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="functiontext">Lists::iname</span><span class="plain">(</span><span class="identifier">ll</span><span class="plain">));</span>
<span class="functiontext">Emit::array_numeric_entry</span><span class="plain">(0);</span>
<span class="functiontext">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K</span><span class="plain">);</span>
<span class="functiontext">Emit::array_end</span><span class="plain">();</span>
<span class="functiontext">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">;</span>
<span class="plain">}</span>
@ -405,8 +407,8 @@ so there was once a two-page explanation here, but it is now blessedly simple.
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="functiontext">Lists::iname</span><span class="plain">(</span><span class="reserved">literal_list</span><span class="plain"> *</span><span class="identifier">ll</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">ll</span><span class="plain">-</span><span class="element">&gt;ll_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
<span class="identifier">ll</span><span class="plain">-</span><span class="element">&gt;ll_iname</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="functiontext">Packaging::current_enclosure</span><span class="plain">(), </span><span class="constant">LITERAL_PR_COUNTER</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">ll</span><span class="plain">-</span><span class="element">&gt;ll_iname</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="functiontext">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="constant">LITERALS_HAP</span><span class="plain">);</span>
<span class="identifier">ll</span><span class="plain">-</span><span class="element">&gt;ll_iname</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">LIST_LITERAL_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">ll</span><span class="plain">-</span><span class="element">&gt;ll_iname</span><span class="plain">;</span>
<span class="plain">}</span>

View file

@ -164,7 +164,7 @@ this as some kind of marginal will-never-happen case.
<p class="inwebparagraph"></p>
<p class="endnote">The function Problems::quote_kind is used in <a href="#SP4">&#167;4</a>, 5/lp (<a href="5-lp.html#SP34_5">&#167;34.5</a>, <a href="5-lp.html#SP34_6">&#167;34.6</a>), 5/ins (<a href="5-ins.html#SP19_1">&#167;19.1</a>), 5/nv (<a href="5-nv.html#SP7_1">&#167;7.1</a>, <a href="5-nv.html#SP23">&#167;23</a>, <a href="5-nv.html#SP25_2">&#167;25.2</a>), 6/tur (<a href="6-tur.html#SP5">&#167;5</a>), 9/tc (<a href="9-tc.html#SP5_4_2_6">&#167;5.4.2.6</a>, <a href="9-tc.html#SP5_4_2_7">&#167;5.4.2.7</a>, <a href="9-tc.html#SP5_4_2_8">&#167;5.4.2.8</a>, <a href="9-tc.html#SP8_1">&#167;8.1</a>), 9/ma (<a href="9-ma.html#SP3_3_39_1">&#167;3.3.39.1</a>), 9/pk (<a href="9-pk.html#SP2_1">&#167;2.1</a>, <a href="9-pk.html#SP4_4">&#167;4.4</a>), 9/pd (<a href="9-pd.html#SP5_6_1">&#167;5.6.1</a>, <a href="9-pd.html#SP7_1_3">&#167;7.1.3</a>), 11/tc (<a href="11-tc.html#SP7_1">&#167;7.1</a>), 11/tcp (<a href="11-tcp.html#SP6_9">&#167;6.9</a>, <a href="11-tcp.html#SP6_10">&#167;6.10</a>, <a href="11-tcp.html#SP6_11">&#167;6.11</a>, <a href="11-tcp.html#SP10">&#167;10</a>, <a href="11-tcp.html#SP11">&#167;11</a>, <a href="11-tcp.html#SP11_3">&#167;11.3</a>, <a href="11-tcp.html#SP12">&#167;12</a>), 12/ter (<a href="12-ter.html#SP5_1">&#167;5.1</a>, <a href="12-ter.html#SP8_4">&#167;8.4</a>), 12/qr (<a href="12-qr.html#SP5">&#167;5</a>), 12/ca (<a href="12-ca.html#SP6_2">&#167;6.2</a>), 13/kak (<a href="13-kak.html#SP7">&#167;7</a>), 13/rsfk (<a href="13-rsfk.html#SP4_1">&#167;4.1</a>, <a href="13-rsfk.html#SP4_2">&#167;4.2</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP28">&#167;28</a>), 14/ds2 (<a href="14-ds2.html#SP10_1_1_3_1">&#167;10.1.1.3.1</a>, <a href="14-ds2.html#SP11_8_1">&#167;11.8.1</a>, <a href="14-ds2.html#SP11_9_1_1_2_2_2">&#167;11.9.1.1.2.2.2</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_2">&#167;11.9.1.1.5.2</a>, <a href="14-ds2.html#SP11_9_1_2_3_3">&#167;11.9.1.2.3.3</a>, <a href="14-ds2.html#SP11_9_1_2_4">&#167;11.9.1.2.4</a>, <a href="14-ds2.html#SP15_4">&#167;15.4</a>, <a href="14-ds2.html#SP19_1">&#167;19.1</a>, <a href="14-ds2.html#SP19_2">&#167;19.2</a>, <a href="14-ds2.html#SP19_2_1">&#167;19.2.1</a>, <a href="14-ds2.html#SP19_5_3_2">&#167;19.5.3.2</a>, <a href="14-ds2.html#SP19_6_1_1">&#167;19.6.1.1</a>, <a href="14-ds2.html#SP19_6_2_1">&#167;19.6.2.1</a>, <a href="14-ds2.html#SP19_6_2_2">&#167;19.6.2.2</a>), 15/vp (<a href="15-vp.html#SP5">&#167;5</a>), 15/cp (<a href="15-cp.html#SP3">&#167;3</a>), 15/tpr (<a href="15-tpr.html#SP5">&#167;5</a>), 15/spr2 (<a href="15-spr2.html#SP9_1">&#167;9.1</a>, <a href="15-spr2.html#SP9_2">&#167;9.2</a>), 15/pov (<a href="15-pov.html#SP4_1">&#167;4.1</a>), 16/in (<a href="16-in.html#SP14">&#167;14</a>), 18/lc (<a href="18-lc.html#SP8_2_1">&#167;8.2.1</a>), 19/tc (<a href="19-tc.html#SP6_1">&#167;6.1</a>, <a href="19-tc.html#SP14_1">&#167;14.1</a>, <a href="19-tc.html#SP15">&#167;15</a>, <a href="19-tc.html#SP15_6">&#167;15.6</a>), 19/tod (<a href="19-tod.html#SP6_2">&#167;6.2</a>, <a href="19-tod.html#SP6_3_3">&#167;6.3.3</a>), 20/eq (<a href="20-eq.html#SP41_4_1">&#167;41.4.1</a>, <a href="20-eq.html#SP41_4_2">&#167;41.4.2</a>, <a href="20-eq.html#SP47_3_2">&#167;47.3.2</a>), 21/rl (<a href="21-rl.html#SP15">&#167;15</a>, <a href="21-rl.html#SP18">&#167;18</a>), 22/pu (<a href="22-pu.html#SP20_1_1_2">&#167;20.1.1.2</a>), 25/ci (<a href="25-ci.html#SP3_1_1_2">&#167;3.1.1.2</a>), 25/cii (<a href="25-cii.html#SP3_2_1_1">&#167;3.2.1.1</a>, <a href="25-cii.html#SP3_1_1_4_7_1_2">&#167;3.1.1.4.7.1.2</a>, <a href="25-cii.html#SP3_5_3">&#167;3.5.3</a>, <a href="25-cii.html#SP3_5_4_3">&#167;3.5.4.3</a>), 25/cp (<a href="25-cp.html#SP5_3_5">&#167;5.3.5</a>).</p>
<p class="endnote">The function Problems::quote_kind is used in <a href="#SP4">&#167;4</a>, 5/lp (<a href="5-lp.html#SP34_5">&#167;34.5</a>, <a href="5-lp.html#SP34_6">&#167;34.6</a>), 5/ins (<a href="5-ins.html#SP19_1">&#167;19.1</a>), 5/nv (<a href="5-nv.html#SP7_1">&#167;7.1</a>, <a href="5-nv.html#SP23">&#167;23</a>, <a href="5-nv.html#SP25_2">&#167;25.2</a>), 6/tur (<a href="6-tur.html#SP5">&#167;5</a>), 9/tc (<a href="9-tc.html#SP5_4_2_6">&#167;5.4.2.6</a>, <a href="9-tc.html#SP5_4_2_7">&#167;5.4.2.7</a>, <a href="9-tc.html#SP5_4_2_8">&#167;5.4.2.8</a>, <a href="9-tc.html#SP8_1">&#167;8.1</a>), 9/ma (<a href="9-ma.html#SP3_3_39_1">&#167;3.3.39.1</a>), 9/pk (<a href="9-pk.html#SP2_1">&#167;2.1</a>, <a href="9-pk.html#SP4_4">&#167;4.4</a>), 9/pd (<a href="9-pd.html#SP5_6_1">&#167;5.6.1</a>, <a href="9-pd.html#SP7_1_3">&#167;7.1.3</a>), 11/tc (<a href="11-tc.html#SP7_1">&#167;7.1</a>), 11/tcp (<a href="11-tcp.html#SP6_9">&#167;6.9</a>, <a href="11-tcp.html#SP6_10">&#167;6.10</a>, <a href="11-tcp.html#SP6_11">&#167;6.11</a>, <a href="11-tcp.html#SP10">&#167;10</a>, <a href="11-tcp.html#SP11">&#167;11</a>, <a href="11-tcp.html#SP11_3">&#167;11.3</a>, <a href="11-tcp.html#SP12">&#167;12</a>), 12/ter (<a href="12-ter.html#SP5_1">&#167;5.1</a>, <a href="12-ter.html#SP8_4">&#167;8.4</a>), 12/qr (<a href="12-qr.html#SP5">&#167;5</a>), 12/ca (<a href="12-ca.html#SP6_2">&#167;6.2</a>), 13/kak (<a href="13-kak.html#SP7">&#167;7</a>), 13/rsfk (<a href="13-rsfk.html#SP4_1">&#167;4.1</a>, <a href="13-rsfk.html#SP4_2">&#167;4.2</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP27">&#167;27</a>), 14/ds2 (<a href="14-ds2.html#SP10_1_1_3_1">&#167;10.1.1.3.1</a>, <a href="14-ds2.html#SP11_8_1">&#167;11.8.1</a>, <a href="14-ds2.html#SP11_9_1_1_2_2_2">&#167;11.9.1.1.2.2.2</a>, <a href="14-ds2.html#SP11_9_1_1_3_1_1">&#167;11.9.1.1.3.1.1</a>, <a href="14-ds2.html#SP11_9_1_1_5_2">&#167;11.9.1.1.5.2</a>, <a href="14-ds2.html#SP11_9_1_2_3_3">&#167;11.9.1.2.3.3</a>, <a href="14-ds2.html#SP11_9_1_2_4">&#167;11.9.1.2.4</a>, <a href="14-ds2.html#SP15_4">&#167;15.4</a>, <a href="14-ds2.html#SP19_1">&#167;19.1</a>, <a href="14-ds2.html#SP19_2">&#167;19.2</a>, <a href="14-ds2.html#SP19_2_1">&#167;19.2.1</a>, <a href="14-ds2.html#SP19_5_3_2">&#167;19.5.3.2</a>, <a href="14-ds2.html#SP19_6_1_1">&#167;19.6.1.1</a>, <a href="14-ds2.html#SP19_6_2_1">&#167;19.6.2.1</a>, <a href="14-ds2.html#SP19_6_2_2">&#167;19.6.2.2</a>), 15/vp (<a href="15-vp.html#SP5">&#167;5</a>), 15/cp (<a href="15-cp.html#SP3">&#167;3</a>), 15/tpr (<a href="15-tpr.html#SP5">&#167;5</a>), 15/spr2 (<a href="15-spr2.html#SP9_1">&#167;9.1</a>, <a href="15-spr2.html#SP9_2">&#167;9.2</a>), 15/pov (<a href="15-pov.html#SP4_1">&#167;4.1</a>), 16/in (<a href="16-in.html#SP14">&#167;14</a>), 18/lc (<a href="18-lc.html#SP8_2_1">&#167;8.2.1</a>), 19/tc (<a href="19-tc.html#SP6_1">&#167;6.1</a>, <a href="19-tc.html#SP14_1">&#167;14.1</a>, <a href="19-tc.html#SP15">&#167;15</a>, <a href="19-tc.html#SP15_6">&#167;15.6</a>), 19/tod (<a href="19-tod.html#SP6_2">&#167;6.2</a>, <a href="19-tod.html#SP6_3_3">&#167;6.3.3</a>), 20/eq (<a href="20-eq.html#SP41_4_1">&#167;41.4.1</a>, <a href="20-eq.html#SP41_4_2">&#167;41.4.2</a>, <a href="20-eq.html#SP47_3_2">&#167;47.3.2</a>), 21/rl (<a href="21-rl.html#SP15">&#167;15</a>, <a href="21-rl.html#SP18">&#167;18</a>), 22/pu (<a href="22-pu.html#SP20_1_1_2">&#167;20.1.1.2</a>), 25/ci (<a href="25-ci.html#SP3_1_1_2">&#167;3.1.1.2</a>), 25/cii (<a href="25-cii.html#SP3_2_1_1">&#167;3.2.1.1</a>, <a href="25-cii.html#SP3_1_1_4_7_1_2">&#167;3.1.1.4.7.1.2</a>, <a href="25-cii.html#SP3_5_3">&#167;3.5.3</a>, <a href="25-cii.html#SP3_5_4_3">&#167;3.5.4.3</a>), 25/cp (<a href="25-cp.html#SP5_3_5">&#167;5.3.5</a>).</p>
<p class="endnote">The function Problems::expand_kind appears nowhere else.</p>

View file

@ -460,13 +460,13 @@ scratch work-space which can be used in the compiled code.
<p class="endnote">The function LocalVariables::add_internal_local_as_symbol_noting is used in 12/cdp (<a href="12-cdp.html#SP2_1_5">&#167;2.1.5</a>).</p>
<p class="endnote">The function LocalVariables::add_named_call is used in <a href="#SP47">&#167;47</a>, 13/rsfk (<a href="13-rsfk.html#SP26_6_3">&#167;26.6.3</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>).</p>
<p class="endnote">The function LocalVariables::add_named_call is used in <a href="#SP47">&#167;47</a>, 13/rsfk (<a href="13-rsfk.html#SP25_6_3">&#167;25.6.3</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>).</p>
<p class="endnote">The function LocalVariables::add_named_call_as_symbol is used in 4/am (<a href="4-am.html#SP43">&#167;43</a>), 5/lp (<a href="5-lp.html#SP27">&#167;27</a>), 6/rlt (<a href="6-rlt.html#SP15_2">&#167;15.2</a>, <a href="6-rlt.html#SP17">&#167;17</a>, <a href="6-rlt.html#SP29_1">&#167;29.1</a>), 6/nv (<a href="6-nv.html#SP18_1">&#167;18.1</a>, <a href="6-nv.html#SP18_2">&#167;18.2</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 12/cad (<a href="12-cad.html#SP5">&#167;5</a>), 12/cdp (<a href="12-cdp.html#SP2_1_5">&#167;2.1.5</a>, <a href="12-cdp.html#SP2_1_5_2">&#167;2.1.5.2</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</a>, <a href="13-rsfk.html#SP26_1">&#167;26.1</a>, <a href="13-rsfk.html#SP26_2">&#167;26.2</a>, <a href="13-rsfk.html#SP26_3">&#167;26.3</a>, <a href="13-rsfk.html#SP26_5">&#167;26.5</a>, <a href="13-rsfk.html#SP26_6_1">&#167;26.6.1</a>, <a href="13-rsfk.html#SP26_6_2">&#167;26.6.2</a>, <a href="13-rsfk.html#SP26_6_5">&#167;26.6.5</a>, <a href="13-rsfk.html#SP26_6_6">&#167;26.6.6</a>, <a href="13-rsfk.html#SP27">&#167;27</a>), 17/rs (<a href="17-rs.html#SP6_2">&#167;6.2</a>, <a href="17-rs.html#SP7_2">&#167;7.2</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 19/rsft (<a href="19-rsft.html#SP2">&#167;2</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>), 21/rb (<a href="21-rb.html#SP24_1_1">&#167;24.1.1</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">&#167;14.1</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/sv (<a href="21-sv.html#SP3">&#167;3</a>), 24/ch (<a href="24-ch.html#SP7">&#167;7</a>), 26/uo (<a href="26-uo.html#SP21_1">&#167;21.1</a>, <a href="26-uo.html#SP21_2">&#167;21.2</a>).</p>
<p class="endnote">The function LocalVariables::add_named_call_as_symbol is used in 4/am (<a href="4-am.html#SP43">&#167;43</a>), 5/lp (<a href="5-lp.html#SP27">&#167;27</a>), 6/rlt (<a href="6-rlt.html#SP15_2">&#167;15.2</a>, <a href="6-rlt.html#SP17">&#167;17</a>, <a href="6-rlt.html#SP29_1">&#167;29.1</a>), 6/nv (<a href="6-nv.html#SP18_1">&#167;18.1</a>, <a href="6-nv.html#SP18_2">&#167;18.2</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 12/cad (<a href="12-cad.html#SP5">&#167;5</a>), 12/cdp (<a href="12-cdp.html#SP2_1_5">&#167;2.1.5</a>, <a href="12-cdp.html#SP2_1_5_2">&#167;2.1.5.2</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</a>, <a href="13-rsfk.html#SP25_1">&#167;25.1</a>, <a href="13-rsfk.html#SP25_2">&#167;25.2</a>, <a href="13-rsfk.html#SP25_3">&#167;25.3</a>, <a href="13-rsfk.html#SP25_5">&#167;25.5</a>, <a href="13-rsfk.html#SP25_6_1">&#167;25.6.1</a>, <a href="13-rsfk.html#SP25_6_2">&#167;25.6.2</a>, <a href="13-rsfk.html#SP25_6_5">&#167;25.6.5</a>, <a href="13-rsfk.html#SP25_6_6">&#167;25.6.6</a>, <a href="13-rsfk.html#SP26">&#167;26</a>), 17/rs (<a href="17-rs.html#SP6_2">&#167;6.2</a>, <a href="17-rs.html#SP7_2">&#167;7.2</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 19/rsft (<a href="19-rsft.html#SP2">&#167;2</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>), 21/rb (<a href="21-rb.html#SP24_1_1">&#167;24.1.1</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">&#167;14.1</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/sv (<a href="21-sv.html#SP3">&#167;3</a>), 24/ch (<a href="24-ch.html#SP7">&#167;7</a>), 26/uo (<a href="26-uo.html#SP21_1">&#167;21.1</a>, <a href="26-uo.html#SP21_2">&#167;21.2</a>).</p>
<p class="endnote">The function LocalVariables::add_named_call_as_symbol_noting is used in 6/rlt (<a href="6-rlt.html#SP15_2">&#167;15.2</a>).</p>
<p class="endnote">The function LocalVariables::add_internal_local_c is used in <a href="#SP12">&#167;12</a>, <a href="#SP13">&#167;13</a>, 13/rsfk (<a href="13-rsfk.html#SP26_6_2">&#167;26.6.2</a>, <a href="13-rsfk.html#SP26_6_3">&#167;26.6.3</a>, <a href="13-rsfk.html#SP26_6_4">&#167;26.6.4</a>).</p>
<p class="endnote">The function LocalVariables::add_internal_local_c is used in <a href="#SP12">&#167;12</a>, <a href="#SP13">&#167;13</a>, 13/rsfk (<a href="13-rsfk.html#SP25_6_2">&#167;25.6.2</a>, <a href="13-rsfk.html#SP25_6_3">&#167;25.6.3</a>, <a href="13-rsfk.html#SP25_6_4">&#167;25.6.4</a>).</p>
<p class="endnote">The function LocalVariables::add_internal_local_c_as_symbol is used in 6/rlt (<a href="6-rlt.html#SP15">&#167;15</a>), 21/rb (<a href="21-rb.html#SP24_1_1">&#167;24.1.1</a>).</p>
@ -1648,9 +1648,9 @@ need in the compilation of any given routine:
<p class="endnote">The function LocalVariables::declare is used in 26/rt (<a href="26-rt.html#SP3">&#167;3</a>, <a href="26-rt.html#SP4">&#167;4</a>, <a href="26-rt.html#SP4_1_1">&#167;4.1.1</a>).</p>
<p class="endnote">The function LocalVariables::declare_this is used in <a href="#SP8">&#167;8</a>, <a href="#SP10">&#167;10</a>, <a href="#SP11">&#167;11</a>, <a href="#SP27">&#167;27</a>, <a href="#SP28">&#167;28</a>, <a href="#SP29">&#167;29</a>, <a href="#SP41">&#167;41</a>, <a href="#SP43">&#167;43</a>, <a href="#SP45">&#167;45</a>, 4/am (<a href="4-am.html#SP34_2">&#167;34.2</a>), 11/tr (<a href="11-tr.html#SP10">&#167;10</a>), 12/dtd (<a href="12-dtd.html#SP9">&#167;9</a>, <a href="12-dtd.html#SP23">&#167;23</a>, <a href="12-dtd.html#SP25">&#167;25</a>, <a href="12-dtd.html#SP26">&#167;26</a>, <a href="12-dtd.html#SP27">&#167;27</a>), 12/cad (<a href="12-cad.html#SP7">&#167;7</a>), 13/rsfk (<a href="13-rsfk.html#SP26_6_2">&#167;26.6.2</a>, <a href="13-rsfk.html#SP26_6_3">&#167;26.6.3</a>, <a href="13-rsfk.html#SP26_6_4">&#167;26.6.4</a>), 14/lv (<a href="14-lv.html#SP14_1">&#167;14.1</a>, <a href="14-lv.html#SP14_5">&#167;14.5</a>), 14/cn (<a href="14-cn.html#SP16_3">&#167;16.3</a>), 20/eq (<a href="20-eq.html#SP48">&#167;48</a>), 25/cii (<a href="25-cii.html#SP1_2_1">&#167;1.2.1</a>, <a href="25-cii.html#SP3_5_1">&#167;3.5.1</a>, <a href="25-cii.html#SP3_5_3">&#167;3.5.3</a>), 25/cp (<a href="25-cp.html#SP5_3_5">&#167;5.3.5</a>), 27/is (<a href="27-is.html#SP31_9">&#167;31.9</a>).</p>
<p class="endnote">The function LocalVariables::declare_this is used in <a href="#SP8">&#167;8</a>, <a href="#SP10">&#167;10</a>, <a href="#SP11">&#167;11</a>, <a href="#SP27">&#167;27</a>, <a href="#SP28">&#167;28</a>, <a href="#SP29">&#167;29</a>, <a href="#SP41">&#167;41</a>, <a href="#SP43">&#167;43</a>, <a href="#SP45">&#167;45</a>, 4/am (<a href="4-am.html#SP34_2">&#167;34.2</a>), 11/tr (<a href="11-tr.html#SP10">&#167;10</a>), 12/dtd (<a href="12-dtd.html#SP9">&#167;9</a>, <a href="12-dtd.html#SP23">&#167;23</a>, <a href="12-dtd.html#SP25">&#167;25</a>, <a href="12-dtd.html#SP26">&#167;26</a>, <a href="12-dtd.html#SP27">&#167;27</a>), 12/cad (<a href="12-cad.html#SP7">&#167;7</a>), 13/rsfk (<a href="13-rsfk.html#SP25_6_2">&#167;25.6.2</a>, <a href="13-rsfk.html#SP25_6_3">&#167;25.6.3</a>, <a href="13-rsfk.html#SP25_6_4">&#167;25.6.4</a>), 14/lv (<a href="14-lv.html#SP14_1">&#167;14.1</a>, <a href="14-lv.html#SP14_5">&#167;14.5</a>), 14/cn (<a href="14-cn.html#SP16_3">&#167;16.3</a>), 20/eq (<a href="20-eq.html#SP48">&#167;48</a>), 25/cii (<a href="25-cii.html#SP1_2_1">&#167;1.2.1</a>, <a href="25-cii.html#SP3_5_1">&#167;3.5.1</a>, <a href="25-cii.html#SP3_5_3">&#167;3.5.3</a>), 25/cp (<a href="25-cp.html#SP5_3_5">&#167;5.3.5</a>), 27/is (<a href="27-is.html#SP31_9">&#167;31.9</a>).</p>
<p class="endnote">The function LocalVariables::create_and_declare is used in 13/rsfk (<a href="13-rsfk.html#SP26_4_1">&#167;26.4.1</a>, <a href="13-rsfk.html#SP26_4_2">&#167;26.4.2</a>).</p>
<p class="endnote">The function LocalVariables::create_and_declare is used in 13/rsfk (<a href="13-rsfk.html#SP25_4_1">&#167;25.4.1</a>, <a href="13-rsfk.html#SP25_4_2">&#167;25.4.2</a>).</p>
<p class="inwebparagraph"><a id="SP48"></a><b>&#167;48. </b>Note that a deallocated "let" variable retains its most recent name.
</p>

View file

@ -189,7 +189,7 @@ behave more like dictionary words and the <code class="display"><span class="ext
<p class="inwebparagraph"></p>
<p class="endnote">The function CompiledText::from_wide_string is used in <a href="#SP5">&#167;5</a>, 5/lp (<a href="5-lp.html#SP27_3_1">&#167;27.3.1</a>), 13/rsfk (<a href="13-rsfk.html#SP26_3">&#167;26.3</a>), 17/tl (<a href="17-tl.html#SP14_1">&#167;14.1</a>).</p>
<p class="endnote">The function CompiledText::from_wide_string is used in <a href="#SP5">&#167;5</a>, 5/lp (<a href="5-lp.html#SP27_3_1">&#167;27.3.1</a>), 13/rsfk (<a href="13-rsfk.html#SP25_3">&#167;25.3</a>), 17/tl (<a href="17-tl.html#SP14_1">&#167;14.1</a>).</p>
<p class="endnote">The function CompiledText::from_wide_string_for_emission is used in 25/cii (<a href="25-cii.html#SP3_5_8_1">&#167;3.5.8.1</a>).</p>

View file

@ -36,7 +36,7 @@ an I6 routine. Sometimes that's in order to define a phrase, but often not.
<p class="inwebparagraph"></p>
<p class="endnote">The function Routines::begin is used in 4/am (<a href="4-am.html#SP34_2">&#167;34.2</a>, <a href="4-am.html#SP43">&#167;43</a>), 5/lp (<a href="5-lp.html#SP27">&#167;27</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP33">&#167;33</a>), 6/rlt (<a href="6-rlt.html#SP15">&#167;15</a>, <a href="6-rlt.html#SP15_2">&#167;15.2</a>, <a href="6-rlt.html#SP17">&#167;17</a>, <a href="6-rlt.html#SP29_1">&#167;29.1</a>, <a href="6-rlt.html#SP29_2">&#167;29.2</a>, <a href="6-rlt.html#SP29_3">&#167;29.3</a>, <a href="6-rlt.html#SP29_4">&#167;29.4</a>, <a href="6-rlt.html#SP29_5">&#167;29.5</a>, <a href="6-rlt.html#SP29_6">&#167;29.6</a>, <a href="6-rlt.html#SP30">&#167;30</a>), 6/nv (<a href="6-nv.html#SP18_1">&#167;18.1</a>, <a href="6-nv.html#SP18_2">&#167;18.2</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 12/cdp (<a href="12-cdp.html#SP2_1">&#167;2.1</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</a>, <a href="13-rsfk.html#SP26_1">&#167;26.1</a>, <a href="13-rsfk.html#SP26_2">&#167;26.2</a>, <a href="13-rsfk.html#SP26_3">&#167;26.3</a>, <a href="13-rsfk.html#SP26_4">&#167;26.4</a>, <a href="13-rsfk.html#SP26_5">&#167;26.5</a>, <a href="13-rsfk.html#SP26_6_1">&#167;26.6.1</a>, <a href="13-rsfk.html#SP26_6_2">&#167;26.6.2</a>, <a href="13-rsfk.html#SP26_6_3">&#167;26.6.3</a>, <a href="13-rsfk.html#SP26_6_4">&#167;26.6.4</a>, <a href="13-rsfk.html#SP26_6_5">&#167;26.6.5</a>, <a href="13-rsfk.html#SP26_6_6">&#167;26.6.6</a>, <a href="13-rsfk.html#SP27">&#167;27</a>), 15/ma (<a href="15-ma.html#SP13">&#167;13</a>), 17/tl (<a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP6_2">&#167;6.2</a>, <a href="17-rs.html#SP7_2">&#167;7.2</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 19/rsft (<a href="19-rsft.html#SP2">&#167;2</a>), 20/eq (<a href="20-eq.html#SP43">&#167;43</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>, <a href="21-rl.html#SP22_1">&#167;22.1</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">&#167;14.1</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/sv (<a href="21-sv.html#SP3">&#167;3</a>), 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP7">&#167;7</a>), 26/uo (<a href="26-uo.html#SP21_1">&#167;21.1</a>, <a href="26-uo.html#SP21_2">&#167;21.2</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>, <a href="26-ts.html#SP11">&#167;11</a>).</p>
<p class="endnote">The function Routines::begin is used in 4/am (<a href="4-am.html#SP34_2">&#167;34.2</a>, <a href="4-am.html#SP43">&#167;43</a>), 5/lp (<a href="5-lp.html#SP27">&#167;27</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP33">&#167;33</a>), 6/rlt (<a href="6-rlt.html#SP15">&#167;15</a>, <a href="6-rlt.html#SP15_2">&#167;15.2</a>, <a href="6-rlt.html#SP17">&#167;17</a>, <a href="6-rlt.html#SP29_1">&#167;29.1</a>, <a href="6-rlt.html#SP29_2">&#167;29.2</a>, <a href="6-rlt.html#SP29_3">&#167;29.3</a>, <a href="6-rlt.html#SP29_4">&#167;29.4</a>, <a href="6-rlt.html#SP29_5">&#167;29.5</a>, <a href="6-rlt.html#SP29_6">&#167;29.6</a>, <a href="6-rlt.html#SP30">&#167;30</a>), 6/nv (<a href="6-nv.html#SP18_1">&#167;18.1</a>, <a href="6-nv.html#SP18_2">&#167;18.2</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 12/cdp (<a href="12-cdp.html#SP2_1">&#167;2.1</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</a>, <a href="13-rsfk.html#SP25_1">&#167;25.1</a>, <a href="13-rsfk.html#SP25_2">&#167;25.2</a>, <a href="13-rsfk.html#SP25_3">&#167;25.3</a>, <a href="13-rsfk.html#SP25_4">&#167;25.4</a>, <a href="13-rsfk.html#SP25_5">&#167;25.5</a>, <a href="13-rsfk.html#SP25_6_1">&#167;25.6.1</a>, <a href="13-rsfk.html#SP25_6_2">&#167;25.6.2</a>, <a href="13-rsfk.html#SP25_6_3">&#167;25.6.3</a>, <a href="13-rsfk.html#SP25_6_4">&#167;25.6.4</a>, <a href="13-rsfk.html#SP25_6_5">&#167;25.6.5</a>, <a href="13-rsfk.html#SP25_6_6">&#167;25.6.6</a>, <a href="13-rsfk.html#SP26">&#167;26</a>), 15/ma (<a href="15-ma.html#SP13">&#167;13</a>), 17/tl (<a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP6_2">&#167;6.2</a>, <a href="17-rs.html#SP7_2">&#167;7.2</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 19/rsft (<a href="19-rsft.html#SP2">&#167;2</a>), 20/eq (<a href="20-eq.html#SP43">&#167;43</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>, <a href="21-rl.html#SP22_1">&#167;22.1</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">&#167;14.1</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/sv (<a href="21-sv.html#SP3">&#167;3</a>), 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP7">&#167;7</a>), 26/uo (<a href="26-uo.html#SP21_1">&#167;21.1</a>, <a href="26-uo.html#SP21_2">&#167;21.2</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>, <a href="26-ts.html#SP11">&#167;11</a>).</p>
<p class="endnote">The function Routines::begin_in_current_package is used in 21/rb (<a href="21-rb.html#SP24_1_1">&#167;24.1.1</a>).</p>
@ -134,9 +134,7 @@ create a new nonphrasal stack frame.
<span class="identifier">kernel_name</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"kernel"</span><span class="plain">, </span><span class="identifier">public_name</span><span class="plain">-</span><span class="element">&gt;eventual_owner</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">kernel_name</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="identifier">kernel_name</span><span class="plain"> = </span><span class="functiontext">InterNames::new_in</span><span class="plain">(</span><span class="constant">KERNEL_ROUTINE_INAMEF</span><span class="plain">, </span><span class="functiontext">InterNames::to_module</span><span class="plain">(</span><span class="identifier">public_name</span><span class="plain">));</span>
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"PN is %n\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">public_name</span><span class="plain">);</span>
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"Routine not in function"</span><span class="plain">);</span>
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"routine not housed in function"</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="functiontext">Packaging::house_with</span><span class="plain">(</span><span class="identifier">kernel_name</span><span class="plain">, </span><span class="identifier">public_name</span><span class="plain">);</span>
<span class="plain">}</span>
@ -162,7 +160,7 @@ create a new nonphrasal stack frame.
<p class="inwebparagraph"></p>
<p class="endnote">The function Routines::end is used in 4/am (<a href="4-am.html#SP34_2">&#167;34.2</a>, <a href="4-am.html#SP43">&#167;43</a>), 5/lp (<a href="5-lp.html#SP27">&#167;27</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP33">&#167;33</a>), 6/rlt (<a href="6-rlt.html#SP15">&#167;15</a>, <a href="6-rlt.html#SP15_2">&#167;15.2</a>, <a href="6-rlt.html#SP17">&#167;17</a>, <a href="6-rlt.html#SP29_1">&#167;29.1</a>, <a href="6-rlt.html#SP29_2">&#167;29.2</a>, <a href="6-rlt.html#SP29_3">&#167;29.3</a>, <a href="6-rlt.html#SP29_4">&#167;29.4</a>, <a href="6-rlt.html#SP29_5">&#167;29.5</a>, <a href="6-rlt.html#SP29_6">&#167;29.6</a>, <a href="6-rlt.html#SP30">&#167;30</a>), 6/nv (<a href="6-nv.html#SP18_1">&#167;18.1</a>, <a href="6-nv.html#SP18_2">&#167;18.2</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 12/cdp (<a href="12-cdp.html#SP2_1">&#167;2.1</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</a>, <a href="13-rsfk.html#SP26_1">&#167;26.1</a>, <a href="13-rsfk.html#SP26_2">&#167;26.2</a>, <a href="13-rsfk.html#SP26_3">&#167;26.3</a>, <a href="13-rsfk.html#SP26_4">&#167;26.4</a>, <a href="13-rsfk.html#SP26_5">&#167;26.5</a>, <a href="13-rsfk.html#SP26_6_1">&#167;26.6.1</a>, <a href="13-rsfk.html#SP26_6_2">&#167;26.6.2</a>, <a href="13-rsfk.html#SP26_6_3">&#167;26.6.3</a>, <a href="13-rsfk.html#SP26_6_4">&#167;26.6.4</a>, <a href="13-rsfk.html#SP26_6_5">&#167;26.6.5</a>, <a href="13-rsfk.html#SP26_6_6">&#167;26.6.6</a>, <a href="13-rsfk.html#SP27">&#167;27</a>), 15/ma (<a href="15-ma.html#SP13">&#167;13</a>), 17/tl (<a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP6_2">&#167;6.2</a>, <a href="17-rs.html#SP7_2">&#167;7.2</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 19/rsft (<a href="19-rsft.html#SP2">&#167;2</a>), 20/eq (<a href="20-eq.html#SP43">&#167;43</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>, <a href="21-rl.html#SP22_1">&#167;22.1</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">&#167;14.1</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/sv (<a href="21-sv.html#SP3">&#167;3</a>), 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP7">&#167;7</a>), 26/uo (<a href="26-uo.html#SP21_1">&#167;21.1</a>, <a href="26-uo.html#SP21_2">&#167;21.2</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>, <a href="26-ts.html#SP11">&#167;11</a>).</p>
<p class="endnote">The function Routines::end is used in 4/am (<a href="4-am.html#SP34_2">&#167;34.2</a>, <a href="4-am.html#SP43">&#167;43</a>), 5/lp (<a href="5-lp.html#SP27">&#167;27</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP33">&#167;33</a>), 6/rlt (<a href="6-rlt.html#SP15">&#167;15</a>, <a href="6-rlt.html#SP15_2">&#167;15.2</a>, <a href="6-rlt.html#SP17">&#167;17</a>, <a href="6-rlt.html#SP29_1">&#167;29.1</a>, <a href="6-rlt.html#SP29_2">&#167;29.2</a>, <a href="6-rlt.html#SP29_3">&#167;29.3</a>, <a href="6-rlt.html#SP29_4">&#167;29.4</a>, <a href="6-rlt.html#SP29_5">&#167;29.5</a>, <a href="6-rlt.html#SP29_6">&#167;29.6</a>, <a href="6-rlt.html#SP30">&#167;30</a>), 6/nv (<a href="6-nv.html#SP18_1">&#167;18.1</a>, <a href="6-nv.html#SP18_2">&#167;18.2</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 12/cdp (<a href="12-cdp.html#SP2_1">&#167;2.1</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</a>, <a href="13-rsfk.html#SP25_1">&#167;25.1</a>, <a href="13-rsfk.html#SP25_2">&#167;25.2</a>, <a href="13-rsfk.html#SP25_3">&#167;25.3</a>, <a href="13-rsfk.html#SP25_4">&#167;25.4</a>, <a href="13-rsfk.html#SP25_5">&#167;25.5</a>, <a href="13-rsfk.html#SP25_6_1">&#167;25.6.1</a>, <a href="13-rsfk.html#SP25_6_2">&#167;25.6.2</a>, <a href="13-rsfk.html#SP25_6_3">&#167;25.6.3</a>, <a href="13-rsfk.html#SP25_6_4">&#167;25.6.4</a>, <a href="13-rsfk.html#SP25_6_5">&#167;25.6.5</a>, <a href="13-rsfk.html#SP25_6_6">&#167;25.6.6</a>, <a href="13-rsfk.html#SP26">&#167;26</a>), 15/ma (<a href="15-ma.html#SP13">&#167;13</a>), 17/tl (<a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP6_2">&#167;6.2</a>, <a href="17-rs.html#SP7_2">&#167;7.2</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 19/rsft (<a href="19-rsft.html#SP2">&#167;2</a>), 20/eq (<a href="20-eq.html#SP43">&#167;43</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>, <a href="21-rl.html#SP22_1">&#167;22.1</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">&#167;14.1</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/sv (<a href="21-sv.html#SP3">&#167;3</a>), 22/pav (<a href="22-pav.html#SP9_2">&#167;9.2</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP7">&#167;7</a>), 26/uo (<a href="26-uo.html#SP21_1">&#167;21.1</a>, <a href="26-uo.html#SP21_2">&#167;21.2</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>, <a href="26-ts.html#SP11">&#167;11</a>).</p>
<p class="endnote">The function Routines::end_in_current_package is used in 21/rb (<a href="21-rb.html#SP24_1_5">&#167;24.1.5</a>), 25/cp (<a href="25-cp.html#SP3">&#167;3</a>).</p>

View file

@ -172,7 +172,7 @@ target VM are 16 or 32 bits wide:
<p class="inwebparagraph"></p>
<p class="endnote">The function VirtualMachines::is_16_bit is used in <a href="#SP9">&#167;9</a>, <a href="#SP19">&#167;19</a>, <a href="#SP21">&#167;21</a>, 5/lp (<a href="5-lp.html#SP12_2">&#167;12.2</a>, <a href="5-lp.html#SP18_3">&#167;18.3</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>), 13/rsfk (<a href="13-rsfk.html#SP18_1">&#167;18.1</a>, <a href="13-rsfk.html#SP21">&#167;21</a>), 25/cii (<a href="25-cii.html#SP3_5_8_3">&#167;3.5.8.3</a>).</p>
<p class="endnote">The function VirtualMachines::is_16_bit is used in <a href="#SP9">&#167;9</a>, <a href="#SP19">&#167;19</a>, <a href="#SP21">&#167;21</a>, 5/lp (<a href="5-lp.html#SP12_2">&#167;12.2</a>, <a href="5-lp.html#SP18_3">&#167;18.3</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>), 13/rsfk (<a href="13-rsfk.html#SP18_1">&#167;18.1</a>, <a href="13-rsfk.html#SP20">&#167;20</a>), 25/cii (<a href="25-cii.html#SP3_5_8_3">&#167;3.5.8.3</a>).</p>
<p class="inwebparagraph"><a id="SP8"></a><b>&#167;8. </b>Fundamental constants are emitted about our choice of virtual machine.
</p>
@ -358,7 +358,7 @@ at 15, but Glulx allows it to be set with an I6 memory setting.
<p class="inwebparagraph"></p>
<p class="endnote">The function VirtualMachines::supports is used in 13/rsfk (<a href="13-rsfk.html#SP28">&#167;28</a>), 20/eq (<a href="20-eq.html#SP41">&#167;41</a>).</p>
<p class="endnote">The function VirtualMachines::supports is used in 13/rsfk (<a href="13-rsfk.html#SP27">&#167;27</a>), 20/eq (<a href="20-eq.html#SP41">&#167;41</a>).</p>
<p class="inwebparagraph"><a id="SP12"></a><b>&#167;12. </b>When releasing a blorbed story file, the file extension depends on the
story file wrapped inside. (This is a dubious idea, in the opinion of

File diff suppressed because one or more lines are too long

View file

@ -18,6 +18,7 @@
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">this_mundane_package</span><span class="plain">;</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">this_exotic_package</span><span class="plain">;</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">any_package_of_this_type</span><span class="plain">;</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">any_enclosure</span><span class="plain">;</span>
<span class="plain">} </span><span class="reserved">location_requirement</span><span class="plain">;</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::blank</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
@ -26,6 +27,7 @@
<span class="identifier">req</span><span class="element">.this_mundane_package</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">req</span><span class="element">.this_exotic_package</span><span class="plain"> = -1;</span>
<span class="identifier">req</span><span class="element">.any_package_of_this_type</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">req</span><span class="element">.any_enclosure</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">req</span><span class="plain">;</span>
<span class="plain">}</span>
@ -53,6 +55,12 @@
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">req</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::any_enclosure</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">req</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::blank</span><span class="plain">();</span>
<span class="identifier">req</span><span class="element">.any_enclosure</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">req</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="functiontext">HierarchyLocations::this_package</span><span class="plain">(</span><span class="reserved">package_request</span><span class="plain"> *</span><span class="identifier">P</span><span class="plain">) {</span>
<span class="reserved">location_requirement</span><span class="plain"> </span><span class="identifier">req</span><span class="plain"> = </span><span class="functiontext">HierarchyLocations::blank</span><span class="plain">();</span>
<span class="identifier">req</span><span class="element">.this_mundane_package</span><span class="plain"> = </span><span class="identifier">P</span><span class="plain">;</span>
@ -265,21 +273,23 @@
<p class="endnote">The function HierarchyLocations::synoptic_submodule is used in 27/hr (<a href="27-hr.html#SP1_2">&#167;1.2</a>, <a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_10">&#167;1.10</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_18">&#167;1.18</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>).</p>
<p class="endnote">The function HierarchyLocations::any_package_of_type is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>).</p>
<p class="endnote">The function HierarchyLocations::any_package_of_type is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::this_package is used in 27/hr (<a href="27-hr.html#SP1_48">&#167;1.48</a>, <a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function HierarchyLocations::any_enclosure is used in 27/hr (<a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::this_exotic_package is used in 27/hr (<a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::this_package is used in 27/hr (<a href="27-hr.html#SP1_50">&#167;1.50</a>, <a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function HierarchyLocations::this_exotic_package is used in 27/hr (<a href="27-hr.html#SP1_48">&#167;1.48</a>).</p>
<p class="endnote">The function HierarchyLocations::new appears nowhere else.</p>
<p class="endnote">The function HierarchyLocations::con is used in 27/hr (<a href="27-hr.html#SP1_2">&#167;1.2</a>, <a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_10">&#167;1.10</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>, <a href="27-hr.html#SP1_48">&#167;1.48</a>, <a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function HierarchyLocations::con is used in 27/hr (<a href="27-hr.html#SP1_2">&#167;1.2</a>, <a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_10">&#167;1.10</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>, <a href="27-hr.html#SP1_48">&#167;1.48</a>, <a href="27-hr.html#SP1_50">&#167;1.50</a>, <a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function HierarchyLocations::package is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>).</p>
<p class="endnote">The function HierarchyLocations::make_as is used in 27/hr (<a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function HierarchyLocations::func is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_18">&#167;1.18</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::func is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_18">&#167;1.18</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>, <a href="27-hr.html#SP1_48">&#167;1.48</a>).</p>
<p class="endnote">The function HierarchyLocations::datum is used in 27/hr (<a href="27-hr.html#SP1_10">&#167;1.10</a>).</p>
@ -313,11 +323,8 @@
<span class="identifier">P</span><span class="plain">,</span>
<span class="identifier">NULL</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_name</span><span class="plain">) == 0) {</span>
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"********** %S\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">T</span><span class="plain">);</span>
<span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span>
<span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_name</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_name</span><span class="plain">) == 0) </span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_name</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">if</span><span class="plain"> (!</span><span class="identifier">Wordings::empty</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)) </span><span class="functiontext">InterNames::attach_memo</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">Str::len</span><span class="plain">(</span><span class="identifier">T</span><span class="plain">) &gt; 0) &amp;&amp; (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_name</span><span class="plain">)) </span><span class="functiontext">InterNames::translate</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">T</span><span class="plain">);</span>
@ -336,9 +343,17 @@
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">id</span><span class="plain"> &lt; 0) || (</span><span class="identifier">id</span><span class="plain"> &gt;= </span><span class="constant">MAX_HL</span><span class="plain">) || (</span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">] == </span><span class="identifier">NULL</span><span class="plain">))</span>
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"bad nrl ID"</span><span class="plain">);</span>
<span class="reserved">named_resource_location</span><span class="plain"> *</span><span class="identifier">nrl</span><span class="plain"> = </span><span class="identifier">nrls_indexed_by_id</span><span class="plain">[</span><span class="identifier">id</span><span class="plain">];</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements.any_package_of_this_type</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"NRL accessed inappropriately"</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">P</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) || (</span><span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;eventual_type</span><span class="plain"> != </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements.any_package_of_this_type</span><span class="plain">)) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"subpackage in wrong superpackage"</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no superpackage"</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;package_type</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"package_in_package used wrongly"</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements.any_package_of_this_type</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;eventual_type</span><span class="plain"> != </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements.any_package_of_this_type</span><span class="plain">)</span>
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"subpackage in wrong superpackage"</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;requirements.any_enclosure</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Inter::Symbols::read_annotation</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">-</span><span class="element">&gt;eventual_type</span><span class="plain">, </span><span class="identifier">ENCLOSING_IANN</span><span class="plain">) != 1)</span>
<span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"subpackage not in enclosing superpackage"</span><span class="plain">);</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"NRL accessed inappropriately"</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Packaging::request</span><span class="plain">(</span><span class="functiontext">InterNames::one_off</span><span class="plain">(</span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;access_name</span><span class="plain">, </span><span class="identifier">P</span><span class="plain">), </span><span class="identifier">P</span><span class="plain">, </span><span class="identifier">nrl</span><span class="plain">-</span><span class="element">&gt;package_type</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
@ -412,7 +427,7 @@
<p class="endnote">The function HierarchyLocations::index_ap appears nowhere else.</p>
<p class="endnote">The function HierarchyLocations::ap is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>).</p>
<p class="endnote">The function HierarchyLocations::ap is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function HierarchyLocations::attach_new_package is used in 27/hr (<a href="27-hr.html#SP5">&#167;5</a>).</p>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -155,13 +155,13 @@
<p class="endnote">The function Packaging::stateless is used in 15/epv (<a href="15-epv.html#SP2">&#167;2</a>).</p>
<p class="endnote">The function Packaging::home_of is used in 12/cdp (<a href="12-cdp.html#SP5">&#167;5</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 27/hr (<a href="27-hr.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Packaging::home_of is used in 12/cdp (<a href="12-cdp.html#SP5">&#167;5</a>), 27/in (<a href="27-in.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 27/hr (<a href="27-hr.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Packaging::enter_home_of is used in 6/bp (<a href="6-bp.html#SP42">&#167;42</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>, <a href="6-rlt.html#SP15_1">&#167;15.1</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">&#167;2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP26">&#167;26</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">&#167;1.1.2</a>), 17/tl (<a href="17-tl.html#SP14_1">&#167;14.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP7_3">&#167;7.3</a>), 18/lc (<a href="18-lc.html#SP12_1">&#167;12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">&#167;1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">&#167;1.2</a>, <a href="19-rsft.html#SP1_3">&#167;1.3</a>), 21/rl2 (<a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>, <a href="21-ac.html#SP8">&#167;8</a>, <a href="21-ac.html#SP14">&#167;14</a>), 22/cs (<a href="22-cs.html#SP8">&#167;8</a>), 22/pav (<a href="22-pav.html#SP8_1">&#167;8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP8">&#167;8</a>), 26/vm (<a href="26-vm.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21">&#167;21</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/jl (<a href="26-jl.html#SP6">&#167;6</a>), 26/rt (<a href="26-rt.html#SP1">&#167;1</a>), 26/iti (<a href="26-iti.html#SP10">&#167;10</a>), 26/pl (<a href="26-pl.html#SP12">&#167;12</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hr (<a href="27-hr.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Packaging::enter_home_of is used in 6/bp (<a href="6-bp.html#SP42">&#167;42</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>, <a href="6-rlt.html#SP15_1">&#167;15.1</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">&#167;2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">&#167;1.1.2</a>), 17/tl (<a href="17-tl.html#SP14_1">&#167;14.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>, <a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP8_1">&#167;8.1</a>, <a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP7_3">&#167;7.3</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>, <a href="18-lc.html#SP12_1">&#167;12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">&#167;1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">&#167;1.2</a>, <a href="19-rsft.html#SP1_3">&#167;1.3</a>), 21/rl2 (<a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>, <a href="21-ac.html#SP8">&#167;8</a>, <a href="21-ac.html#SP14">&#167;14</a>), 22/cs (<a href="22-cs.html#SP8">&#167;8</a>), 22/pav (<a href="22-pav.html#SP8_1">&#167;8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP8">&#167;8</a>), 26/vm (<a href="26-vm.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21">&#167;21</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/jl (<a href="26-jl.html#SP6">&#167;6</a>), 26/rt (<a href="26-rt.html#SP1">&#167;1</a>), 26/iti (<a href="26-iti.html#SP10">&#167;10</a>), 26/pl (<a href="26-pl.html#SP12">&#167;12</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hr (<a href="27-hr.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Packaging::enter_current_enclosure is used in 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>), 17/tl (<a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP8_1">&#167;8.1</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>).</p>
<p class="endnote">The function Packaging::enter_current_enclosure appears nowhere else.</p>
<p class="endnote">The function Packaging::current_enclosure is used in 12/dtd (<a href="12-dtd.html#SP4">&#167;4</a>), 13/rsfk (<a href="13-rsfk.html#SP19">&#167;19</a>), 17/tl (<a href="17-tl.html#SP7">&#167;7</a>, <a href="17-tl.html#SP10_2_1">&#167;10.2.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP8">&#167;8</a>, <a href="17-ts.html#SP8_1">&#167;8.1</a>), 18/lc (<a href="18-lc.html#SP5">&#167;5</a>, <a href="18-lc.html#SP11">&#167;11</a>), 26/iti (<a href="26-iti.html#SP9">&#167;9</a>).</p>
<p class="endnote">The function Packaging::current_enclosure is used in 17/tl (<a href="17-tl.html#SP10_2_1">&#167;10.2.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP8">&#167;8</a>, <a href="17-ts.html#SP8_1">&#167;8.1</a>), 18/lc (<a href="18-lc.html#SP5">&#167;5</a>), 26/iti (<a href="26-iti.html#SP9">&#167;9</a>), 27/hr (<a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The structure packaging_state is private to this section.</p>
@ -236,9 +236,9 @@
<p class="inwebparagraph"></p>
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">&#167;5</a>, 5/ins (<a href="5-ins.html#SP34">&#167;34</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 13/rsfk (<a href="13-rsfk.html#SP16_1">&#167;16.1</a>, <a href="13-rsfk.html#SP26">&#167;26</a>), 15/epv (<a href="15-epv.html#SP2">&#167;2</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP7_1">&#167;7.1</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 21/rl2 (<a href="21-rl2.html#SP20">&#167;20</a>), 22/ph (<a href="22-ph.html#SP12">&#167;12</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">&#167;5</a>, 5/ins (<a href="5-ins.html#SP34">&#167;34</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 13/rsfk (<a href="13-rsfk.html#SP16_1">&#167;16.1</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/epv (<a href="15-epv.html#SP2">&#167;2</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP7_1">&#167;7.1</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 21/rl2 (<a href="21-rl2.html#SP20">&#167;20</a>), 22/ph (<a href="22-ph.html#SP12">&#167;12</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::exit is used in 5/ins (<a href="5-ins.html#SP34">&#167;34</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP42">&#167;42</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>, <a href="6-rlt.html#SP15_1">&#167;15.1</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">&#167;2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP16_1">&#167;16.1</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP26">&#167;26</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">&#167;1.1.2</a>, <a href="15-epv.html#SP2">&#167;2</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 17/tl (<a href="17-tl.html#SP14_1">&#167;14.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>, <a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP8_1">&#167;8.1</a>, <a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP7_1">&#167;7.1</a>, <a href="17-rs.html#SP7_3">&#167;7.3</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>, <a href="18-lc.html#SP12_1">&#167;12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">&#167;1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">&#167;1.2</a>, <a href="19-rsft.html#SP1_3">&#167;1.3</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 21/rl2 (<a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>, <a href="21-ac.html#SP8">&#167;8</a>, <a href="21-ac.html#SP14">&#167;14</a>), 22/cs (<a href="22-cs.html#SP8">&#167;8</a>), 22/ph (<a href="22-ph.html#SP12">&#167;12</a>), 22/pav (<a href="22-pav.html#SP8_1">&#167;8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP8">&#167;8</a>), 26/vm (<a href="26-vm.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21">&#167;21</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/jl (<a href="26-jl.html#SP6">&#167;6</a>), 26/rt (<a href="26-rt.html#SP4">&#167;4</a>), 26/iti (<a href="26-iti.html#SP10">&#167;10</a>), 26/pl (<a href="26-pl.html#SP12">&#167;12</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 27/hr (<a href="27-hr.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Packaging::exit is used in 5/ins (<a href="5-ins.html#SP34">&#167;34</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP42">&#167;42</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>, <a href="6-rlt.html#SP15_1">&#167;15.1</a>, <a href="6-rlt.html#SP20">&#167;20</a>, <a href="6-rlt.html#SP20_3">&#167;20.3</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</a>), 12/cdp (<a href="12-cdp.html#SP2_1_1">&#167;2.1.1</a>), 13/kak (<a href="13-kak.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP16_1">&#167;16.1</a>, <a href="13-rsfk.html#SP16_2">&#167;16.2</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/epv (<a href="15-epv.html#SP1_1_2">&#167;1.1.2</a>, <a href="15-epv.html#SP2">&#167;2</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 17/tl (<a href="17-tl.html#SP14_1">&#167;14.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>, <a href="17-tl.html#SP16">&#167;16</a>), 17/ts (<a href="17-ts.html#SP8_1">&#167;8.1</a>, <a href="17-ts.html#SP11">&#167;11</a>), 17/rs (<a href="17-rs.html#SP6_1">&#167;6.1</a>, <a href="17-rs.html#SP7_1">&#167;7.1</a>, <a href="17-rs.html#SP7_3">&#167;7.3</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>, <a href="18-lc.html#SP12_1">&#167;12.1</a>), 19/rsft (<a href="19-rsft.html#SP1_1_1_1">&#167;1.1.1.1</a>, <a href="19-rsft.html#SP1_1_1_1_1">&#167;1.1.1.1.1</a>, <a href="19-rsft.html#SP1_2">&#167;1.2</a>, <a href="19-rsft.html#SP1_3">&#167;1.3</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 21/rl2 (<a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/fao (<a href="21-fao.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>, <a href="21-ac.html#SP8">&#167;8</a>, <a href="21-ac.html#SP14">&#167;14</a>), 22/cs (<a href="22-cs.html#SP8">&#167;8</a>), 22/ph (<a href="22-ph.html#SP12">&#167;12</a>), 22/pav (<a href="22-pav.html#SP8_1">&#167;8.1</a>), 22/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP8">&#167;8</a>), 26/vm (<a href="26-vm.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21">&#167;21</a>), 26/lt (<a href="26-lt.html#SP4_1">&#167;4.1</a>), 26/jl (<a href="26-jl.html#SP6">&#167;6</a>), 26/rt (<a href="26-rt.html#SP4">&#167;4</a>), 26/iti (<a href="26-iti.html#SP10">&#167;10</a>), 26/pl (<a href="26-pl.html#SP12">&#167;12</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 27/hr (<a href="27-hr.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Packaging::incarnate is used in 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>).</p>
@ -498,15 +498,15 @@
<p class="endnote">The function Packaging::register_ptype is used in 27/hl (<a href="27-hl.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Packaging::supply_iname is used in 6/rlt (<a href="6-rlt.html#SP15_1_2">&#167;15.1.2</a>), 12/dtd (<a href="12-dtd.html#SP4">&#167;4</a>), 13/rsfk (<a href="13-rsfk.html#SP19">&#167;19</a>), 17/tl (<a href="17-tl.html#SP7">&#167;7</a>, <a href="17-tl.html#SP10_2_1">&#167;10.2.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>), 18/lc (<a href="18-lc.html#SP11">&#167;11</a>), 27/ei (<a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Packaging::supply_iname is used in 17/tl (<a href="17-tl.html#SP10_2_1">&#167;10.2.1</a>, <a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>), 27/ei (<a href="27-ei.html#SP4">&#167;4</a>), 27/hl (<a href="27-hl.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Packaging::function is used in 12/dtd (<a href="12-dtd.html#SP4">&#167;4</a>), 17/tl (<a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::function is used in 17/tl (<a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/ts (<a href="17-ts.html#SP5">&#167;5</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::function_text is used in 21/rl (<a href="21-rl.html#SP9">&#167;9</a>), 27/hl (<a href="27-hl.html#SP1">&#167;1</a>, <a href="27-hl.html#SP1_1">&#167;1.1</a>).</p>
<p class="endnote">The function Packaging::datum_text is used in 27/hl (<a href="27-hl.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::house is used in 13/rsfk (<a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>, <a href="13-rsfk.html#SP26">&#167;26</a>), 15/ep (<a href="15-ep.html#SP4">&#167;4</a>), 27/in (<a href="27-in.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function Packaging::house is used in 13/rsfk (<a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>, <a href="13-rsfk.html#SP25">&#167;25</a>), 15/ep (<a href="15-ep.html#SP4">&#167;4</a>), 27/in (<a href="27-in.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function Packaging::house_with is used in 26/rt (<a href="26-rt.html#SP4">&#167;4</a>), 27/ei (<a href="27-ei.html#SP4">&#167;4</a>), 27/in (<a href="27-in.html#SP4">&#167;4</a>).</p>

View file

@ -64,15 +64,15 @@
<p class="inwebparagraph"></p>
<p class="endnote">The function Translation::same is used in 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 27/hr (<a href="27-hr.html#SP1_2">&#167;1.2</a>, <a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_10">&#167;1.10</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>, <a href="27-hr.html#SP1_48">&#167;1.48</a>, <a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function Translation::same is used in 27/hl (<a href="27-hl.html#SP1">&#167;1</a>), 27/hr (<a href="27-hr.html#SP1_2">&#167;1.2</a>, <a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_10">&#167;1.10</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_48">&#167;1.48</a>, <a href="27-hr.html#SP1_50">&#167;1.50</a>, <a href="27-hr.html#SP5">&#167;5</a>).</p>
<p class="endnote">The function Translation::uniqued is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>).</p>
<p class="endnote">The function Translation::uniqued is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_16">&#167;1.16</a>, <a href="27-hr.html#SP1_20">&#167;1.20</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function Translation::to is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_10">&#167;1.10</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_18">&#167;1.18</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_46">&#167;1.46</a>).</p>
<p class="endnote">The function Translation::to is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_10">&#167;1.10</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_18">&#167;1.18</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_26">&#167;1.26</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_38">&#167;1.38</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>, <a href="27-hr.html#SP1_42">&#167;1.42</a>, <a href="27-hr.html#SP1_48">&#167;1.48</a>).</p>
<p class="endnote">The function Translation::to_uniqued appears nowhere else.</p>
<p class="endnote">The function Translation::generate is used in 27/hr (<a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>).</p>
<p class="endnote">The function Translation::generate is used in 27/hr (<a href="27-hr.html#SP1_4">&#167;1.4</a>, <a href="27-hr.html#SP1_6">&#167;1.6</a>, <a href="27-hr.html#SP1_8">&#167;1.8</a>, <a href="27-hr.html#SP1_12">&#167;1.12</a>, <a href="27-hr.html#SP1_14">&#167;1.14</a>, <a href="27-hr.html#SP1_22">&#167;1.22</a>, <a href="27-hr.html#SP1_24">&#167;1.24</a>, <a href="27-hr.html#SP1_28">&#167;1.28</a>, <a href="27-hr.html#SP1_30">&#167;1.30</a>, <a href="27-hr.html#SP1_34">&#167;1.34</a>, <a href="27-hr.html#SP1_36">&#167;1.36</a>, <a href="27-hr.html#SP1_44">&#167;1.44</a>).</p>
<p class="endnote">The function Translation::generate_in is used in 27/hr (<a href="27-hr.html#SP1_32">&#167;1.32</a>, <a href="27-hr.html#SP1_40">&#167;1.40</a>).</p>

View file

@ -461,7 +461,7 @@ turns up subsequently, e.g., in response to
<p class="endnote">The function Instances::get_name is used in <a href="#SP15_1">&#167;15.1</a>, <a href="#SP15_2">&#167;15.2</a>, <a href="#SP27">&#167;27</a>, <a href="#SP37">&#167;37</a>, <a href="#SP38_2">&#167;38.2</a>, 2/sq (<a href="2-sq.html#SP2">&#167;2</a>), 5/ipw (<a href="5-ipw.html#SP2_2_1">&#167;2.2.1</a>), 8/ed2 (<a href="8-ed2.html#SP3_2_1_7_2">&#167;3.2.1.7.2</a>, <a href="8-ed2.html#SP3_2_1_7_4">&#167;3.2.1.7.4</a>), 9/rpt (<a href="9-rpt.html#SP9_5_1">&#167;9.5.1</a>), 9/tc (<a href="9-tc.html#SP5_4_1">&#167;5.4.1</a>), 14/rv (<a href="14-rv.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Instances::get_name_in_play is used in <a href="#SP25">&#167;25</a>, 13/rsfk (<a href="13-rsfk.html#SP26_3">&#167;26.3</a>).</p>
<p class="endnote">The function Instances::get_name_in_play is used in <a href="#SP25">&#167;25</a>, 13/rsfk (<a href="13-rsfk.html#SP25_3">&#167;25.3</a>).</p>
<p class="endnote">The function Instances::full_name_includes appears nowhere else.</p>
@ -469,7 +469,7 @@ turns up subsequently, e.g., in response to
<p class="endnote">The function Instances::identifier appears nowhere else.</p>
<p class="endnote">The function Instances::iname is used in <a href="#SP6">&#167;6</a>, <a href="#SP15">&#167;15</a>, <a href="#SP29">&#167;29</a>, <a href="#SP34">&#167;34</a>, 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP26_3">&#167;26.3</a>), 26/iti (<a href="26-iti.html#SP9">&#167;9</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>).</p>
<p class="endnote">The function Instances::iname is used in <a href="#SP6">&#167;6</a>, <a href="#SP15">&#167;15</a>, <a href="#SP29">&#167;29</a>, <a href="#SP34">&#167;34</a>, 13/rsfk (<a href="13-rsfk.html#SP4">&#167;4</a>, <a href="13-rsfk.html#SP25_3">&#167;25.3</a>), 26/iti (<a href="26-iti.html#SP9">&#167;9</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>).</p>
<p class="inwebparagraph"><a id="SP15"></a><b>&#167;15. Writer. </b></p>
@ -751,7 +751,7 @@ are allowed to refine it. Such revisions are allowed to specialise the kind
<p class="inwebparagraph"></p>
<p class="endnote">The function Instances::count is used in <a href="#SP37">&#167;37</a>, 5/ipw (<a href="5-ipw.html#SP3_3">&#167;3.3</a>), 13/rsfk (<a href="13-rsfk.html#SP26">&#167;26</a>), 13/ki (<a href="13-ki.html#SP4">&#167;4</a>), 19/tb (<a href="19-tb.html#SP26_3">&#167;26.3</a>).</p>
<p class="endnote">The function Instances::count is used in <a href="#SP37">&#167;37</a>, 5/ipw (<a href="5-ipw.html#SP3_3">&#167;3.3</a>), 13/rsfk (<a href="13-rsfk.html#SP25">&#167;25</a>), 13/ki (<a href="13-ki.html#SP4">&#167;4</a>), 19/tb (<a href="19-tb.html#SP26_3">&#167;26.3</a>).</p>
<p class="inwebparagraph"><a id="SP23"></a><b>&#167;23. Connections. </b>Some of Inform's plugins give special meanings to particular kinds, in such
a way that they need to be given additional structure. For example, the

View file

@ -2531,7 +2531,7 @@ note that the following uses the raw text of the word.
<p class="inwebparagraph"></p>
<p class="endnote">The function LiteralPatterns::printing_routine is used in 13/rsfk (<a href="13-rsfk.html#SP26_2">&#167;26.2</a>).</p>
<p class="endnote">The function LiteralPatterns::printing_routine is used in 13/rsfk (<a href="13-rsfk.html#SP25_2">&#167;25.2</a>).</p>
<p class="inwebparagraph"><a id="SP27_1"></a><b>&#167;27.1. </b>This was at one time a more complicated criterion, which masked bugs in
the sorting measure.
@ -4189,7 +4189,7 @@ set.
<p class="inwebparagraph"></p>
<p class="endnote">The function LiteralPatterns::list_of_literal_forms is used in <a href="#SP2">&#167;2</a>, <a href="#SP34">&#167;34</a>, 13/rsfk (<a href="13-rsfk.html#SP26_2">&#167;26.2</a>), 13/ki (<a href="13-ki.html#SP1_8">&#167;1.8</a>, <a href="13-ki.html#SP5_1_1">&#167;5.1.1</a>).</p>
<p class="endnote">The function LiteralPatterns::list_of_literal_forms is used in <a href="#SP2">&#167;2</a>, <a href="#SP34">&#167;34</a>, 13/rsfk (<a href="13-rsfk.html#SP25_2">&#167;25.2</a>), 13/ki (<a href="13-ki.html#SP1_8">&#167;1.8</a>, <a href="13-ki.html#SP5_1_1">&#167;5.1.1</a>).</p>
<hr class="tocbar">
<ul class="toc"><li><i>(This section begins Chapter 5: Nouns.)</i></li><li><a href="5-tod.html">Continue with 'Times of Day'</a></li></ul><hr class="tocbar">

View file

@ -609,6 +609,7 @@ there's very little to say.
<span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">rvalue</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nlv</span><span class="plain">-</span><span class="element">&gt;housed_in_variables_array</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">)</span>
<span class="identifier">rvalue</span><span class="plain"> = </span><span class="functiontext">NonlocalVariables::identifier</span><span class="plain">(</span><span class="identifier">nlv</span><span class="plain">);</span>
<span class="identifier">LOG</span><span class="plain">(</span><span class="string">"Doing stuff with %W %n %S as rvalue\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">nlv</span><span class="plain">-</span><span class="element">&gt;name</span><span class="plain">, </span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">rvalue</span><span class="plain">);</span>
<span class="functiontext">Emit::variable</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">nlv</span><span class="plain">-</span><span class="element">&gt;nlv_kind</span><span class="plain">, </span><span class="identifier">v1</span><span class="plain">, </span><span class="identifier">v2</span><span class="plain">, </span><span class="identifier">rvalue</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">nlv</span><span class="plain"> == </span><span class="identifier">command_prompt_VAR</span><span class="plain">) {</span>
<span class="reserved">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="functiontext">Routines::begin</span><span class="plain">(</span><span class="functiontext">Hierarchy::find</span><span class="plain">(</span><span class="constant">COMMANDPROMPTTEXT_HL</span><span class="plain">));</span>

View file

@ -67,13 +67,13 @@ it's convenient to associate them with nametags.
<p class="endnote">The function UseNouns::identifier is used in 5/ins (<a href="5-ins.html#SP14">&#167;14</a>), 5/ipw (<a href="5-ipw.html#SP3_1">&#167;3.1</a>, <a href="5-ipw.html#SP3_5">&#167;3.5</a>).</p>
<p class="endnote">The function UseNouns::iname is used in 5/ins (<a href="5-ins.html#SP14">&#167;14</a>), 13/rsfk (<a href="13-rsfk.html#SP25">&#167;25</a>).</p>
<p class="endnote">The function UseNouns::iname is used in 5/ins (<a href="5-ins.html#SP14">&#167;14</a>), 13/rsfk (<a href="13-rsfk.html#SP24">&#167;24</a>).</p>
<p class="endnote">The function UseNouns::iname_set is used in 13/rsfk (<a href="13-rsfk.html#SP25">&#167;25</a>).</p>
<p class="endnote">The function UseNouns::iname_set is used in 13/rsfk (<a href="13-rsfk.html#SP24">&#167;24</a>).</p>
<p class="endnote">The function UseNouns::noun_compose_identifier is used in 5/ins (<a href="5-ins.html#SP14">&#167;14</a>).</p>
<p class="endnote">The function UseNouns::noun_impose_identifier is used in 13/rsfk (<a href="13-rsfk.html#SP25">&#167;25</a>).</p>
<p class="endnote">The function UseNouns::noun_impose_identifier is used in 13/rsfk (<a href="13-rsfk.html#SP24">&#167;24</a>).</p>
<p class="endnote">The function UseNouns::noun_set_I6_representation is used in <a href="#SP2_1">&#167;2.1</a>.</p>

View file

@ -1395,8 +1395,7 @@ logical properties of the two terms of the BP being defined.
<pre class="displaydefn">
<span class="reserved">binary_predicate</span><span class="plain"> *</span><span class="identifier">dbp</span><span class="plain"> = </span><span class="identifier">bp</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;right_way_round</span><span class="plain"> == </span><span class="identifier">FALSE</span><span class="plain">) </span><span class="identifier">dbp</span><span class="plain"> = </span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;reversal</span><span class="plain">;</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">bm_symb</span><span class="plain"> = </span><span class="functiontext">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;bp_package</span><span class="plain">, </span><span class="constant">MISC_PR_COUNTER</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="functiontext">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">bm_symb</span><span class="plain">), </span><span class="identifier">MAKE_NAME_UNIQUE</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">bm_symb</span><span class="plain"> = </span><span class="functiontext">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="constant">ABILITIES_HL</span><span class="plain">, </span><span class="identifier">bp</span><span class="plain">-</span><span class="element">&gt;bp_package</span><span class="plain">);</span>
<span class="functiontext">Emit::sum_constant_begin</span><span class="plain">(</span><span class="identifier">bm_symb</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">RELS_TEST_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"no RELS symbols yet"</span><span class="plain">);</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">RELS_TEST_iname</span><span class="plain">);</span>

View file

@ -331,8 +331,7 @@ make that explicit: for instance, "taking" becomes "the taking action".
<span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;translated</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_package</span><span class="plain"> = </span><span class="identifier">Hierarchy::local_package</span><span class="plain">(</span><span class="identifier">ACTIONS_HAP</span><span class="plain">);</span>
<span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_base_iname</span><span class="plain"> = </span><span class="identifier">InterNames::new</span><span class="plain">(</span><span class="identifier">ACTION_BASE_INAMEF</span><span class="plain">);</span>
<span class="identifier">InterNames::attach_memo</span><span class="plain">(</span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_base_iname</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_base_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_with_memo</span><span class="plain">(</span><span class="identifier">ACTION_BASE_NAME_HL</span><span class="plain">, </span><span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;an_package</span><span class="plain">, </span><span class="identifier">W</span><span class="plain">);</span>
<span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;use_verb_routine_in_I6_library</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;check_rules</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">an</span><span class="plain">-</span><span class="element">&gt;carry_out_rules</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>

View file

@ -2081,9 +2081,10 @@ and in this case we therefore ignore <code class="display"><span class="extract"
<pre class="display">
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">PL::Actions::Patterns::as_stored_action</span><span class="plain">(</span><span class="identifier">value_holster</span><span class="plain"> *</span><span class="identifier">VH</span><span class="plain">, </span><span class="reserved">action_pattern</span><span class="plain"> *</span><span class="identifier">ap</span><span class="plain">) {</span>
<span class="identifier">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="identifier">Packaging::enter_current_enclosure</span><span class="plain">();</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="identifier">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="identifier">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="identifier">Hierarchy::package_in_enclosure</span><span class="plain">(</span><span class="identifier">BLOCK_CONSTANTS_HAP</span><span class="plain">);</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">N</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">BLOCK_CONSTANT_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="identifier">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="identifier">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">);</span>
<span class="identifier">Emit::named_late_array_begin</span><span class="plain">(</span><span class="identifier">N</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="identifier">Kinds::RunTime::emit_block_value_header</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">, </span><span class="identifier">FALSE</span><span class="plain">, 6);</span>
<span class="reserved">action_name</span><span class="plain"> *</span><span class="identifier">an</span><span class="plain"> = </span><span class="functiontext">PL::Actions::Lists::get_singleton_action</span><span class="plain">(</span><span class="identifier">ap</span><span class="plain">-</span><span class="element">&gt;action</span><span class="plain">);</span>
@ -2118,8 +2119,9 @@ and in this case we therefore ignore <code class="display"><span class="extract"
<span class="identifier">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">Instances::iname</span><span class="plain">(</span><span class="identifier">I_yourself</span><span class="plain">));</span>
<span class="identifier">Emit::array_numeric_entry</span><span class="plain">((</span><span class="identifier">inter_t</span><span class="plain">) </span><span class="identifier">request_bits</span><span class="plain">);</span>
<span class="identifier">Emit::array_numeric_entry</span><span class="plain">(0);</span>
<span class="identifier">Kinds::RunTime::end_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</span><span class="plain">);</span>
<span class="identifier">Emit::array_end</span><span class="plain">();</span>
<span class="identifier">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">N</span><span class="plain">) </span><span class="identifier">InterNames::holster</span><span class="plain">(</span><span class="identifier">VH</span><span class="plain">, </span><span class="identifier">N</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">PL::Actions::Patterns::emit_pattern_match</span><span class="plain">(</span><span class="reserved">action_pattern</span><span class="plain"> </span><span class="identifier">ap</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">naming_mode</span><span class="plain">) {</span>

View file

@ -965,9 +965,8 @@ next priority, and so on up the hierarchy.
<span class="functiontext">PL::Parsing::Lines::reset_labels</span><span class="plain">();</span>
<span class="reserved">switch</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">-</span><span class="element">&gt;gv_is</span><span class="plain">) {</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">GV_IS_COMMAND</span><span class="plain">: {</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">array_iname</span><span class="plain"> = </span><span class="identifier">InterNames::new</span><span class="plain">(</span><span class="identifier">VERB_DECLARATION_ARRAY_INAMEF</span><span class="plain">);</span>
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">PR</span><span class="plain"> = </span><span class="identifier">Hierarchy::synoptic_package</span><span class="plain">(</span><span class="identifier">COMMANDS_HAP</span><span class="plain">);</span>
<span class="identifier">Packaging::house</span><span class="plain">(</span><span class="identifier">array_iname</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">array_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">VERB_DECLARATION_ARRAY_HL</span><span class="plain">, </span><span class="identifier">PR</span><span class="plain">);</span>
<span class="identifier">packaging_state</span><span class="plain"> </span><span class="identifier">save</span><span class="plain"> = </span><span class="identifier">Packaging::enter_home_of</span><span class="plain">(</span><span class="identifier">array_iname</span><span class="plain">);</span>
<span class="functiontext">PL::Parsing::Verbs::gv_compile_Verb_directive_header</span><span class="plain">(</span><span class="identifier">gv</span><span class="plain">, </span><span class="identifier">array_iname</span><span class="plain">);</span>
<span class="functiontext">PL::Parsing::Verbs::gv_compile_lines</span><span class="plain">(</span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">gv</span><span class="plain">);</span>

View file

@ -409,11 +409,8 @@ we overwrite that with the new (presumably meaningful) one.
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="functiontext">Verbs::form_iname</span><span class="plain">(</span><span class="reserved">verb_form</span><span class="plain"> *</span><span class="identifier">vf</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;vf_iname</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) {</span>
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">R</span><span class="plain"> = </span><span class="functiontext">Verbs::verb_package</span><span class="plain">(</span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;underlying_verb</span><span class="plain">, </span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;where_vf_created</span><span class="plain">);</span>
<span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;vf_iname</span><span class="plain"> =</span>
<span class="identifier">Packaging::function</span><span class="plain">(</span>
<span class="identifier">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">R</span><span class="plain">, </span><span class="identifier">FORM_PR_COUNTER</span><span class="plain">),</span>
<span class="identifier">R</span><span class="plain">,</span>
<span class="identifier">InterNames::new</span><span class="plain">(</span><span class="identifier">CONJUGATE_VERB_FORM_INAMEF</span><span class="plain">));</span>
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">R2</span><span class="plain"> = </span><span class="identifier">Hierarchy::package_within</span><span class="plain">(</span><span class="identifier">VERB_FORMS_HAP</span><span class="plain">, </span><span class="identifier">R</span><span class="plain">);</span>
<span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;vf_iname</span><span class="plain"> = </span><span class="identifier">Hierarchy::make_iname_in</span><span class="plain">(</span><span class="identifier">FORM_FN_HL</span><span class="plain">, </span><span class="identifier">R2</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;vf_iname</span><span class="plain">;</span>
<span class="plain">}</span>

View file

@ -56,9 +56,8 @@ pcalc_prop_deferral *Calculus::Deferrals::new_deferred_proposition(pcalc_prop *p
pdef->reason = reason;
pdef->deferred_from = current_sentence;
pdef->rtp_iname = NULL;
pdef->ppd_iname = Packaging::function(Packaging::supply_iname(Packaging::current_enclosure(), PROPOSITION_PR_COUNTER), Packaging::current_enclosure(), NULL);
Inter::Symbols::set_flag(InterNames::to_symbol(pdef->ppd_iname), MAKE_NAME_UNIQUE);
package_request *PR = Hierarchy::package_in_enclosure(PROPOSITIONS_HAP);
pdef->ppd_iname = Hierarchy::make_iname_in(PROPOSITION_HL, PR);
if (no_further_deferrals) internal_error("Too late now to defer propositions");
return pdef;

View file

@ -77,17 +77,21 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
(Kinds::get_construct(K) == CON_phrase) ||
(Kinds::get_construct(K) == CON_relation)) {
if (Kinds::get_construct(K) == CON_list_of) {
packaging_state save = Packaging::enter_current_enclosure();
inter_name *N = Kinds::RunTime::begin_block_constant(K);
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
packaging_state save = Packaging::enter_home_of(N);
Emit::named_late_array_begin(N, K_value);
inter_name *rks_symb = Kinds::RunTime::compile_default_value_inner(K);
Emit::array_iname_entry(rks_symb);
Emit::array_numeric_entry(0);
Kinds::RunTime::end_block_constant(K);
Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else if (Kinds::Compare::eq(K, K_stored_action)) {
packaging_state save = Packaging::enter_current_enclosure();
inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action);
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
packaging_state save = Packaging::enter_home_of(N);
Emit::named_late_array_begin(N, K_value);
Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
Emit::array_iname_entry(PL::Actions::double_sharp(PL::Actions::Wait()));
Emit::array_numeric_entry(0);
@ -100,14 +104,16 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
#endif
Emit::array_numeric_entry(0);
Emit::array_numeric_entry(0);
Kinds::RunTime::end_block_constant(K_stored_action);
Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else if (Kinds::get_construct(K) == CON_relation) {
packaging_state save = Packaging::enter_current_enclosure();
inter_name *N = Kinds::RunTime::begin_block_constant(K);
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
packaging_state save = Packaging::enter_home_of(N);
Emit::named_late_array_begin(N, K_value);
Relations::compile_blank_relation(K);
Kinds::RunTime::end_block_constant(K);
Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else {
@ -126,11 +132,13 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
}
if (Kinds::Compare::eq(K, K_text)) {
packaging_state save = Packaging::enter_current_enclosure();
inter_name *N = Kinds::RunTime::begin_block_constant(K);
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
packaging_state save = Packaging::enter_home_of(N);
Emit::named_late_array_begin(N, K_value);
Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL));
Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
Kinds::RunTime::end_block_constant(K);
Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
return TRUE;
@ -578,15 +586,16 @@ compile under Inform 6.
rks->kind_described = K;
rks->make_default = FALSE;
rks->default_requested_here = NULL;
rks->rks_iname = InterNames::new(KIND_ID_INAMEF);
package_request *PR = Kinds::Behaviour::package(K);
Packaging::house(rks->rks_iname, PR);
// rks->rks_iname = InterNames::new(KIND_ID_INAMEF);
// Packaging::house(rks->rks_iname, PR);
TEMPORARY_TEXT(TEMP);
Kinds::Textual::write(TEMP, K);
wording W = Feeds::feed_stream(TEMP);
rks->rks_iname = Hierarchy::make_iname_with_memo(KIND_HL, PR, W);
DISCARD_TEXT(TEMP);
InterNames::attach_memo(rks->rks_iname, W);
InterNames::to_symbol(rks->rks_iname);
// InterNames::attach_memo(rks->rks_iname, W);
// InterNames::to_symbol(rks->rks_iname);
rks->rks_dv_iname = Hierarchy::make_iname_in(DEFAULT_VALUE_HL, PR);
@ It's convenient to combine this system with one which constructs default
@ -805,18 +814,6 @@ has essentially no memory constraints compared with the Z-machine.
LOG("Providing for a total heap of %d, given requirement of %d\n",
max_heap, total_heap_allocation);
@ =
inter_name *Kinds::RunTime::begin_block_constant(kind *K) {
inter_name *N = Packaging::supply_iname(Packaging::current_enclosure(), BLOCK_CONSTANT_PR_COUNTER);
Inter::Symbols::set_flag(InterNames::to_symbol(N), MAKE_NAME_UNIQUE);
Emit::named_late_array_begin(N, K_value);
return N;
}
void Kinds::RunTime::end_block_constant(kind *K) {
Emit::array_end();
}
@ The following routine both compiles code to create a pointer value, and
also increments the heap allocation suitably. Each pointer-value kind comes
with an estimate of its likely size needs -- its exact size needs if it is

View file

@ -105,10 +105,9 @@ literal_text *Strings::TextLiterals::lt_new(int w1, int colour) {
x->unexpanded = FALSE;
x->small_block_array_needed = FALSE;
x->lt_sba_iname = NULL;
x->lt_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER);
Inter::Symbols::set_flag(InterNames::to_symbol(x->lt_iname), MAKE_NAME_UNIQUE);
package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
x->lt_iname = Hierarchy::make_iname_in(TEXT_LITERAL_HL, PR);
Emit::annotate_symbol_i(InterNames::to_symbol(x->lt_iname), TEXT_LITERAL_IANN, 1);
InterNames::to_symbol(x->lt_iname);
if ((wn_quote_suppressed >= 0) && (w1 == wn_quote_suppressed)) x->unexpanded = TRUE;
return x;
}
@ -340,15 +339,17 @@ void Strings::TextLiterals::compile_small_block(OUTPUT_STREAM, literal_text *lt)
literal_text *Strings::TextLiterals::compile_literal_sb(value_holster *VH, wording W) {
literal_text *lt = NULL;
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
packaging_state save = Packaging::enter_current_enclosure();
inter_name *N = Kinds::RunTime::begin_block_constant(K_text);
if (N) InterNames::holster(VH, N);
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
packaging_state save = Packaging::enter_home_of(N);
Emit::named_late_array_begin(N, K_value);
lt = Strings::TextLiterals::compile_literal(NULL, FALSE, W);
Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL));
if (lt == NULL) Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
else Emit::array_iname_entry(lt->lt_iname);
Kinds::RunTime::end_block_constant(K_text);
Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else {
lt = Strings::TextLiterals::compile_literal(VH, TRUE, W);
}

View file

@ -162,13 +162,15 @@ void Strings::TextSubstitutions::text_substitution_cue(value_holster *VH, wordin
text_substitution *ts = Strings::TextSubstitutions::new_text_substitution(W, phsf,
adopted_rule_for_compilation, adopted_marker_for_compilation, Packaging::current_enclosure());
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
packaging_state save = Packaging::enter_current_enclosure();
inter_name *N = Kinds::RunTime::begin_block_constant(K_text);
if (N) InterNames::holster(VH, N);
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
packaging_state save = Packaging::enter_home_of(N);
Emit::named_late_array_begin(N, K_value);
Emit::array_iname_entry(Hierarchy::find(CONSTANT_PACKED_TEXT_STORAGE_HL));
Emit::array_iname_entry(ts->ts_routine_iname);
Kinds::RunTime::end_block_constant(K_text);
Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else {
inter_name *tin = Strings::TextSubstitutions::text_substitution_iname(ts);
if (Holsters::data_acceptable(VH)) {

View file

@ -258,12 +258,14 @@ inter_name *Lists::compile_literal_list(wording W) {
int incipit = Wordings::first_wn(W);
literal_list *ll = Lists::find_list_at(incipit+1);
if (ll) {
kind *K = Lists::kind_of_ll(ll, FALSE);
packaging_state save = Packaging::enter_current_enclosure();
inter_name *N = Kinds::RunTime::begin_block_constant(K);
Lists::kind_of_ll(ll, FALSE);
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
packaging_state save = Packaging::enter_home_of(N);
Emit::named_late_array_begin(N, K_value);
Emit::array_iname_entry(Lists::iname(ll));
Emit::array_numeric_entry(0);
Kinds::RunTime::end_block_constant(K);
Emit::array_end();
Packaging::exit(save);
return N;
}
@ -272,8 +274,8 @@ inter_name *Lists::compile_literal_list(wording W) {
inter_name *Lists::iname(literal_list *ll) {
if (ll->ll_iname == NULL) {
ll->ll_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER);
Inter::Symbols::set_flag(InterNames::to_symbol(ll->ll_iname), MAKE_NAME_UNIQUE);
package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
ll->ll_iname = Hierarchy::make_iname_in(LIST_LITERAL_HL, PR);
}
return ll->ll_iname;
}

View file

@ -87,9 +87,7 @@ void Routines::end_in_current_package(void) {
kernel_name = InterNames::one_off(I"kernel", public_name->eventual_owner);
Inter::Symbols::set_flag(InterNames::to_symbol(kernel_name), MAKE_NAME_UNIQUE);
} else {
kernel_name = InterNames::new_in(KERNEL_ROUTINE_INAMEF, InterNames::to_module(public_name));
LOG("PN is %n\n", public_name);
internal_error("Routine not in function");
internal_error("routine not housed in function");
}
Packaging::house_with(kernel_name, public_name);
}

View file

@ -973,8 +973,7 @@ inter_symbol *Emit::block(inter_name *iname) {
inter_name *block_iname = NULL;
if (Packaging::houseed_in_function(iname))
block_iname = Packaging::supply_iname(iname->eventual_owner, BLOCK_PR_COUNTER);
else
block_iname = InterNames::new_in(ROUTINE_BLOCK_INAMEF, InterNames::to_module(iname));
else internal_error("routine outside function package");
Packaging::house_with(block_iname, iname);
inter_symbol *rsymb = Emit::package(block_iname, code_packagetype, NULL);

View file

@ -8,6 +8,7 @@ typedef struct location_requirement {
struct package_request *this_mundane_package;
int this_exotic_package;
struct inter_symbol *any_package_of_this_type;
int any_enclosure;
} location_requirement;
location_requirement HierarchyLocations::blank(void) {
@ -16,6 +17,7 @@ location_requirement HierarchyLocations::blank(void) {
req.this_mundane_package = NULL;
req.this_exotic_package = -1;
req.any_package_of_this_type = NULL;
req.any_enclosure = FALSE;
return req;
}
@ -43,6 +45,12 @@ location_requirement HierarchyLocations::any_package_of_type(text_stream *ptype_
return req;
}
location_requirement HierarchyLocations::any_enclosure(void) {
location_requirement req = HierarchyLocations::blank();
req.any_enclosure = TRUE;
return req;
}
location_requirement HierarchyLocations::this_package(package_request *P) {
location_requirement req = HierarchyLocations::blank();
req.this_mundane_package = P;
@ -251,11 +259,8 @@ inter_name *HierarchyLocations::find_in_package(int id, package_request *P, word
P,
NULL);
} else {
if (Str::len(nrl->access_name) == 0) {
LOG("********** %S\n", T);
iname = InterNames::one_off(T, P);
} else
iname = InterNames::one_off(nrl->access_name, P);
if (Str::len(nrl->access_name) == 0) iname = InterNames::one_off(T, P);
else iname = InterNames::one_off(nrl->access_name, P);
}
if (!Wordings::empty(W)) InterNames::attach_memo(iname, W);
if ((Str::len(T) > 0) && (nrl->access_name)) InterNames::translate(iname, T);
@ -266,9 +271,17 @@ package_request *HierarchyLocations::package_in_package(int id, package_request
if ((id < 0) || (id >= MAX_HL) || (nrls_indexed_by_id[id] == NULL))
internal_error("bad nrl ID");
named_resource_location *nrl = nrls_indexed_by_id[id];
if (nrl->requirements.any_package_of_this_type == NULL) internal_error("NRL accessed inappropriately");
if ((P == NULL) || (P->eventual_type != nrl->requirements.any_package_of_this_type)) internal_error("subpackage in wrong superpackage");
if (P == NULL) internal_error("no superpackage");
if (nrl->package_type == NULL) internal_error("package_in_package used wrongly");
if (nrl->requirements.any_package_of_this_type) {
if (P->eventual_type != nrl->requirements.any_package_of_this_type)
internal_error("subpackage in wrong superpackage");
} else if (nrl->requirements.any_enclosure) {
if (Inter::Symbols::read_annotation(P->eventual_type, ENCLOSING_IANN) != 1)
internal_error("subpackage not in enclosing superpackage");
} else internal_error("NRL accessed inappropriately");
return Packaging::request(InterNames::one_off(nrl->access_name, P), P, nrl->package_type);
}

View file

@ -4,11 +4,7 @@
@e BLOCK_CONSTANT_PR_COUNTER from 0
@e BLOCK_PR_COUNTER
@e FORM_PR_COUNTER
@e INLINE_PR_COUNTER
@e LITERAL_PR_COUNTER
@e MISC_PR_COUNTER
@e PROPOSITION_PR_COUNTER
@e SUBSTITUTION_PR_COUNTER
@e SUBSTITUTIONF_PR_COUNTER
@ -51,6 +47,7 @@ void Hierarchy::establish(void) {
@<Establish rules@>;
@<Establish tables@>;
@<Establish variables@>;
@<Establish enclosed matter@>;
@<The rest@>;
@<Establish template resources@>;
@ -137,6 +134,7 @@ void Hierarchy::establish(void) {
@e MISTAKEACTION_HL
@e ACTIONS_HAP
@e ACTION_BASE_NAME_HL
@e CHECK_RB_HL
@e CARRY_OUT_RB_HL
@e REPORT_RB_HL
@ -159,6 +157,7 @@ void Hierarchy::establish(void) {
location_requirement local_actions = HierarchyLocations::local_submodule(actions);
HierarchyLocations::ap(ACTIONS_HAP, local_actions, I"action", I"_action");
location_requirement in_action = HierarchyLocations::any_package_of_type(I"_action");
HierarchyLocations::con(ACTION_BASE_NAME_HL, NULL, Translation::generate(ACTION_BASE_INAMEF), in_action);
HierarchyLocations::package(CHECK_RB_HL, I"check_rb", I"_rulebook", in_action);
HierarchyLocations::package(CARRY_OUT_RB_HL, I"carry_out_rb", I"_rulebook", in_action);
HierarchyLocations::package(REPORT_RB_HL, I"report_rb", I"_rulebook", in_action);
@ -294,6 +293,8 @@ void Hierarchy::establish(void) {
@e MODAL_CONJUGATION_FN_HL
@e VERBS_HAP
@e NONMODAL_CONJUGATION_FN_HL
@e VERB_FORMS_HAP
@e FORM_FN_HL
@e CONJUGATION_FN_HL
@<Establish conjugations@> =
@ -312,6 +313,9 @@ void Hierarchy::establish(void) {
HierarchyLocations::ap(VERBS_HAP, local_conjugations, I"verb", I"_verb");
location_requirement in_verb = HierarchyLocations::any_package_of_type(I"_verb");
HierarchyLocations::func(NONMODAL_CONJUGATION_FN_HL, I"conjugation_fn", Translation::generate(CONJUGATE_VERB_ROUTINE_INAMEF), in_verb);
HierarchyLocations::ap(VERB_FORMS_HAP, in_verb, I"form", I"_verb_form");
location_requirement in_verb_form = HierarchyLocations::any_package_of_type(I"_verb_form");
HierarchyLocations::func(FORM_FN_HL, I"form_fn", Translation::uniqued(), in_verb_form);
@h Equations.
@ -400,6 +404,7 @@ void Hierarchy::establish(void) {
@e INTERNALTESTCASES_HL
@e COMMAND_PR_COUNTER
@e COMMANDS_HAP
@e VERB_DECLARATION_ARRAY_HL
@<Establish grammar@> =
submodule_identity *grammar = Packaging::register_submodule(I"grammar");
@ -459,6 +464,8 @@ void Hierarchy::establish(void) {
HierarchyLocations::func(TESTSCRIPTSUB_HL, I"action_fn", Translation::to(I"TestScriptSub"), synoptic_grammar);
HierarchyLocations::func(INTERNALTESTCASES_HL, I"run_tests_fn", Translation::to(I"InternalTestCases"), synoptic_grammar);
HierarchyLocations::ap(COMMANDS_HAP, synoptic_grammar, I"command", I"_command");
location_requirement in_command = HierarchyLocations::any_package_of_type(I"_command");
HierarchyLocations::func(VERB_DECLARATION_ARRAY_HL, NULL, Translation::generate(VERB_DECLARATION_ARRAY_INAMEF), in_command);
@h Instances.
@ -524,6 +531,7 @@ void Hierarchy::establish(void) {
@e K_TYPELESS_STRING_HL
@e KIND_HAP
@e KIND_HL
@e DEFAULT_VALUE_HL
@e DECREMENT_FN_HL
@e INCREMENT_FN_HL
@ -558,12 +566,13 @@ void Hierarchy::establish(void) {
location_requirement local_kinds = HierarchyLocations::local_submodule(kinds);
HierarchyLocations::ap(KIND_HAP, local_kinds, I"kind", I"_kind");
location_requirement in_kind = HierarchyLocations::any_package_of_type(I"_kind");
HierarchyLocations::con(KIND_HL, NULL, Translation::generate(KIND_ID_INAMEF), in_kind);
HierarchyLocations::con(DEFAULT_VALUE_HL, I"default_value", Translation::uniqued(), in_kind);
HierarchyLocations::con(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
HierarchyLocations::con(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
HierarchyLocations::con(PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind);
HierarchyLocations::con(PRINT_DASH_FN_HL, I"print_fn", Translation::generate(PRINTING_ROUTINE_INAMEF), in_kind);
HierarchyLocations::con(RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(PRINT_DASH_FN_HL, I"print_fn", Translation::generate(PRINTING_ROUTINE_INAMEF), in_kind);
HierarchyLocations::func(RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(DEFAULT_CLOSURE_FN_HL, I"default_closure_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(GPR_FN_HL, I"gpr_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(INSTANCE_GPR_FN_HL, I"instance_gpr_fn", Translation::uniqued(), in_kind);
@ -665,6 +674,7 @@ void Hierarchy::establish(void) {
@e RELATIONS_HAP
@e RELATION_RECORD_HL
@e BITMAP_HL
@e ABILITIES_HL
@e ROUTE_CACHE_HL
@e HANDLER_FN_HL
@e RELATION_INITIALISER_FN_HL
@ -707,6 +717,7 @@ void Hierarchy::establish(void) {
location_requirement in_relation = HierarchyLocations::any_package_of_type(I"_relation");
HierarchyLocations::con(RELATION_RECORD_HL, NULL, Translation::generate(RELATION_RECORD_INAMEF), in_relation);
HierarchyLocations::con(BITMAP_HL, I"as_constant", Translation::uniqued(), in_relation);
HierarchyLocations::con(ABILITIES_HL, I"abilities", Translation::uniqued(), in_relation);
HierarchyLocations::con(ROUTE_CACHE_HL, I"route_cache", Translation::uniqued(), in_relation);
HierarchyLocations::func(HANDLER_FN_HL, I"handler_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(RELATION_INITIALISER_FN_HL, I"relation_initialiser_fn", Translation::uniqued(), in_relation);
@ -829,6 +840,29 @@ void Hierarchy::establish(void) {
location_requirement in_variable = HierarchyLocations::any_package_of_type(I"_variable");
HierarchyLocations::con(VARIABLE_HL, NULL, Translation::generate(VARIABLE_INAMEF), in_variable);
@h Enclosed matter.
@e LITERALS_HAP
@e TEXT_LITERAL_HL
@e LIST_LITERAL_HL
@e PROPOSITIONS_HAP
@e PROPOSITION_HL
@e BLOCK_CONSTANTS_HAP
@e BLOCK_CONSTANT_HL
@<Establish enclosed matter@> =
location_requirement in_any_enclosure = HierarchyLocations::any_enclosure();
HierarchyLocations::ap(LITERALS_HAP, in_any_enclosure, I"literal", I"_literal");
location_requirement in_literal = HierarchyLocations::any_package_of_type(I"_literal");
HierarchyLocations::con(TEXT_LITERAL_HL, I"text", Translation::uniqued(), in_literal);
HierarchyLocations::con(LIST_LITERAL_HL, I"list", Translation::uniqued(), in_literal);
HierarchyLocations::ap(PROPOSITIONS_HAP, in_any_enclosure, I"proposition", I"_proposition");
location_requirement in_proposition = HierarchyLocations::any_package_of_type(I"_proposition");
HierarchyLocations::func(PROPOSITION_HL, I"prop", Translation::uniqued(), in_proposition);
HierarchyLocations::ap(BLOCK_CONSTANTS_HAP, in_any_enclosure, I"block_constant", I"_block_constant");
location_requirement in_block_constant = HierarchyLocations::any_package_of_type(I"_block_constant");
HierarchyLocations::con(BLOCK_CONSTANT_HL, I"bc", Translation::uniqued(), in_block_constant);
@
@e K_OBJECT_XPACKAGE from 0
@ -1479,6 +1513,10 @@ package_request *Hierarchy::local_package(int hap_id) {
return HierarchyLocations::attach_new_package(Modules::find(current_sentence), NULL, hap_id);
}
package_request *Hierarchy::package_in_enclosure(int hap_id) {
return HierarchyLocations::attach_new_package(NULL, Packaging::current_enclosure(), hap_id);
}
package_request *Hierarchy::package_within(int hap_id, package_request *super) {
return HierarchyLocations::attach_new_package(NULL, super, hap_id);
}

View file

@ -440,7 +440,11 @@ inter_name *InterNames::new_overridden(int fnum, text_stream *identifier) {
inter_name *InterNames::new_derived(int fnum, inter_name *from) {
inter_name_family *F = InterNames::get_family(fnum);
if (F->fusage != DERIVED_FUSAGE) internal_error("not a derived family");
if (from->family != F->derivative_of) internal_error("derived from name of wrong family");
// if (from->family != F->derivative_of) {
// LOG("From = %n in $X\n", from, Packaging::home_of(from));
// LOG("From family %S but derivative should be of %S\n", from->family->family_name, F->derivative_of->family_name);
// internal_error("derived from name of wrong family");
// }
inter_name *N = InterNames::new_in_space(InterNames::root(), F, TRUE);
Packaging::house_with(N, from);
N->derived_from = from;

View file

@ -429,6 +429,7 @@ int NonlocalVariables::SUBJ_compile_all(void) {
text_stream *rvalue = NULL;
if (nlv->housed_in_variables_array == FALSE)
rvalue = NonlocalVariables::identifier(nlv);
LOG("Doing stuff with %W %n %S as rvalue\n", nlv->name, iname, rvalue);
Emit::variable(iname, nlv->nlv_kind, v1, v2, rvalue);
if (nlv == command_prompt_VAR) {
packaging_state save = Routines::begin(Hierarchy::find(COMMANDPROMPTTEXT_HL));

View file

@ -1007,8 +1007,7 @@ void Relations::compile_relation_records(void) {
@<Write the permissions field of the relation record@> =
binary_predicate *dbp = bp;
if (bp->right_way_round == FALSE) dbp = bp->reversal;
inter_name *bm_symb = Packaging::supply_iname(bp->bp_package, MISC_PR_COUNTER);
Inter::Symbols::set_flag(InterNames::to_symbol(bm_symb), MAKE_NAME_UNIQUE);
inter_name *bm_symb = Hierarchy::make_iname_in(ABILITIES_HL, bp->bp_package);
Emit::sum_constant_begin(bm_symb, K_value);
if (RELS_TEST_iname == NULL) internal_error("no RELS symbols yet");
Emit::array_iname_entry(RELS_TEST_iname);

View file

@ -1634,9 +1634,10 @@ int PL::Actions::Patterns::compile_pattern_match_clause_inner(int f,
@ =
void PL::Actions::Patterns::as_stored_action(value_holster *VH, action_pattern *ap) {
packaging_state save = Packaging::enter_current_enclosure();
inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action);
if (N) InterNames::holster(VH, N);
package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
packaging_state save = Packaging::enter_home_of(N);
Emit::named_late_array_begin(N, K_value);
Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
action_name *an = PL::Actions::Lists::get_singleton_action(ap->action);
@ -1671,8 +1672,9 @@ void PL::Actions::Patterns::as_stored_action(value_holster *VH, action_pattern *
Emit::array_iname_entry(Instances::iname(I_yourself));
Emit::array_numeric_entry((inter_t) request_bits);
Emit::array_numeric_entry(0);
Kinds::RunTime::end_block_constant(K_stored_action);
Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
}
void PL::Actions::Patterns::emit_pattern_match(action_pattern ap, int naming_mode) {

View file

@ -233,8 +233,7 @@ action_name *PL::Actions::act_new(wording W, int implemented_by_I7) {
an->translated = FALSE;
an->an_package = Hierarchy::local_package(ACTIONS_HAP);
an->an_base_iname = InterNames::new(ACTION_BASE_INAMEF);
InterNames::attach_memo(an->an_base_iname, W);
an->an_base_iname = Hierarchy::make_iname_with_memo(ACTION_BASE_NAME_HL, an->an_package, W);
an->use_verb_routine_in_I6_library = TRUE;
an->check_rules = NULL;
an->carry_out_rules = NULL;

View file

@ -760,9 +760,8 @@ void PL::Parsing::Verbs::compile(grammar_verb *gv) {
PL::Parsing::Lines::reset_labels();
switch(gv->gv_is) {
case GV_IS_COMMAND: {
inter_name *array_iname = InterNames::new(VERB_DECLARATION_ARRAY_INAMEF);
package_request *PR = Hierarchy::synoptic_package(COMMANDS_HAP);
Packaging::house(array_iname, PR);
inter_name *array_iname = Hierarchy::make_iname_in(VERB_DECLARATION_ARRAY_HL, PR);
packaging_state save = Packaging::enter_home_of(array_iname);
PL::Parsing::Verbs::gv_compile_Verb_directive_header(gv, array_iname);
PL::Parsing::Verbs::gv_compile_lines(NULL, gv);

View file

@ -282,11 +282,8 @@ we overwrite that with the new (presumably meaningful) one.
inter_name *Verbs::form_iname(verb_form *vf) {
if (vf->vf_iname == NULL) {
package_request *R = Verbs::verb_package(vf->underlying_verb, vf->where_vf_created);
vf->vf_iname =
Packaging::function(
Packaging::supply_iname(R, FORM_PR_COUNTER),
R,
InterNames::new(CONJUGATE_VERB_FORM_INAMEF));
package_request *R2 = Hierarchy::package_within(VERB_FORMS_HAP, R);
vf->vf_iname = Hierarchy::make_iname_in(FORM_FN_HL, R2);
}
return vf->vf_iname;
}