1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-08 10:04:21 +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;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;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;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="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="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">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">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> <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--> <!--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="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> <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="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> <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_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="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">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">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">Kinds::RunTime::begin_block_constant</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">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="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_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">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="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">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="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">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">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</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">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_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> <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="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">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="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">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="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">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">Kinds::RunTime::begin_block_constant</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">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">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="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">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="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="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">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">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">Kinds::RunTime::begin_block_constant</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">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">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">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="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">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> <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 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> <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="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 <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: 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::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, <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 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 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 <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; 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;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;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;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="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">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">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">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="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="comment">InterNames::attach_memo(rks-&gt;rks_iname, W);</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::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> <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> </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::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 class="inwebparagraph"><a id="SP15"></a><b>&#167;15. </b>Convenient storage for some names.
</p> </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="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> <p class="inwebparagraph"><a id="SP19"></a><b>&#167;19. </b>The following routine both compiles code to create a pointer value, and
<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
also increments the heap allocation suitably. Each pointer-value kind comes 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 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 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="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"> <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="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. each such kind, and needed at run-time.
</p> </p>
@ -1225,11 +1212,11 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p> <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="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"> <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="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"> <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="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="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="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">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">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_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">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_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">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_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">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_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">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_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">24.4</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="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">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> <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="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"> <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">24.1</span>&gt; = &lt;<span class="cwebmacrodefn">Run out inter kind for list</span> <span class="cwebmacronumber">23.1</span>&gt; =
</code></p> </code></p>
@ -1303,10 +1290,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p> <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"> <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">24.2</span>&gt; = &lt;<span class="cwebmacrodefn">Run out inter kind for description</span> <span class="cwebmacronumber">23.2</span>&gt; =
</code></p> </code></p>
@ -1318,10 +1305,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p> <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"> <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">24.3</span>&gt; = &lt;<span class="cwebmacrodefn">Run out inter kind for column</span> <span class="cwebmacronumber">23.3</span>&gt; =
</code></p> </code></p>
@ -1333,10 +1320,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p> <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"> <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">24.4</span>&gt; = &lt;<span class="cwebmacrodefn">Run out inter kind for relation</span> <span class="cwebmacronumber">23.4</span>&gt; =
</code></p> </code></p>
@ -1348,10 +1335,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p> <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"> <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">24.5</span>&gt; = &lt;<span class="cwebmacrodefn">Run out inter kind for phrase</span> <span class="cwebmacronumber">23.5</span>&gt; =
</code></p> </code></p>
@ -1372,10 +1359,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p> <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"> <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">24.6</span>&gt; = &lt;<span class="cwebmacrodefn">Run out inter kind for rule</span> <span class="cwebmacronumber">23.6</span>&gt; =
</code></p> </code></p>
@ -1387,10 +1374,10 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p> <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"> <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">24.7</span>&gt; = &lt;<span class="cwebmacrodefn">Run out inter kind for rulebook</span> <span class="cwebmacronumber">23.7</span>&gt; =
</code></p> </code></p>
@ -1404,9 +1391,9 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p> <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"> <pre class="display">
@ -1435,11 +1422,11 @@ each such kind, and needed at run-time.
<p class="inwebparagraph"></p> <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="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"> <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::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">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> <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 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">26.4</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">26.5</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="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> <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">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">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> <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 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">26.5</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> <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> <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> <span class="plain">}</span>
</pre> </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="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 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 appear at run-time; but we need the printing routine to exist to avoid
compilation errors. compilation errors.
@ -1553,7 +1540,7 @@ compilation errors.
<p class="macrodefinition"><code class="display"> <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> </code></p>
@ -1573,16 +1560,16 @@ compilation errors.
<p class="inwebparagraph"></p> <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, notation. If it had no literal patterns, it would come out as decimal numbers,
but at present this can't happen. but at present this can't happen.
</p> </p>
<p class="macrodefinition"><code class="display"> <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> </code></p>
@ -1603,10 +1590,10 @@ but at present this can't happen.
<p class="inwebparagraph"></p> <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"> <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">26.3</span>&gt; = &lt;<span class="cwebmacrodefn">Compile I6 printing routine for an enumerated kind</span> <span class="cwebmacronumber">25.3</span>&gt; =
</code></p> </code></p>
@ -1665,9 +1652,9 @@ but at present this can't happen.
<p class="inwebparagraph"></p> <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). 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> </p>
@ -1684,7 +1671,7 @@ to <code class="display"><span class="extract">A_T1_colour(v)</span></code>.
</li></ul> </li></ul>
<p class="macrodefinition"><code class="display"> <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> </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">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> <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="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="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> <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> <span class="functiontext">Routines::end</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
</pre> </pre>
<p class="inwebparagraph"></p> <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. first routine implemented by emitting Inter code, on 12 November 2017.
</p> </p>
<p class="macrodefinition"><code class="display"> <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> </code></p>
@ -1749,14 +1736,14 @@ first routine implemented by emitting Inter code, on 12 November 2017.
<p class="inwebparagraph"></p> <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>
<p class="macrodefinition"><code class="display"> <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> </code></p>
@ -1804,9 +1791,9 @@ first routine implemented by emitting Inter code, on 12 November 2017.
<p class="inwebparagraph"></p> <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>
<p class="inwebparagraph"></p> <p class="inwebparagraph"></p>
@ -1819,7 +1806,7 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
</li></ul> </li></ul>
<p class="macrodefinition"><code class="display"> <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> </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::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="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> <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> <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::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="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> <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">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> <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="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"> <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">26.5.1</span>&gt; = &lt;<span class="cwebmacrodefn">Formula for range</span> <span class="cwebmacronumber">25.5.1</span>&gt; =
</code></p> </code></p>
@ -1937,39 +1924,39 @@ and <code class="display"><span class="extract">b</span></code> inclusive.
<p class="inwebparagraph"></p> <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. argument, so there is only one of each routine.
</p> </p>
<p class="macrodefinition"><code class="display"> <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> </code></p>
<pre class="displaydefn"> <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 PrintKindValuePair</span> <span class="cwebmacronumber">25.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 DefaultValueOfKOV</span> <span class="cwebmacronumber">25.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 KOVComparisonFunction</span> <span class="cwebmacronumber">25.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 KOVDomainSize</span> <span class="cwebmacronumber">25.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 KOVIsBlockValue</span> <span class="cwebmacronumber">25.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 KOVSupportFunction</span> <span class="cwebmacronumber">25.6.6</span>&gt;<span class="plain">;</span>
</pre> </pre>
<p class="inwebparagraph"></p> <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 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.) deduced from its value alone, <code class="display"><span class="extract">K</span></code> must explicitly be supplied.)
</p> </p>
<p class="macrodefinition"><code class="display"> <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> </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="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, 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. which have to be given some type-safe value to start out at.
</p> </p>
<p class="macrodefinition"><code class="display"> <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> </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="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 perform a comparison between two values, or else 0 to signal that no
special sort of comparison is needed. (In which case signed numerical 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, 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"> <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> </code></p>
@ -2179,10 +2166,10 @@ unless the two values are genuinely equal.
<p class="inwebparagraph"></p> <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"> <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">26.6.4</span>&gt; = &lt;<span class="cwebmacrodefn">Compile KOVDomainSize</span> <span class="cwebmacronumber">25.6.4</span>&gt; =
</code></p> </code></p>
@ -2242,15 +2229,15 @@ unless the two values are genuinely equal.
<p class="inwebparagraph"></p> <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. storing pointers to blocks on the heap.
</p> </p>
<p class="macrodefinition"><code class="display"> <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> </code></p>
@ -2293,16 +2280,16 @@ storing pointers to blocks on the heap.
<p class="inwebparagraph"></p> <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 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". such a function does, see "BlockValues.i6t".
</p> </p>
<p class="macrodefinition"><code class="display"> <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> </code></p>
@ -2364,9 +2351,9 @@ such a function does, see "BlockValues.i6t".
<p class="inwebparagraph"></p> <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 making it a routine rather than using an array saves a few bytes of precious
Z-machine array space. Z-machine array space.
</p> </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="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"> <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;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;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_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="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">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="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">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">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="reserved">return</span><span class="plain"> </span><span class="identifier">x</span><span class="plain">;</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::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 class="inwebparagraph"><a id="SP13"></a><b>&#167;13. </b>A version from fixed text:
</p> </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="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">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">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">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">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_text</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">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">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="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="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">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="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="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="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="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> <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="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="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">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">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">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_text</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">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">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="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">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="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="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">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> <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">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">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="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="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">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">Kinds::RunTime::begin_block_constant</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">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_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">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="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="reserved">return</span><span class="plain"> </span><span class="identifier">N</span><span class="plain">;</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">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="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="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">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="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="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="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> <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="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> <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_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_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> <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 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 class="inwebparagraph"><a id="SP48"></a><b>&#167;48. </b>Note that a deallocated "let" variable retains its most recent name.
</p> </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="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> <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="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> <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">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="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="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">internal_error</span><span class="plain">(</span><span class="string">"routine not housed in function"</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="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="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> <span class="plain">}</span>
@ -162,7 +160,7 @@ create a new nonphrasal stack frame.
<p class="inwebparagraph"></p> <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> <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="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 class="inwebparagraph"><a id="SP8"></a><b>&#167;8. </b>Fundamental constants are emitted about our choice of virtual machine.
</p> </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="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 <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 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">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">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">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="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> <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_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">.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_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="reserved">return</span><span class="plain"> </span><span class="identifier">req</span><span class="plain">;</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="reserved">return</span><span class="plain"> </span><span class="identifier">req</span><span class="plain">;</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="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="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> <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::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::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::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::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> <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">P</span><span class="plain">,</span>
<span class="identifier">NULL</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="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="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="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="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="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="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">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> <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="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="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">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;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="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> <span class="plain">}</span>
</pre> </pre>
@ -412,7 +427,7 @@
<p class="endnote">The function HierarchyLocations::index_ap appears nowhere else.</p> <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> <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::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> <p class="endnote">The structure packaging_state is private to this section.</p>
@ -236,9 +236,9 @@
<p class="inwebparagraph"></p> <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> <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::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::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::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> <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="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::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> <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 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> <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::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> <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="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 <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 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="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 <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. the sorting measure.
@ -4189,7 +4189,7 @@ set.
<p class="inwebparagraph"></p> <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"> <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"> <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="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="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">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="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">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> <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::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_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> <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"> <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">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">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="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="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="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="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="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> <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;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_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">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">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;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;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;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> <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"> <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="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">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">Kinds::RunTime::begin_block_constant</span><span class="plain">(</span><span class="identifier">K_stored_action</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="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">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="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> <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_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">((</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">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="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="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> <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="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">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="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">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="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_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> <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="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="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">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">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">Packaging::function</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="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="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="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> <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->reason = reason;
pdef->deferred_from = current_sentence; pdef->deferred_from = current_sentence;
pdef->rtp_iname = NULL; pdef->rtp_iname = NULL;
pdef->ppd_iname = Packaging::function(Packaging::supply_iname(Packaging::current_enclosure(), PROPOSITION_PR_COUNTER), Packaging::current_enclosure(), NULL); package_request *PR = Hierarchy::package_in_enclosure(PROPOSITIONS_HAP);
pdef->ppd_iname = Hierarchy::make_iname_in(PROPOSITION_HL, PR);
Inter::Symbols::set_flag(InterNames::to_symbol(pdef->ppd_iname), MAKE_NAME_UNIQUE);
if (no_further_deferrals) internal_error("Too late now to defer propositions"); if (no_further_deferrals) internal_error("Too late now to defer propositions");
return pdef; 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_phrase) ||
(Kinds::get_construct(K) == CON_relation)) { (Kinds::get_construct(K) == CON_relation)) {
if (Kinds::get_construct(K) == CON_list_of) { if (Kinds::get_construct(K) == CON_list_of) {
packaging_state save = Packaging::enter_current_enclosure(); package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Kinds::RunTime::begin_block_constant(K); 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); inter_name *rks_symb = Kinds::RunTime::compile_default_value_inner(K);
Emit::array_iname_entry(rks_symb); Emit::array_iname_entry(rks_symb);
Emit::array_numeric_entry(0); Emit::array_numeric_entry(0);
Kinds::RunTime::end_block_constant(K); Emit::array_end();
Packaging::exit(save); Packaging::exit(save);
if (N) InterNames::holster(VH, N); if (N) InterNames::holster(VH, N);
} else if (Kinds::Compare::eq(K, K_stored_action)) { } else if (Kinds::Compare::eq(K, K_stored_action)) {
packaging_state save = Packaging::enter_current_enclosure(); package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action); 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); Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
Emit::array_iname_entry(PL::Actions::double_sharp(PL::Actions::Wait())); Emit::array_iname_entry(PL::Actions::double_sharp(PL::Actions::Wait()));
Emit::array_numeric_entry(0); Emit::array_numeric_entry(0);
@ -100,14 +104,16 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
#endif #endif
Emit::array_numeric_entry(0); Emit::array_numeric_entry(0);
Emit::array_numeric_entry(0); Emit::array_numeric_entry(0);
Kinds::RunTime::end_block_constant(K_stored_action); Emit::array_end();
Packaging::exit(save); Packaging::exit(save);
if (N) InterNames::holster(VH, N); if (N) InterNames::holster(VH, N);
} else if (Kinds::get_construct(K) == CON_relation) { } else if (Kinds::get_construct(K) == CON_relation) {
packaging_state save = Packaging::enter_current_enclosure(); package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Kinds::RunTime::begin_block_constant(K); 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); Relations::compile_blank_relation(K);
Kinds::RunTime::end_block_constant(K); Emit::array_end();
Packaging::exit(save); Packaging::exit(save);
if (N) InterNames::holster(VH, N); if (N) InterNames::holster(VH, N);
} else { } else {
@ -126,11 +132,13 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
} }
if (Kinds::Compare::eq(K, K_text)) { if (Kinds::Compare::eq(K, K_text)) {
packaging_state save = Packaging::enter_current_enclosure(); package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Kinds::RunTime::begin_block_constant(K); 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(PACKED_TEXT_STORAGE_HL));
Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL)); Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
Kinds::RunTime::end_block_constant(K); Emit::array_end();
Packaging::exit(save); Packaging::exit(save);
if (N) InterNames::holster(VH, N); if (N) InterNames::holster(VH, N);
return TRUE; return TRUE;
@ -578,15 +586,16 @@ compile under Inform 6.
rks->kind_described = K; rks->kind_described = K;
rks->make_default = FALSE; rks->make_default = FALSE;
rks->default_requested_here = NULL; rks->default_requested_here = NULL;
rks->rks_iname = InterNames::new(KIND_ID_INAMEF);
package_request *PR = Kinds::Behaviour::package(K); 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); TEMPORARY_TEXT(TEMP);
Kinds::Textual::write(TEMP, K); Kinds::Textual::write(TEMP, K);
wording W = Feeds::feed_stream(TEMP); wording W = Feeds::feed_stream(TEMP);
rks->rks_iname = Hierarchy::make_iname_with_memo(KIND_HL, PR, W);
DISCARD_TEXT(TEMP); DISCARD_TEXT(TEMP);
InterNames::attach_memo(rks->rks_iname, W); // InterNames::attach_memo(rks->rks_iname, W);
InterNames::to_symbol(rks->rks_iname); // InterNames::to_symbol(rks->rks_iname);
rks->rks_dv_iname = Hierarchy::make_iname_in(DEFAULT_VALUE_HL, PR); rks->rks_dv_iname = Hierarchy::make_iname_in(DEFAULT_VALUE_HL, PR);
@ It's convenient to combine this system with one which constructs default @ 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", LOG("Providing for a total heap of %d, given requirement of %d\n",
max_heap, total_heap_allocation); 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 @ The following routine both compiles code to create a pointer value, and
also increments the heap allocation suitably. Each pointer-value kind comes 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 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->unexpanded = FALSE;
x->small_block_array_needed = FALSE; x->small_block_array_needed = FALSE;
x->lt_sba_iname = NULL; x->lt_sba_iname = NULL;
x->lt_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER); package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
Inter::Symbols::set_flag(InterNames::to_symbol(x->lt_iname), MAKE_NAME_UNIQUE); 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); 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; if ((wn_quote_suppressed >= 0) && (w1 == wn_quote_suppressed)) x->unexpanded = TRUE;
return x; 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 *Strings::TextLiterals::compile_literal_sb(value_holster *VH, wording W) {
literal_text *lt = NULL; literal_text *lt = NULL;
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) { if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
packaging_state save = Packaging::enter_current_enclosure(); package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Kinds::RunTime::begin_block_constant(K_text); inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
if (N) InterNames::holster(VH, N); packaging_state save = Packaging::enter_home_of(N);
Emit::named_late_array_begin(N, K_value);
lt = Strings::TextLiterals::compile_literal(NULL, FALSE, W); lt = Strings::TextLiterals::compile_literal(NULL, FALSE, W);
Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL)); Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL));
if (lt == NULL) Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL)); if (lt == NULL) Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
else Emit::array_iname_entry(lt->lt_iname); else Emit::array_iname_entry(lt->lt_iname);
Kinds::RunTime::end_block_constant(K_text); Emit::array_end();
Packaging::exit(save); Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else { } else {
lt = Strings::TextLiterals::compile_literal(VH, TRUE, W); 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, text_substitution *ts = Strings::TextSubstitutions::new_text_substitution(W, phsf,
adopted_rule_for_compilation, adopted_marker_for_compilation, Packaging::current_enclosure()); adopted_rule_for_compilation, adopted_marker_for_compilation, Packaging::current_enclosure());
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) { if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
packaging_state save = Packaging::enter_current_enclosure(); package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Kinds::RunTime::begin_block_constant(K_text); inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
if (N) InterNames::holster(VH, N); 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(Hierarchy::find(CONSTANT_PACKED_TEXT_STORAGE_HL));
Emit::array_iname_entry(ts->ts_routine_iname); Emit::array_iname_entry(ts->ts_routine_iname);
Kinds::RunTime::end_block_constant(K_text); Emit::array_end();
Packaging::exit(save); Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else { } else {
inter_name *tin = Strings::TextSubstitutions::text_substitution_iname(ts); inter_name *tin = Strings::TextSubstitutions::text_substitution_iname(ts);
if (Holsters::data_acceptable(VH)) { 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); int incipit = Wordings::first_wn(W);
literal_list *ll = Lists::find_list_at(incipit+1); literal_list *ll = Lists::find_list_at(incipit+1);
if (ll) { if (ll) {
kind *K = Lists::kind_of_ll(ll, FALSE); Lists::kind_of_ll(ll, FALSE);
packaging_state save = Packaging::enter_current_enclosure(); package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Kinds::RunTime::begin_block_constant(K); 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_iname_entry(Lists::iname(ll));
Emit::array_numeric_entry(0); Emit::array_numeric_entry(0);
Kinds::RunTime::end_block_constant(K); Emit::array_end();
Packaging::exit(save); Packaging::exit(save);
return N; return N;
} }
@ -272,8 +274,8 @@ inter_name *Lists::compile_literal_list(wording W) {
inter_name *Lists::iname(literal_list *ll) { inter_name *Lists::iname(literal_list *ll) {
if (ll->ll_iname == NULL) { if (ll->ll_iname == NULL) {
ll->ll_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER); package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
Inter::Symbols::set_flag(InterNames::to_symbol(ll->ll_iname), MAKE_NAME_UNIQUE); ll->ll_iname = Hierarchy::make_iname_in(LIST_LITERAL_HL, PR);
} }
return ll->ll_iname; 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); kernel_name = InterNames::one_off(I"kernel", public_name->eventual_owner);
Inter::Symbols::set_flag(InterNames::to_symbol(kernel_name), MAKE_NAME_UNIQUE); Inter::Symbols::set_flag(InterNames::to_symbol(kernel_name), MAKE_NAME_UNIQUE);
} else { } else {
kernel_name = InterNames::new_in(KERNEL_ROUTINE_INAMEF, InterNames::to_module(public_name)); internal_error("routine not housed in function");
LOG("PN is %n\n", public_name);
internal_error("Routine not in function");
} }
Packaging::house_with(kernel_name, public_name); 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; inter_name *block_iname = NULL;
if (Packaging::houseed_in_function(iname)) if (Packaging::houseed_in_function(iname))
block_iname = Packaging::supply_iname(iname->eventual_owner, BLOCK_PR_COUNTER); block_iname = Packaging::supply_iname(iname->eventual_owner, BLOCK_PR_COUNTER);
else else internal_error("routine outside function package");
block_iname = InterNames::new_in(ROUTINE_BLOCK_INAMEF, InterNames::to_module(iname));
Packaging::house_with(block_iname, iname); Packaging::house_with(block_iname, iname);
inter_symbol *rsymb = Emit::package(block_iname, code_packagetype, NULL); 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; struct package_request *this_mundane_package;
int this_exotic_package; int this_exotic_package;
struct inter_symbol *any_package_of_this_type; struct inter_symbol *any_package_of_this_type;
int any_enclosure;
} location_requirement; } location_requirement;
location_requirement HierarchyLocations::blank(void) { location_requirement HierarchyLocations::blank(void) {
@ -16,6 +17,7 @@ location_requirement HierarchyLocations::blank(void) {
req.this_mundane_package = NULL; req.this_mundane_package = NULL;
req.this_exotic_package = -1; req.this_exotic_package = -1;
req.any_package_of_this_type = NULL; req.any_package_of_this_type = NULL;
req.any_enclosure = FALSE;
return req; return req;
} }
@ -43,6 +45,12 @@ location_requirement HierarchyLocations::any_package_of_type(text_stream *ptype_
return req; 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 HierarchyLocations::this_package(package_request *P) {
location_requirement req = HierarchyLocations::blank(); location_requirement req = HierarchyLocations::blank();
req.this_mundane_package = P; req.this_mundane_package = P;
@ -251,11 +259,8 @@ inter_name *HierarchyLocations::find_in_package(int id, package_request *P, word
P, P,
NULL); NULL);
} else { } else {
if (Str::len(nrl->access_name) == 0) { if (Str::len(nrl->access_name) == 0) iname = InterNames::one_off(T, P);
LOG("********** %S\n", T); else iname = InterNames::one_off(nrl->access_name, P);
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 (!Wordings::empty(W)) InterNames::attach_memo(iname, W);
if ((Str::len(T) > 0) && (nrl->access_name)) InterNames::translate(iname, T); 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)) if ((id < 0) || (id >= MAX_HL) || (nrls_indexed_by_id[id] == NULL))
internal_error("bad nrl ID"); internal_error("bad nrl ID");
named_resource_location *nrl = nrls_indexed_by_id[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->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); 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_CONSTANT_PR_COUNTER from 0
@e BLOCK_PR_COUNTER @e BLOCK_PR_COUNTER
@e FORM_PR_COUNTER
@e INLINE_PR_COUNTER @e INLINE_PR_COUNTER
@e LITERAL_PR_COUNTER
@e MISC_PR_COUNTER
@e PROPOSITION_PR_COUNTER
@e SUBSTITUTION_PR_COUNTER @e SUBSTITUTION_PR_COUNTER
@e SUBSTITUTIONF_PR_COUNTER @e SUBSTITUTIONF_PR_COUNTER
@ -51,6 +47,7 @@ void Hierarchy::establish(void) {
@<Establish rules@>; @<Establish rules@>;
@<Establish tables@>; @<Establish tables@>;
@<Establish variables@>; @<Establish variables@>;
@<Establish enclosed matter@>;
@<The rest@>; @<The rest@>;
@<Establish template resources@>; @<Establish template resources@>;
@ -137,6 +134,7 @@ void Hierarchy::establish(void) {
@e MISTAKEACTION_HL @e MISTAKEACTION_HL
@e ACTIONS_HAP @e ACTIONS_HAP
@e ACTION_BASE_NAME_HL
@e CHECK_RB_HL @e CHECK_RB_HL
@e CARRY_OUT_RB_HL @e CARRY_OUT_RB_HL
@e REPORT_RB_HL @e REPORT_RB_HL
@ -159,6 +157,7 @@ void Hierarchy::establish(void) {
location_requirement local_actions = HierarchyLocations::local_submodule(actions); location_requirement local_actions = HierarchyLocations::local_submodule(actions);
HierarchyLocations::ap(ACTIONS_HAP, local_actions, I"action", I"_action"); HierarchyLocations::ap(ACTIONS_HAP, local_actions, I"action", I"_action");
location_requirement in_action = HierarchyLocations::any_package_of_type(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(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(CARRY_OUT_RB_HL, I"carry_out_rb", I"_rulebook", in_action);
HierarchyLocations::package(REPORT_RB_HL, I"report_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 MODAL_CONJUGATION_FN_HL
@e VERBS_HAP @e VERBS_HAP
@e NONMODAL_CONJUGATION_FN_HL @e NONMODAL_CONJUGATION_FN_HL
@e VERB_FORMS_HAP
@e FORM_FN_HL
@e CONJUGATION_FN_HL @e CONJUGATION_FN_HL
@<Establish conjugations@> = @<Establish conjugations@> =
@ -312,6 +313,9 @@ void Hierarchy::establish(void) {
HierarchyLocations::ap(VERBS_HAP, local_conjugations, I"verb", I"_verb"); HierarchyLocations::ap(VERBS_HAP, local_conjugations, I"verb", I"_verb");
location_requirement in_verb = HierarchyLocations::any_package_of_type(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::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. @h Equations.
@ -400,6 +404,7 @@ void Hierarchy::establish(void) {
@e INTERNALTESTCASES_HL @e INTERNALTESTCASES_HL
@e COMMAND_PR_COUNTER @e COMMAND_PR_COUNTER
@e COMMANDS_HAP @e COMMANDS_HAP
@e VERB_DECLARATION_ARRAY_HL
@<Establish grammar@> = @<Establish grammar@> =
submodule_identity *grammar = Packaging::register_submodule(I"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(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::func(INTERNALTESTCASES_HL, I"run_tests_fn", Translation::to(I"InternalTestCases"), synoptic_grammar);
HierarchyLocations::ap(COMMANDS_HAP, synoptic_grammar, I"command", I"_command"); 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. @h Instances.
@ -524,6 +531,7 @@ void Hierarchy::establish(void) {
@e K_TYPELESS_STRING_HL @e K_TYPELESS_STRING_HL
@e KIND_HAP @e KIND_HAP
@e KIND_HL
@e DEFAULT_VALUE_HL @e DEFAULT_VALUE_HL
@e DECREMENT_FN_HL @e DECREMENT_FN_HL
@e INCREMENT_FN_HL @e INCREMENT_FN_HL
@ -558,12 +566,13 @@ void Hierarchy::establish(void) {
location_requirement local_kinds = HierarchyLocations::local_submodule(kinds); location_requirement local_kinds = HierarchyLocations::local_submodule(kinds);
HierarchyLocations::ap(KIND_HAP, local_kinds, I"kind", I"_kind"); HierarchyLocations::ap(KIND_HAP, local_kinds, I"kind", I"_kind");
location_requirement in_kind = HierarchyLocations::any_package_of_type(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(DEFAULT_VALUE_HL, I"default_value", Translation::uniqued(), in_kind);
HierarchyLocations::con(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind); HierarchyLocations::func(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
HierarchyLocations::con(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind); HierarchyLocations::func(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
HierarchyLocations::con(PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind); HierarchyLocations::func(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::func(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(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(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(GPR_FN_HL, I"gpr_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(INSTANCE_GPR_FN_HL, I"instance_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 RELATIONS_HAP
@e RELATION_RECORD_HL @e RELATION_RECORD_HL
@e BITMAP_HL @e BITMAP_HL
@e ABILITIES_HL
@e ROUTE_CACHE_HL @e ROUTE_CACHE_HL
@e HANDLER_FN_HL @e HANDLER_FN_HL
@e RELATION_INITIALISER_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"); 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(RELATION_RECORD_HL, NULL, Translation::generate(RELATION_RECORD_INAMEF), in_relation);
HierarchyLocations::con(BITMAP_HL, I"as_constant", Translation::uniqued(), 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::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(HANDLER_FN_HL, I"handler_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(RELATION_INITIALISER_FN_HL, I"relation_initialiser_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"); location_requirement in_variable = HierarchyLocations::any_package_of_type(I"_variable");
HierarchyLocations::con(VARIABLE_HL, NULL, Translation::generate(VARIABLE_INAMEF), in_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 @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); 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) { package_request *Hierarchy::package_within(int hap_id, package_request *super) {
return HierarchyLocations::attach_new_package(NULL, super, hap_id); 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 *InterNames::new_derived(int fnum, inter_name *from) {
inter_name_family *F = InterNames::get_family(fnum); inter_name_family *F = InterNames::get_family(fnum);
if (F->fusage != DERIVED_FUSAGE) internal_error("not a derived family"); 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); inter_name *N = InterNames::new_in_space(InterNames::root(), F, TRUE);
Packaging::house_with(N, from); Packaging::house_with(N, from);
N->derived_from = from; N->derived_from = from;

View file

@ -429,6 +429,7 @@ int NonlocalVariables::SUBJ_compile_all(void) {
text_stream *rvalue = NULL; text_stream *rvalue = NULL;
if (nlv->housed_in_variables_array == FALSE) if (nlv->housed_in_variables_array == FALSE)
rvalue = NonlocalVariables::identifier(nlv); 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); Emit::variable(iname, nlv->nlv_kind, v1, v2, rvalue);
if (nlv == command_prompt_VAR) { if (nlv == command_prompt_VAR) {
packaging_state save = Routines::begin(Hierarchy::find(COMMANDPROMPTTEXT_HL)); 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@> = @<Write the permissions field of the relation record@> =
binary_predicate *dbp = bp; binary_predicate *dbp = bp;
if (bp->right_way_round == FALSE) dbp = bp->reversal; if (bp->right_way_round == FALSE) dbp = bp->reversal;
inter_name *bm_symb = Packaging::supply_iname(bp->bp_package, MISC_PR_COUNTER); inter_name *bm_symb = Hierarchy::make_iname_in(ABILITIES_HL, bp->bp_package);
Inter::Symbols::set_flag(InterNames::to_symbol(bm_symb), MAKE_NAME_UNIQUE);
Emit::sum_constant_begin(bm_symb, K_value); Emit::sum_constant_begin(bm_symb, K_value);
if (RELS_TEST_iname == NULL) internal_error("no RELS symbols yet"); if (RELS_TEST_iname == NULL) internal_error("no RELS symbols yet");
Emit::array_iname_entry(RELS_TEST_iname); 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) { void PL::Actions::Patterns::as_stored_action(value_holster *VH, action_pattern *ap) {
packaging_state save = Packaging::enter_current_enclosure(); package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action); inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
if (N) InterNames::holster(VH, N); 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); Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
action_name *an = PL::Actions::Lists::get_singleton_action(ap->action); 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_iname_entry(Instances::iname(I_yourself));
Emit::array_numeric_entry((inter_t) request_bits); Emit::array_numeric_entry((inter_t) request_bits);
Emit::array_numeric_entry(0); Emit::array_numeric_entry(0);
Kinds::RunTime::end_block_constant(K_stored_action); Emit::array_end();
Packaging::exit(save); Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} }
void PL::Actions::Patterns::emit_pattern_match(action_pattern ap, int naming_mode) { 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->translated = FALSE;
an->an_package = Hierarchy::local_package(ACTIONS_HAP); an->an_package = Hierarchy::local_package(ACTIONS_HAP);
an->an_base_iname = InterNames::new(ACTION_BASE_INAMEF); an->an_base_iname = Hierarchy::make_iname_with_memo(ACTION_BASE_NAME_HL, an->an_package, W);
InterNames::attach_memo(an->an_base_iname, W);
an->use_verb_routine_in_I6_library = TRUE; an->use_verb_routine_in_I6_library = TRUE;
an->check_rules = NULL; an->check_rules = NULL;
an->carry_out_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(); PL::Parsing::Lines::reset_labels();
switch(gv->gv_is) { switch(gv->gv_is) {
case GV_IS_COMMAND: { case GV_IS_COMMAND: {
inter_name *array_iname = InterNames::new(VERB_DECLARATION_ARRAY_INAMEF);
package_request *PR = Hierarchy::synoptic_package(COMMANDS_HAP); 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); 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_Verb_directive_header(gv, array_iname);
PL::Parsing::Verbs::gv_compile_lines(NULL, gv); 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) { inter_name *Verbs::form_iname(verb_form *vf) {
if (vf->vf_iname == NULL) { if (vf->vf_iname == NULL) {
package_request *R = Verbs::verb_package(vf->underlying_verb, vf->where_vf_created); package_request *R = Verbs::verb_package(vf->underlying_verb, vf->where_vf_created);
vf->vf_iname = package_request *R2 = Hierarchy::package_within(VERB_FORMS_HAP, R);
Packaging::function( vf->vf_iname = Hierarchy::make_iname_in(FORM_FN_HL, R2);
Packaging::supply_iname(R, FORM_PR_COUNTER),
R,
InterNames::new(CONJUGATE_VERB_FORM_INAMEF));
} }
return vf->vf_iname; return vf->vf_iname;
} }