1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-02 23:14:57 +03:00

Rehoused further constants and arrays

This commit is contained in:
Graham Nelson 2019-04-06 11:11:37 +01:00
parent c9f29a5fe0
commit 68759498d3
15 changed files with 165 additions and 103 deletions

View file

@ -568,7 +568,7 @@ which might occupy up to 31 characters, the maximum length of an I6 identifier:
<p class="inwebparagraph"></p>
<p class="endnote">The function Kinds::RunTime::compile_weak_id is used in <a href="#SP12">&#167;12</a>, 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>
@ -628,15 +628,6 @@ turns up. This means remembering everything we've seen, using a new structure:
<pre class="display">
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Kinds::RunTime::compile_strong_id</span><span class="plain">(</span><span class="identifier">OUTPUT_STREAM</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">runtime_kind_structure</span><span class="plain"> *</span><span class="identifier">rks</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::get_rks</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">rks</span><span class="plain">) {</span>
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"%n"</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="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="functiontext">Kinds::RunTime::compile_weak_id</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">K</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">Kinds::RunTime::emit_strong_id</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">runtime_kind_structure</span><span class="plain"> *</span><span class="identifier">rks</span><span class="plain"> = </span><span class="functiontext">Kinds::RunTime::get_rks</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">rks</span><span class="plain">) {</span>
@ -658,8 +649,6 @@ turns up. This means remembering everything we've seen, using a new structure:
<p class="inwebparagraph"></p>
<p class="endnote">The function Kinds::RunTime::compile_strong_id is used in <a href="#SP20">&#167;20</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>
@ -1170,13 +1159,6 @@ list of 20 texts. For the cases above, it's always 1.
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">ha</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Kinds::RunTime::compile_heap_allocation</span><span class="plain">(</span><span class="identifier">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">heap_allocation</span><span class="plain"> </span><span class="identifier">ha</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">ha</span><span class="element">.stack_offset</span><span class="plain"> &gt;= 0) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"BlkValueCreateOnStack(%d, "</span><span class="plain">, </span><span class="identifier">ha</span><span class="element">.stack_offset</span><span class="plain">);</span>
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"BlkValueCreate("</span><span class="plain">);</span>
<span class="functiontext">Kinds::RunTime::compile_strong_id</span><span class="plain">(</span><span class="identifier">OUT</span><span class="plain">, </span><span class="identifier">ha</span><span class="element">.allocated_kind</span><span class="plain">);</span>
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">")"</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Kinds::RunTime::emit_heap_allocation</span><span class="plain">(</span><span class="reserved">heap_allocation</span><span class="plain"> </span><span class="identifier">ha</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">ha</span><span class="element">.stack_offset</span><span class="plain"> &gt;= 0) {</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::extern</span><span class="plain">(</span><span class="constant">BLKVALUECREATEONSTACK_EXNAMEF</span><span class="plain">);</span>
@ -1199,8 +1181,6 @@ list of 20 texts. For the cases above, it's always 1.
<p class="endnote">The function Kinds::RunTime::make_heap_allocation is used in 21/sv (<a href="21-sv.html#SP3_1">&#167;3.1</a>), 24/sf (<a href="24-sf.html#SP15_1">&#167;15.1</a>).</p>
<p class="endnote">The function Kinds::RunTime::compile_heap_allocation appears nowhere else.</p>
<p class="endnote">The function Kinds::RunTime::emit_heap_allocation is used in 21/sv (<a href="21-sv.html#SP3_1">&#167;3.1</a>), 26/rt (<a href="26-rt.html#SP4_1_2">&#167;4.1.2</a>).</p>
<p class="endnote">The structure heap_allocation is private to this section.</p>

View file

@ -394,12 +394,16 @@ ever tampered with.
<span class="functiontext">Routines::end</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="functiontext">Emit::named_array_begin</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">PastActionsI6Routines_INAME</span><span class="plain">), </span><span class="identifier">K_value</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">Packaging::synoptic_resource</span><span class="plain">(</span><span class="constant">CHRONOLOGY_SUBPACKAGE</span><span class="plain">);</span>
<span class="reserved">inter_name</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">I</span><span class="string">"PastActionsI6Routines"</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</span><span class="plain">(</span><span class="identifier">PR</span><span class="plain">);</span>
<span class="functiontext">Emit::named_array_begin</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">K_value</span><span class="plain">);</span>
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">pta</span><span class="plain">, </span><span class="reserved">past_tense_action_record</span><span class="plain">)</span>
<span class="functiontext">Emit::array_iname_entry</span><span class="plain">(</span><span class="identifier">pta</span><span class="plain">-</span><span class="element">&gt;pta_iname</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">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="plain">#</span><span class="identifier">endif</span>
<span class="plain">}</span>
</pre>

View file

@ -328,7 +328,7 @@
<p class="endnote">The function InterNames::new_in_space is used in <a href="#SP3">&#167;3</a>.</p>
<p class="endnote">The function InterNames::one_off is used in <a href="#SP7">&#167;7</a>, 5/un (<a href="5-un.html#SP1">&#167;1</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP32">&#167;32</a>), 6/rlt (<a href="6-rlt.html#SP9">&#167;9</a>, <a href="6-rlt.html#SP9_13">&#167;9.13</a>, <a href="6-rlt.html#SP15">&#167;15</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">&#167;18</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 13/rsfk (<a href="13-rsfk.html#SP15">&#167;15</a>, <a href="13-rsfk.html#SP16_3">&#167;16.3</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/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/ma (<a href="15-ma.html#SP11_3">&#167;11.3</a>), 17/tl (<a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/rs (<a href="17-rs.html#SP5">&#167;5</a>, <a href="17-rs.html#SP6_1">&#167;6.1</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>, <a href="19-tc.html#SP9">&#167;9</a>), 19/tb (<a href="19-tb.html#SP9">&#167;9</a>), 19/rsft (<a href="19-rsft.html#SP1_3">&#167;1.3</a>), 20/eq (<a href="20-eq.html#SP10_1">&#167;10.1</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>, <a href="21-rl.html#SP19">&#167;19</a>, <a href="21-rl.html#SP20">&#167;20</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 21/rl2 (<a href="21-rl2.html#SP10">&#167;10</a>, <a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP14_1">&#167;14.1</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/ac (<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#SP11">&#167;11</a>), 22/pu (<a href="22-pu.html#SP6">&#167;6</a>), 22/pav (<a href="22-pav.html#SP9">&#167;9</a>), 22/tp (<a href="22-tp.html#SP7">&#167;7</a>), 22/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP3">&#167;3</a>, <a href="24-ch.html#SP7">&#167;7</a>, <a href="24-ch.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21_1">&#167;21.1</a>), 26/lt (<a href="26-lt.html#SP3">&#167;3</a>), 26/rt (<a href="26-rt.html#SP4">&#167;4</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>, <a href="26-ts.html#SP11">&#167;11</a>), 27/cm (<a href="27-cm.html#SP2">&#167;2</a>), 27/pc (<a href="27-pc.html#SP8_1">&#167;8.1</a>, <a href="27-pc.html#SP9">&#167;9</a>).</p>
<p class="endnote">The function InterNames::one_off is used in <a href="#SP7">&#167;7</a>, 5/un (<a href="5-un.html#SP1">&#167;1</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP32">&#167;32</a>), 6/rlt (<a href="6-rlt.html#SP9">&#167;9</a>, <a href="6-rlt.html#SP9_13">&#167;9.13</a>, <a href="6-rlt.html#SP15">&#167;15</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">&#167;18</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 13/rsfk (<a href="13-rsfk.html#SP15">&#167;15</a>, <a href="13-rsfk.html#SP16_3">&#167;16.3</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/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/ma (<a href="15-ma.html#SP11_3">&#167;11.3</a>), 17/tl (<a href="17-tl.html#SP14_2">&#167;14.2</a>), 17/rs (<a href="17-rs.html#SP5">&#167;5</a>, <a href="17-rs.html#SP6_1">&#167;6.1</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>, <a href="19-tc.html#SP9">&#167;9</a>), 19/tb (<a href="19-tb.html#SP9">&#167;9</a>), 19/rsft (<a href="19-rsft.html#SP1_3">&#167;1.3</a>), 20/eq (<a href="20-eq.html#SP10_1">&#167;10.1</a>), 21/rl (<a href="21-rl.html#SP9">&#167;9</a>, <a href="21-rl.html#SP19">&#167;19</a>, <a href="21-rl.html#SP20">&#167;20</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 21/rl2 (<a href="21-rl2.html#SP10">&#167;10</a>, <a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP14_1">&#167;14.1</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/ac (<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#SP11">&#167;11</a>), 22/pu (<a href="22-pu.html#SP6">&#167;6</a>), 22/pav (<a href="22-pav.html#SP9">&#167;9</a>), 22/tp (<a href="22-tp.html#SP7">&#167;7</a>), 22/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP3">&#167;3</a>, <a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP7">&#167;7</a>, <a href="24-ch.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21_1">&#167;21.1</a>), 26/lt (<a href="26-lt.html#SP3">&#167;3</a>), 26/rt (<a href="26-rt.html#SP4">&#167;4</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>, <a href="26-ts.html#SP11">&#167;11</a>), 27/cm (<a href="27-cm.html#SP2">&#167;2</a>), 27/pc (<a href="27-pc.html#SP8_1">&#167;8.1</a>, <a href="27-pc.html#SP9">&#167;9</a>).</p>
<p class="endnote">The function InterNames::attach_memo is used in <a href="#SP3">&#167;3</a>, 5/un (<a href="5-un.html#SP1">&#167;1</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 13/rsfk (<a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/ep (<a href="15-ep.html#SP4">&#167;4</a>), 15/vp (<a href="15-vp.html#SP3">&#167;3</a>), 19/tb (<a href="19-tb.html#SP20">&#167;20</a>), 21/rl2 (<a href="21-rl2.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>).</p>
@ -1702,7 +1702,7 @@
<p class="inwebparagraph"></p>
<p class="endnote">The function InterNames::iname is used in 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP33">&#167;33</a>, <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">&#167;15</a>, <a href="6-rlt.html#SP15_1_2">&#167;15.1.2</a>, <a href="6-rlt.html#SP15_2">&#167;15.2</a>, <a href="6-rlt.html#SP15_2_9_1">&#167;15.2.9.1</a>, <a href="6-rlt.html#SP15_2_10_1">&#167;15.2.10.1</a>, <a href="6-rlt.html#SP15_2_12_1">&#167;15.2.12.1</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#SP17">&#167;17</a>, <a href="6-nv.html#SP18">&#167;18</a>, <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_6_1_14">&#167;2.1.6.1.14</a>), 13/kak (<a href="13-kak.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</a>, <a href="13-rsfk.html#SP18_1">&#167;18.1</a>, <a href="13-rsfk.html#SP26">&#167;26</a>, <a href="13-rsfk.html#SP26_5">&#167;26.5</a>, <a href="13-rsfk.html#SP26_5_1">&#167;26.5.1</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>), 17/tl (<a href="17-tl.html#SP12">&#167;12</a>), 17/rs (<a href="17-rs.html#SP7_3">&#167;7.3</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 19/rsft (<a href="19-rsft.html#SP1_2">&#167;1.2</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>, <a href="21-rb.html#SP24">&#167;24</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">&#167;14.1</a>), 24/ch (<a href="24-ch.html#SP4">&#167;4</a>, <a href="24-ch.html#SP6">&#167;6</a>, <a href="24-ch.html#SP7">&#167;7</a>), 26/vm (<a href="26-vm.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21">&#167;21</a>, <a href="26-uo.html#SP21_1">&#167;21.1</a>), 26/iti (<a href="26-iti.html#SP10">&#167;10</a>), 26/pl (<a href="26-pl.html#SP8">&#167;8</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>, <a href="26-ts.html#SP11">&#167;11</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/pc (<a href="27-pc.html#SP7">&#167;7</a>).</p>
<p class="endnote">The function InterNames::iname is used in 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP33">&#167;33</a>, <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">&#167;15</a>, <a href="6-rlt.html#SP15_1_2">&#167;15.1.2</a>, <a href="6-rlt.html#SP15_2">&#167;15.2</a>, <a href="6-rlt.html#SP15_2_9_1">&#167;15.2.9.1</a>, <a href="6-rlt.html#SP15_2_10_1">&#167;15.2.10.1</a>, <a href="6-rlt.html#SP15_2_12_1">&#167;15.2.12.1</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#SP17">&#167;17</a>, <a href="6-nv.html#SP18">&#167;18</a>, <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_6_1_14">&#167;2.1.6.1.14</a>), 13/kak (<a href="13-kak.html#SP5">&#167;5</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</a>, <a href="13-rsfk.html#SP18_1">&#167;18.1</a>, <a href="13-rsfk.html#SP26">&#167;26</a>, <a href="13-rsfk.html#SP26_5">&#167;26.5</a>, <a href="13-rsfk.html#SP26_5_1">&#167;26.5.1</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>), 17/tl (<a href="17-tl.html#SP12">&#167;12</a>), 17/rs (<a href="17-rs.html#SP7_3">&#167;7.3</a>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 19/rsft (<a href="19-rsft.html#SP1_2">&#167;1.2</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>, <a href="21-rb.html#SP24">&#167;24</a>), 21/rl2 (<a href="21-rl2.html#SP14_1">&#167;14.1</a>), 24/ch (<a href="24-ch.html#SP4">&#167;4</a>, <a href="24-ch.html#SP7">&#167;7</a>), 26/vm (<a href="26-vm.html#SP8">&#167;8</a>), 26/uo (<a href="26-uo.html#SP21">&#167;21</a>, <a href="26-uo.html#SP21_1">&#167;21.1</a>), 26/iti (<a href="26-iti.html#SP10">&#167;10</a>), 26/pl (<a href="26-pl.html#SP8">&#167;8</a>), 26/ts (<a href="26-ts.html#SP10">&#167;10</a>, <a href="26-ts.html#SP11">&#167;11</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>), 27/pc (<a href="27-pc.html#SP7">&#167;7</a>).</p>
<hr class="tocbar">
<ul class="toc"><li><a href="27-cm.html">Back to 'Compilation Modules'</a></li><li><a href="27-pc.html">Continue with 'Packaging'</a></li></ul><hr class="tocbar">

View file

@ -35,6 +35,7 @@
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">table_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">table_column_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">relation_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">inter_symbol</span><span class="plain"> *</span><span class="identifier">data_ptype</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
</pre>
<p class="inwebparagraph"></p>
@ -88,6 +89,8 @@
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">table_column_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
<span class="identifier">relation_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_relation"</span><span class="plain">);</span>
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">relation_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
<span class="identifier">data_ptype</span><span class="plain"> = </span><span class="functiontext">Emit::new_symbol</span><span class="plain">(</span><span class="identifier">Inter::get_global_symbols</span><span class="plain">(</span><span class="functiontext">Emit::repository</span><span class="plain">()), </span><span class="identifier">I</span><span class="string">"_data"</span><span class="plain">);</span>
<span class="functiontext">Emit::guard</span><span class="plain">(</span><span class="identifier">Inter::PackageType::new_packagetype</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">(), </span><span class="identifier">data_ptype</span><span class="plain">, </span><span class="functiontext">Emit::baseline</span><span class="plain">(</span><span class="functiontext">Emit::IRS</span><span class="plain">()), </span><span class="identifier">NULL</span><span class="plain">));</span>
<span class="plain">}</span>
</pre>
@ -127,6 +130,7 @@
<span class="definitionkeyword">enum</span> <span class="constant">SUBSTITUTION_PR_COUNTER</span>
<span class="definitionkeyword">enum</span> <span class="constant">SUBSTITUTIONF_PR_COUNTER</span>
<span class="definitionkeyword">enum</span> <span class="constant">MISC_PR_COUNTER</span>
<span class="definitionkeyword">enum</span> <span class="constant">DATA_PR_COUNTER</span>
<span class="definitionkeyword">enum</span> <span class="constant">MAX_PR_COUNTER</span>
</pre>
@ -217,7 +221,7 @@
<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::enter_home_of is used in 6/rlt (<a href="6-rlt.html#SP15_1">&#167;15.1</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 17/ts (<a href="17-ts.html#SP11">&#167;11</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>), 21/rl2 (<a href="21-rl2.html#SP20">&#167;20</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>), 26/rt (<a href="26-rt.html#SP1">&#167;1</a>).</p>
<p class="endnote">The function Packaging::enter_home_of is used in 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>, <a href="6-rlt.html#SP15_1">&#167;15.1</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 17/ts (<a href="17-ts.html#SP11">&#167;11</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>), 21/rl2 (<a href="21-rl2.html#SP20">&#167;20</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>), 26/rt (<a href="26-rt.html#SP1">&#167;1</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>
@ -259,6 +263,7 @@
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">&gt;eventual_type</span><span class="plain"> == </span><span class="identifier">relation_ptype</span><span class="plain">) ||</span>
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">&gt;eventual_type</span><span class="plain"> == </span><span class="identifier">table_ptype</span><span class="plain">) ||</span>
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">&gt;eventual_type</span><span class="plain"> == </span><span class="identifier">table_column_ptype</span><span class="plain">) ||</span>
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">&gt;eventual_type</span><span class="plain"> == </span><span class="identifier">data_ptype</span><span class="plain">) ||</span>
<span class="plain">(</span><span class="identifier">S</span><span class="plain">-</span><span class="element">&gt;parent_request</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">)) {</span>
<span class="identifier">current_enclosure</span><span class="plain"> = </span><span class="identifier">S</span><span class="plain">;</span>
<span class="reserved">break</span><span class="plain">;</span>
@ -304,9 +309,9 @@
<p class="inwebparagraph"></p>
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">&#167;5</a>, 4/am (<a href="4-am.html#SP34_2">&#167;34.2</a>), 5/ins (<a href="5-ins.html#SP34">&#167;34</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</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>), 19/rsft (<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/ac (<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/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP8">&#167;8</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Packaging::enter is used in <a href="#SP5">&#167;5</a>, 4/am (<a href="4-am.html#SP34_2">&#167;34.2</a>), 5/ins (<a href="5-ins.html#SP34">&#167;34</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</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>), 19/rsft (<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/ac (<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/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>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.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/rlt (<a href="6-rlt.html#SP15_1">&#167;15.1</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</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#SP26">&#167;26</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/epv (<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#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>), 18/lc (<a href="18-lc.html#SP11">&#167;11</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_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/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/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP8">&#167;8</a>), 26/rt (<a href="26-rt.html#SP4">&#167;4</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.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/rlt (<a href="6-rlt.html#SP14">&#167;14</a>, <a href="6-rlt.html#SP15_1">&#167;15.1</a>), 6/nv (<a href="6-nv.html#SP18">&#167;18</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#SP26">&#167;26</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/epv (<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#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>), 18/lc (<a href="18-lc.html#SP11">&#167;11</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_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/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/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/rt (<a href="26-rt.html#SP4">&#167;4</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>, <a href="27-ei.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>
@ -386,6 +391,7 @@
<span class="definitionkeyword">enum</span> <span class="constant">CHRONOLOGY_SUBPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">LISTING_SUBPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">EQUATIONS_SUBPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">BIBLIOGRAPHIC_SUBPACKAGE</span>
<span class="definitionkeyword">enum</span> <span class="constant">MAX_SUBPACKAGE</span>
</pre>
@ -447,9 +453,9 @@
<p class="endnote">The function Packaging::request_kinds appears nowhere else.</p>
<p class="endnote">The function Packaging::request_resource is used in 5/ins (<a href="5-ins.html#SP14">&#167;14</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP31">&#167;31</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/ma (<a href="15-ma.html#SP11_3">&#167;11.3</a>), 19/tb (<a href="19-tb.html#SP9">&#167;9</a>), 20/eq (<a href="20-eq.html#SP10_1">&#167;10.1</a>), 21/rl (<a href="21-rl.html#SP5">&#167;5</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 21/rl2 (<a href="21-rl2.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>), 22/ph (<a href="22-ph.html#SP11">&#167;11</a>), 22/tp (<a href="22-tp.html#SP5">&#167;5</a>), 24/ch (<a href="24-ch.html#SP3">&#167;3</a>), 26/lt (<a href="26-lt.html#SP3">&#167;3</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Packaging::request_resource is used in 5/ins (<a href="5-ins.html#SP14">&#167;14</a>), 5/nv (<a href="5-nv.html#SP16">&#167;16</a>), 6/bp (<a href="6-bp.html#SP31">&#167;31</a>), 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>), 15/pr (<a href="15-pr.html#SP27">&#167;27</a>), 15/ma (<a href="15-ma.html#SP11_3">&#167;11.3</a>), 19/tb (<a href="19-tb.html#SP9">&#167;9</a>), 20/eq (<a href="20-eq.html#SP10_1">&#167;10.1</a>), 21/rl (<a href="21-rl.html#SP5">&#167;5</a>), 21/rb (<a href="21-rb.html#SP23">&#167;23</a>), 21/rl2 (<a href="21-rl2.html#SP10">&#167;10</a>), 21/ac (<a href="21-ac.html#SP6">&#167;6</a>), 22/ph (<a href="22-ph.html#SP11">&#167;11</a>), 22/tp (<a href="22-tp.html#SP5">&#167;5</a>), 24/ch (<a href="24-ch.html#SP3">&#167;3</a>), 26/lt (<a href="26-lt.html#SP3">&#167;3</a>), 27/ei (<a href="27-ei.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Packaging::synoptic_resource is used in 6/rlt (<a href="6-rlt.html#SP15">&#167;15</a>, <a href="6-rlt.html#SP17">&#167;17</a>, <a href="6-rlt.html#SP29_1">&#167;29.1</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</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>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>), 21/rl2 (<a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP14_1">&#167;14.1</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/ac (<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/tp2 (<a href="22-tp2.html#SP4">&#167;4</a>), 24/ch (<a href="24-ch.html#SP7">&#167;7</a>, <a href="24-ch.html#SP8">&#167;8</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 Packaging::synoptic_resource is used in 6/rlt (<a href="6-rlt.html#SP15">&#167;15</a>, <a href="6-rlt.html#SP17">&#167;17</a>, <a href="6-rlt.html#SP29_1">&#167;29.1</a>), 8/ef (<a href="8-ef.html#SP19">&#167;19</a>), 13/rsfk (<a href="13-rsfk.html#SP16_3">&#167;16.3</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>), 19/tc (<a href="19-tc.html#SP8">&#167;8</a>), 21/rl (<a href="21-rl.html#SP20">&#167;20</a>), 21/rl2 (<a href="21-rl2.html#SP14">&#167;14</a>, <a href="21-rl2.html#SP14_1">&#167;14.1</a>, <a href="21-rl2.html#SP20">&#167;20</a>), 21/ac (<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/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#SP7">&#167;7</a>, <a href="24-ch.html#SP8">&#167;8</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 structure subpackage_requests is private to this section.</p>
@ -480,6 +486,7 @@
<span class="reserved">case</span><span class="plain"> </span><span class="constant">CHRONOLOGY_SUBPACKAGE</span><span class="plain">: </span><span class="identifier">N</span><span class="plain"> = </span><span class="identifier">I</span><span class="string">"chronology"</span><span class="plain">; </span><span class="reserved">break</span><span class="plain">;</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">LISTING_SUBPACKAGE</span><span class="plain">: </span><span class="identifier">N</span><span class="plain"> = </span><span class="identifier">I</span><span class="string">"listing"</span><span class="plain">; </span><span class="reserved">break</span><span class="plain">;</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">EQUATIONS_SUBPACKAGE</span><span class="plain">: </span><span class="identifier">N</span><span class="plain"> = </span><span class="identifier">I</span><span class="string">"equations"</span><span class="plain">; </span><span class="reserved">break</span><span class="plain">;</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">BIBLIOGRAPHIC_SUBPACKAGE</span><span class="plain">: </span><span class="identifier">N</span><span class="plain"> = </span><span class="identifier">I</span><span class="string">"bibliographic"</span><span class="plain">; </span><span class="reserved">break</span><span class="plain">;</span>
<span class="reserved">default</span><span class="plain">: </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"nameless resource"</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">inter_name</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">N</span><span class="plain">, </span><span class="identifier">parent</span><span class="plain">);</span>
@ -529,6 +536,7 @@
<span class="reserved">case</span><span class="plain"> </span><span class="constant">SUBSTITUTION_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"ts"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">SUBSTITUTIONF_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"ts_fn"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">MISC_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"misc_const"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
<span class="reserved">case</span><span class="plain"> </span><span class="constant">DATA_PR_COUNTER</span><span class="plain">: </span><span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"data"</span><span class="plain">); </span><span class="reserved">break</span><span class="plain">;</span>
<span class="reserved">default</span><span class="plain">: </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"unimplemented"</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">P</span><span class="plain">, </span><span class="string">"_%d"</span><span class="plain">, ++(</span><span class="identifier">R</span><span class="plain">-</span><span class="element">&gt;counters</span><span class="plain">[</span><span class="identifier">what_for</span><span class="plain">]));</span>
@ -588,7 +596,7 @@
<p class="endnote">The function Packaging::function_text is used in 21/rl (<a href="21-rl.html#SP9">&#167;9</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>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Packaging::house is used in 6/rlt (<a href="6-rlt.html#SP14">&#167;14</a>), 13/rsfk (<a href="13-rsfk.html#SP13_1_1">&#167;13.1.1</a>, <a href="13-rsfk.html#SP26">&#167;26</a>), 16/ic (<a href="16-ic.html#SP10">&#167;10</a>), 27/ei (<a href="27-ei.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#SP3">&#167;3</a>).</p>

View file

@ -1204,33 +1204,45 @@ logical properties of the two terms of the BP being defined.
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">REL_BLOCK_HEADER_symbol</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">TTF_iname</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="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">id</span><span class="plain">, </span><span class="identifier">inter_t</span><span class="plain"> </span><span class="identifier">val</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">Packaging::request_resource</span><span class="plain">(</span><span class="identifier">NULL</span><span class="plain">, </span><span class="constant">RELATIONS_SUBPACKAGE</span><span class="plain">);</span>
<span class="reserved">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="identifier">id</span><span class="plain">);</span>
<span class="functiontext">Packaging::house</span><span class="plain">(</span><span class="identifier">iname</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">iname</span><span class="plain">);</span>
<span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">val</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">iname</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Relations::compile_defined_relation_constants</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
<span class="identifier">RELS_SYMMETRIC_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_SYMMETRIC_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x8000</span><span class="plain">);</span>
<span class="identifier">RELS_EQUIVALENCE_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_EQUIVALENCE_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x4000</span><span class="plain">);</span>
<span class="identifier">RELS_X_UNIQUE_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_X_UNIQUE_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x2000</span><span class="plain">);</span>
<span class="identifier">RELS_Y_UNIQUE_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_Y_UNIQUE_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x1000</span><span class="plain">);</span>
<span class="identifier">RELS_TEST_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_TEST_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0800</span><span class="plain">);</span>
<span class="identifier">RELS_ASSERT_TRUE_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_ASSERT_TRUE_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0400</span><span class="plain">);</span>
<span class="identifier">RELS_ASSERT_FALSE_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_ASSERT_FALSE_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0200</span><span class="plain">);</span>
<span class="identifier">RELS_SHOW_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_SHOW_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0100</span><span class="plain">);</span>
<span class="identifier">RELS_ROUTE_FIND_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_ROUTE_FIND_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0080</span><span class="plain">);</span>
<span class="identifier">RELS_ROUTE_FIND_COUNT_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_ROUTE_FIND_COUNT_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0040</span><span class="plain">);</span>
<span class="identifier">RELS_LOOKUP_ANY_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_LOOKUP_ANY_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0008</span><span class="plain">);</span>
<span class="identifier">RELS_LOOKUP_ALL_X_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_LOOKUP_ALL_X_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0004</span><span class="plain">);</span>
<span class="identifier">RELS_LOOKUP_ALL_Y_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_LOOKUP_ALL_Y_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0002</span><span class="plain">);</span>
<span class="identifier">RELS_LIST_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">RELS_LIST_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x0001</span><span class="plain">);</span>
<span class="identifier">RELS_SYMMETRIC_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_SYMMETRIC_INAME</span><span class="plain">, 0</span><span class="identifier">x8000</span><span class="plain">);</span>
<span class="identifier">RELS_EQUIVALENCE_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_EQUIVALENCE_INAME</span><span class="plain">, 0</span><span class="identifier">x4000</span><span class="plain">);</span>
<span class="identifier">RELS_X_UNIQUE_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_X_UNIQUE_INAME</span><span class="plain">, 0</span><span class="identifier">x2000</span><span class="plain">);</span>
<span class="identifier">RELS_Y_UNIQUE_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_Y_UNIQUE_INAME</span><span class="plain">, 0</span><span class="identifier">x1000</span><span class="plain">);</span>
<span class="identifier">RELS_TEST_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_TEST_INAME</span><span class="plain">, 0</span><span class="identifier">x0800</span><span class="plain">);</span>
<span class="identifier">RELS_ASSERT_TRUE_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_ASSERT_TRUE_INAME</span><span class="plain">, 0</span><span class="identifier">x0400</span><span class="plain">);</span>
<span class="identifier">RELS_ASSERT_FALSE_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_ASSERT_FALSE_INAME</span><span class="plain">, 0</span><span class="identifier">x0200</span><span class="plain">);</span>
<span class="identifier">RELS_SHOW_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_SHOW_INAME</span><span class="plain">, 0</span><span class="identifier">x0100</span><span class="plain">);</span>
<span class="identifier">RELS_ROUTE_FIND_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_ROUTE_FIND_INAME</span><span class="plain">, 0</span><span class="identifier">x0080</span><span class="plain">);</span>
<span class="identifier">RELS_ROUTE_FIND_COUNT_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_ROUTE_FIND_COUNT_INAME</span><span class="plain">, 0</span><span class="identifier">x0040</span><span class="plain">);</span>
<span class="identifier">RELS_LOOKUP_ANY_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_LOOKUP_ANY_INAME</span><span class="plain">, 0</span><span class="identifier">x0008</span><span class="plain">);</span>
<span class="identifier">RELS_LOOKUP_ALL_X_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_LOOKUP_ALL_X_INAME</span><span class="plain">, 0</span><span class="identifier">x0004</span><span class="plain">);</span>
<span class="identifier">RELS_LOOKUP_ALL_Y_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_LOOKUP_ALL_Y_INAME</span><span class="plain">, 0</span><span class="identifier">x0002</span><span class="plain">);</span>
<span class="identifier">RELS_LIST_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">RELS_LIST_INAME</span><span class="plain">, 0</span><span class="identifier">x0001</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">VirtualMachines::is_16_bit</span><span class="plain">()) {</span>
<span class="identifier">REL_BLOCK_HEADER_symbol</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">REL_BLOCK_HEADER_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) 0</span><span class="identifier">x100</span><span class="plain">*5 + 13); </span> <span class="comment">2^5 = 32 bytes block</span>
<span class="identifier">REL_BLOCK_HEADER_symbol</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">REL_BLOCK_HEADER_INAME</span><span class="plain">, 0</span><span class="identifier">x100</span><span class="plain">*5 + 13); </span> <span class="comment">2^5 = 32 bytes block</span>
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="identifier">REL_BLOCK_HEADER_symbol</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">REL_BLOCK_HEADER_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) (0</span><span class="identifier">x100</span><span class="plain">*6 + 13)*0</span><span class="identifier">x10000</span><span class="plain">);</span>
<span class="identifier">REL_BLOCK_HEADER_symbol</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">REL_BLOCK_HEADER_INAME</span><span class="plain">, (0</span><span class="identifier">x100</span><span class="plain">*6 + 13)*0</span><span class="identifier">x10000</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="identifier">TTF_iname</span><span class="plain"> = </span><span class="functiontext">Emit::named_numeric_constant_hex</span><span class="plain">(</span><span class="functiontext">InterNames::iname</span><span class="plain">(</span><span class="constant">TTF_sum_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) (0</span><span class="identifier">x0800</span><span class="plain"> + 0</span><span class="identifier">x0400</span><span class="plain"> + 0</span><span class="identifier">x0200</span><span class="plain">));</span>
<span class="identifier">TTF_iname</span><span class="plain"> = </span><span class="functiontext">Relations::compile_defined_relation_constant</span><span class="plain">(</span><span class="constant">TTF_sum_INAME</span><span class="plain">, (0</span><span class="identifier">x0800</span><span class="plain"> + 0</span><span class="identifier">x0400</span><span class="plain"> + 0</span><span class="identifier">x0200</span><span class="plain">));</span>
<span class="comment">i.e., <code class="display"><span class="extract">RELS_TEST + RELS_ASSERT_TRUE + RELS_ASSERT_FALSE</span></code></span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Relations::compile_defined_relation_constant appears nowhere else.</p>
<p class="endnote">The function Relations::compile_defined_relation_constants is used in 1/mr (<a href="1-mr.html#SP4_14">&#167;4.14</a>).</p>
<p class="inwebparagraph"><a id="SP15"></a><b>&#167;15. </b></p>
@ -3141,11 +3153,6 @@ logical properties of the two terms of the BP being defined.
<span class="reserved">relation_guard</span><span class="plain"> *</span><span class="identifier">rg</span><span class="plain">;</span>
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">rg</span><span class="plain">, </span><span class="reserved">relation_guard</span><span class="plain">) {</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">);</span>
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">, </span><span class="string">"Routines guarding %S(L, R)"</span><span class="plain">, </span><span class="functiontext">BinaryPredicates::get_log_name</span><span class="plain">(</span><span class="identifier">rg</span><span class="plain">-</span><span class="element">&gt;guarding</span><span class="plain">));</span>
<span class="functiontext">Emit::comment</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">C</span><span class="plain">);</span>
&lt;<span class="cwebmacro">Compile RGuard f0 routine</span> <span class="cwebmacronumber">29.2</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile RGuard f1 routine</span> <span class="cwebmacronumber">29.3</span>&gt;<span class="plain">;</span>
&lt;<span class="cwebmacro">Compile RGuard T routine</span> <span class="cwebmacronumber">29.4</span>&gt;<span class="plain">;</span>

View file

@ -354,6 +354,12 @@ compiled to constants, used early on at run-time to print the banner.
<pre class="display">
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="functiontext">PL::Bibliographic::constant</span><span class="plain">(</span><span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">name</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">Packaging::synoptic_resource</span><span class="plain">(</span><span class="identifier">BIBLIOGRAPHIC_SUBPACKAGE</span><span class="plain">);</span>
<span class="identifier">package_request</span><span class="plain"> *</span><span class="identifier">PR2</span><span class="plain"> = </span><span class="identifier">Packaging::request</span><span class="plain">(</span><span class="identifier">Packaging::supply_iname</span><span class="plain">(</span><span class="identifier">PR</span><span class="plain">, </span><span class="identifier">DATA_PR_COUNTER</span><span class="plain">), </span><span class="identifier">PR</span><span class="plain">, </span><span class="identifier">data_ptype</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">InterNames::one_off</span><span class="plain">(</span><span class="identifier">name</span><span class="plain">, </span><span class="identifier">PR2</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">PL::Bibliographic::compile_constants</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
<span class="identifier">encode_constant_text_bibliographically</span><span class="plain"> = </span><span class="identifier">TRUE</span><span class="plain">;</span>
<span class="identifier">BEGIN_COMPILATION_MODE</span><span class="plain">;</span>
@ -372,6 +378,8 @@ compiled to constants, used early on at run-time to print the banner.
<p class="inwebparagraph"></p>
<p class="endnote">The function PL::Bibliographic::constant is used in <a href="#SP12_1">&#167;12.1</a>, <a href="#SP12_2">&#167;12.2</a>, <a href="#SP12_3">&#167;12.3</a>, <a href="#SP12_4">&#167;12.4</a>, <a href="#SP12_5">&#167;12.5</a>.</p>
<p class="endnote">The function PL::Bibliographic::compile_constants appears nowhere else.</p>
<p class="inwebparagraph"><a id="SP12_1"></a><b>&#167;12.1. </b>If the author doesn't name a work, then its title is properly "", not
@ -385,13 +393,16 @@ compiled to constants, used early on at run-time to print the banner.
<pre class="displaydefn">
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">PL::Bibliographic::constant</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"Story"</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">iname</span><span class="plain">);</span>
<span class="identifier">NonlocalVariables::treat_as_plain_text_word</span><span class="plain">(</span><span class="identifier">story_title_VAR</span><span class="plain">);</span>
<span class="identifier">inter_t</span><span class="plain"> </span><span class="identifier">v1</span><span class="plain"> = 0, </span><span class="identifier">v2</span><span class="plain"> = 0;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">NonlocalVariables::has_initial_value_set</span><span class="plain">(</span><span class="identifier">story_title_VAR</span><span class="plain">))</span>
<span class="identifier">NonlocalVariables::seek_initial_value</span><span class="plain">(&amp;</span><span class="identifier">v1</span><span class="plain">, &amp;</span><span class="identifier">v2</span><span class="plain">, </span><span class="identifier">story_title_VAR</span><span class="plain">);</span>
<span class="reserved">else</span>
<span class="identifier">Strings::TextLiterals::compile_literal_from_text</span><span class="plain">(&amp;</span><span class="identifier">v1</span><span class="plain">, &amp;</span><span class="identifier">v2</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"\</span><span class="plain">"</span><span class="string">Welcome\</span><span class="plain">"</span><span class="string">"</span><span class="plain">);</span>
<span class="identifier">Emit::named_generic_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">Story_INAME</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">Emit::named_generic_constant</span><span class="plain">(</span><span class="identifier">iname</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">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
</pre>
<p class="inwebparagraph"></p>
@ -408,6 +419,8 @@ compiled to constants, used early on at run-time to print the banner.
<pre class="displaydefn">
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">PL::Bibliographic::constant</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"Headline"</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">iname</span><span class="plain">);</span>
<span class="identifier">inter_t</span><span class="plain"> </span><span class="identifier">v1</span><span class="plain"> = 0, </span><span class="identifier">v2</span><span class="plain"> = 0;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">NonlocalVariables::has_initial_value_set</span><span class="plain">(</span><span class="identifier">story_headline_VAR</span><span class="plain">)) {</span>
<span class="identifier">NonlocalVariables::treat_as_plain_text_word</span><span class="plain">(</span><span class="identifier">story_headline_VAR</span><span class="plain">);</span>
@ -415,7 +428,8 @@ compiled to constants, used early on at run-time to print the banner.
<span class="plain">} </span><span class="reserved">else</span><span class="plain"> {</span>
<span class="identifier">Strings::TextLiterals::compile_literal_from_text</span><span class="plain">(&amp;</span><span class="identifier">v1</span><span class="plain">, &amp;</span><span class="identifier">v2</span><span class="plain">, </span><span class="identifier">L</span><span class="string">"\</span><span class="plain">"</span><span class="string">An Interactive Fiction\</span><span class="plain">"</span><span class="string">"</span><span class="plain">);</span>
<span class="plain">}</span>
<span class="identifier">Emit::named_generic_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">Headline_INAME</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">Emit::named_generic_constant</span><span class="plain">(</span><span class="identifier">iname</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">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
</pre>
<p class="inwebparagraph"></p>
@ -433,10 +447,13 @@ compiled to constants, used early on at run-time to print the banner.
<pre class="displaydefn">
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">NonlocalVariables::has_initial_value_set</span><span class="plain">(</span><span class="identifier">story_author_VAR</span><span class="plain">)) {</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">PL::Bibliographic::constant</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"Story_Author"</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">iname</span><span class="plain">);</span>
<span class="identifier">inter_t</span><span class="plain"> </span><span class="identifier">v1</span><span class="plain"> = 0, </span><span class="identifier">v2</span><span class="plain"> = 0;</span>
<span class="identifier">NonlocalVariables::treat_as_plain_text_word</span><span class="plain">(</span><span class="identifier">story_author_VAR</span><span class="plain">);</span>
<span class="identifier">NonlocalVariables::seek_initial_value</span><span class="plain">(&amp;</span><span class="identifier">v1</span><span class="plain">, &amp;</span><span class="identifier">v2</span><span class="plain">, </span><span class="identifier">story_author_VAR</span><span class="plain">);</span>
<span class="identifier">Emit::named_generic_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">Story_Author_INAME</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">Emit::named_generic_constant</span><span class="plain">(</span><span class="identifier">iname</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">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
@ -455,9 +472,12 @@ compiled to constants, used early on at run-time to print the banner.
<pre class="displaydefn">
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">NonlocalVariables::has_initial_value_set</span><span class="plain">(</span><span class="identifier">story_release_number_VAR</span><span class="plain">)) {</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">PL::Bibliographic::constant</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"Release"</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">iname</span><span class="plain">);</span>
<span class="identifier">inter_t</span><span class="plain"> </span><span class="identifier">v1</span><span class="plain"> = 0, </span><span class="identifier">v2</span><span class="plain"> = 0;</span>
<span class="identifier">NonlocalVariables::seek_initial_value</span><span class="plain">(&amp;</span><span class="identifier">v1</span><span class="plain">, &amp;</span><span class="identifier">v2</span><span class="plain">, </span><span class="identifier">story_release_number_VAR</span><span class="plain">);</span>
<span class="identifier">Emit::named_generic_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">Release_INAME</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">Emit::named_generic_constant</span><span class="plain">(</span><span class="identifier">iname</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">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
@ -477,12 +497,15 @@ should be able to fake the date-stamp with dates of their own choosing.
<pre class="displaydefn">
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">iname</span><span class="plain"> = </span><span class="functiontext">PL::Bibliographic::constant</span><span class="plain">(</span><span class="identifier">I</span><span class="string">"Serial"</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">iname</span><span class="plain">);</span>
<span class="identifier">TEMPORARY_TEXT</span><span class="plain">(</span><span class="identifier">SN</span><span class="plain">);</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">year_digits</span><span class="plain"> = (</span><span class="identifier">the_present</span><span class="plain">-&gt;</span><span class="identifier">tm_year</span><span class="plain">) % 100;</span>
<span class="identifier">WRITE_TO</span><span class="plain">(</span><span class="identifier">SN</span><span class="plain">, </span><span class="string">"%02d%02d%02d"</span><span class="plain">,</span>
<span class="identifier">year_digits</span><span class="plain">, (</span><span class="identifier">the_present</span><span class="plain">-&gt;</span><span class="identifier">tm_mon</span><span class="plain">)+1, </span><span class="identifier">the_present</span><span class="plain">-&gt;</span><span class="identifier">tm_mday</span><span class="plain">);</span>
<span class="identifier">Emit::named_text_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">Serial_INAME</span><span class="plain">), </span><span class="identifier">SN</span><span class="plain">);</span>
<span class="identifier">Emit::named_text_constant</span><span class="plain">(</span><span class="identifier">iname</span><span class="plain">, </span><span class="identifier">SN</span><span class="plain">);</span>
<span class="identifier">DISCARD_TEXT</span><span class="plain">(</span><span class="identifier">SN</span><span class="plain">);</span>
<span class="identifier">Packaging::exit</span><span class="plain">(</span><span class="identifier">save</span><span class="plain">);</span>
</pre>
<p class="inwebparagraph"></p>

View file

@ -66,8 +66,12 @@ around it, in byte-accessible memory.
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="identifier">UUID_array_iname</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">PL::Bibliographic::IFID::define_UUID</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
<span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">uuid</span><span class="plain"> = </span><span class="functiontext">PL::Bibliographic::IFID::read_uuid</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">Packaging::synoptic_resource</span><span class="plain">(</span><span class="identifier">BIBLIOGRAPHIC_SUBPACKAGE</span><span class="plain">);</span>
<span class="identifier">UUID_array_iname</span><span class="plain"> = </span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">UUID_ARRAY_INAME</span><span class="plain">);</span>
<span class="identifier">Packaging::house</span><span class="plain">(</span><span class="identifier">UUID_array_iname</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">UUID_array_iname</span><span class="plain">);</span>
<span class="identifier">Emit::named_string_constant</span><span class="plain">(</span><span class="identifier">UUID_array_iname</span><span class="plain">, </span><span class="identifier">uuid</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="plain">}</span>
<span class="identifier">inter_name</span><span class="plain"> *</span><span class="functiontext">PL::Bibliographic::IFID::UUID</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>

View file

@ -466,8 +466,13 @@ of the kind which the constructor makes:
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">con</span><span class="plain">, </span><span class="reserved">kind_constructor</span><span class="plain">) {</span>
<span class="identifier">text_stream</span><span class="plain"> *</span><span class="identifier">tn</span><span class="plain"> = </span><span class="functiontext">Kinds::Constructors::name_in_template_code</span><span class="plain">(</span><span class="identifier">con</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">tn</span><span class="plain">) &gt; 0) {</span>
<span class="identifier">con</span><span class="plain">-</span><span class="element">&gt;con_iname</span><span class="plain"> = </span><span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::template_weak_ID_name</span><span class="plain">(</span><span class="identifier">tn</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) </span><span class="identifier">con</span><span class="plain">-</span><span class="element">&gt;weak_kind_ID</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">Packaging::synoptic_resource</span><span class="plain">(</span><span class="identifier">KINDS_SUBPACKAGE</span><span class="plain">);</span>
<span class="identifier">con</span><span class="plain">-</span><span class="element">&gt;con_iname</span><span class="plain"> = </span><span class="identifier">InterNames::template_weak_ID_name</span><span class="plain">(</span><span class="identifier">tn</span><span class="plain">);</span>
<span class="identifier">Packaging::house</span><span class="plain">(</span><span class="identifier">con</span><span class="plain">-</span><span class="element">&gt;con_iname</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">con</span><span class="plain">-</span><span class="element">&gt;con_iname</span><span class="plain">);</span>
<span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">con</span><span class="plain">-</span><span class="element">&gt;con_iname</span><span class="plain">, (</span><span class="identifier">inter_t</span><span class="plain">) </span><span class="identifier">con</span><span class="plain">-</span><span class="element">&gt;weak_kind_ID</span><span class="plain">);</span>
<span class="identifier">Inter::Symbols::set_flag</span><span class="plain">(</span><span class="identifier">InterNames::to_symbol</span><span class="plain">(</span><span class="identifier">con</span><span class="plain">-</span><span class="element">&gt;con_iname</span><span class="plain">), </span><span class="identifier">SR_CACHE_MARK_BIT</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="plain">}</span>
<span class="plain">}</span>
<span class="identifier">Emit::named_numeric_constant</span><span class="plain">(</span><span class="identifier">InterNames::iname</span><span class="plain">(</span><span class="identifier">BASE_KIND_HWM_INAME</span><span class="plain">), (</span><span class="identifier">inter_t</span><span class="plain">) </span><span class="identifier">next_free_data_type_ID</span><span class="plain">);</span>

View file

@ -499,15 +499,6 @@ ensure that we always point to the same array every time the same construction
turns up. This means remembering everything we've seen, using a new structure:
=
void Kinds::RunTime::compile_strong_id(OUTPUT_STREAM, kind *K) {
runtime_kind_structure *rks = Kinds::RunTime::get_rks(K);
if (rks) {
WRITE("%n", rks->rks_iname);
} else {
Kinds::RunTime::compile_weak_id(OUT, K);
}
}
void Kinds::RunTime::emit_strong_id(kind *K) {
runtime_kind_structure *rks = Kinds::RunTime::get_rks(K);
if (rks) {
@ -875,13 +866,6 @@ heap_allocation Kinds::RunTime::make_heap_allocation(kind *K, int multiplier,
return ha;
}
void Kinds::RunTime::compile_heap_allocation(OUTPUT_STREAM, heap_allocation ha) {
if (ha.stack_offset >= 0) WRITE("BlkValueCreateOnStack(%d, ", ha.stack_offset);
else WRITE("BlkValueCreate(");
Kinds::RunTime::compile_strong_id(OUT, ha.allocated_kind);
WRITE(")");
}
void Kinds::RunTime::emit_heap_allocation(heap_allocation ha) {
if (ha.stack_offset >= 0) {
inter_name *iname = InterNames::extern(BLKVALUECREATEONSTACK_EXNAMEF);

View file

@ -338,12 +338,16 @@ void Chronology::past_actions_i6_routines(void) {
Routines::end(save);
}
Emit::named_array_begin(InterNames::iname(PastActionsI6Routines_INAME), K_value);
package_request *PR = Packaging::synoptic_resource(CHRONOLOGY_SUBPACKAGE);
inter_name *iname = InterNames::one_off(I"PastActionsI6Routines", PR);
packaging_state save = Packaging::enter(PR);
Emit::named_array_begin(iname, K_value);
LOOP_OVER(pta, past_tense_action_record)
Emit::array_iname_entry(pta->pta_iname);
Emit::array_numeric_entry(0);
Emit::array_numeric_entry(0);
Emit::array_end();
Packaging::exit(save);
#endif
}

View file

@ -25,6 +25,7 @@ inter_symbol *rulebook_ptype = NULL;
inter_symbol *table_ptype = NULL;
inter_symbol *table_column_ptype = NULL;
inter_symbol *relation_ptype = NULL;
inter_symbol *data_ptype = NULL;
@ =
void Packaging::emit_types(void) {
@ -72,6 +73,8 @@ void Packaging::emit_types(void) {
Emit::guard(Inter::PackageType::new_packagetype(Emit::IRS(), table_column_ptype, Emit::baseline(Emit::IRS()), NULL));
relation_ptype = Emit::new_symbol(Inter::get_global_symbols(Emit::repository()), I"_relation");
Emit::guard(Inter::PackageType::new_packagetype(Emit::IRS(), relation_ptype, Emit::baseline(Emit::IRS()), NULL));
data_ptype = Emit::new_symbol(Inter::get_global_symbols(Emit::repository()), I"_data");
Emit::guard(Inter::PackageType::new_packagetype(Emit::IRS(), data_ptype, Emit::baseline(Emit::IRS()), NULL));
}
@
@ -104,6 +107,7 @@ void Packaging::emit_types(void) {
@e SUBSTITUTION_PR_COUNTER
@e SUBSTITUTIONF_PR_COUNTER
@e MISC_PR_COUNTER
@e DATA_PR_COUNTER
@e MAX_PR_COUNTER
@ -202,6 +206,7 @@ packaging_state Packaging::enter(package_request *R) {
(S->eventual_type == relation_ptype) ||
(S->eventual_type == table_ptype) ||
(S->eventual_type == table_column_ptype) ||
(S->eventual_type == data_ptype) ||
(S->parent_request == NULL)) {
current_enclosure = S;
break;
@ -300,6 +305,7 @@ package_request *Packaging::request_synoptic(void) {
@e CHRONOLOGY_SUBPACKAGE
@e LISTING_SUBPACKAGE
@e EQUATIONS_SUBPACKAGE
@e BIBLIOGRAPHIC_SUBPACKAGE
@e MAX_SUBPACKAGE
@ -374,6 +380,7 @@ package_request *Packaging::synoptic_resource(int ix) {
case CHRONOLOGY_SUBPACKAGE: N = I"chronology"; break;
case LISTING_SUBPACKAGE: N = I"listing"; break;
case EQUATIONS_SUBPACKAGE: N = I"equations"; break;
case BIBLIOGRAPHIC_SUBPACKAGE: N = I"bibliographic"; break;
default: internal_error("nameless resource");
}
inter_name *iname = InterNames::one_off(N, parent);
@ -415,6 +422,7 @@ inter_name *Packaging::supply_iname(package_request *R, int what_for) {
case SUBSTITUTION_PR_COUNTER: WRITE_TO(P, "ts"); break;
case SUBSTITUTIONF_PR_COUNTER: WRITE_TO(P, "ts_fn"); break;
case MISC_PR_COUNTER: WRITE_TO(P, "misc_const"); break;
case DATA_PR_COUNTER: WRITE_TO(P, "data"); break;
default: internal_error("unimplemented");
}
WRITE_TO(P, "_%d", ++(R->counters[what_for]));

View file

@ -856,27 +856,37 @@ inter_name *RELS_LIST_iname = NULL;
inter_name *REL_BLOCK_HEADER_symbol = NULL;
inter_name *TTF_iname = NULL;
inter_name *Relations::compile_defined_relation_constant(int id, inter_t val) {
package_request *PR = Packaging::request_resource(NULL, RELATIONS_SUBPACKAGE);
inter_name *iname = InterNames::iname(id);
Packaging::house(iname, PR);
packaging_state save = Packaging::enter_home_of(iname);
Emit::named_numeric_constant_hex(iname, val);
Packaging::exit(save);
return iname;
}
void Relations::compile_defined_relation_constants(void) {
RELS_SYMMETRIC_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_SYMMETRIC_INAME), (inter_t) 0x8000);
RELS_EQUIVALENCE_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_EQUIVALENCE_INAME), (inter_t) 0x4000);
RELS_X_UNIQUE_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_X_UNIQUE_INAME), (inter_t) 0x2000);
RELS_Y_UNIQUE_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_Y_UNIQUE_INAME), (inter_t) 0x1000);
RELS_TEST_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_TEST_INAME), (inter_t) 0x0800);
RELS_ASSERT_TRUE_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_ASSERT_TRUE_INAME), (inter_t) 0x0400);
RELS_ASSERT_FALSE_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_ASSERT_FALSE_INAME), (inter_t) 0x0200);
RELS_SHOW_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_SHOW_INAME), (inter_t) 0x0100);
RELS_ROUTE_FIND_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_ROUTE_FIND_INAME), (inter_t) 0x0080);
RELS_ROUTE_FIND_COUNT_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_ROUTE_FIND_COUNT_INAME), (inter_t) 0x0040);
RELS_LOOKUP_ANY_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_LOOKUP_ANY_INAME), (inter_t) 0x0008);
RELS_LOOKUP_ALL_X_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_LOOKUP_ALL_X_INAME), (inter_t) 0x0004);
RELS_LOOKUP_ALL_Y_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_LOOKUP_ALL_Y_INAME), (inter_t) 0x0002);
RELS_LIST_iname = Emit::named_numeric_constant_hex(InterNames::iname(RELS_LIST_INAME), (inter_t) 0x0001);
RELS_SYMMETRIC_iname = Relations::compile_defined_relation_constant(RELS_SYMMETRIC_INAME, 0x8000);
RELS_EQUIVALENCE_iname = Relations::compile_defined_relation_constant(RELS_EQUIVALENCE_INAME, 0x4000);
RELS_X_UNIQUE_iname = Relations::compile_defined_relation_constant(RELS_X_UNIQUE_INAME, 0x2000);
RELS_Y_UNIQUE_iname = Relations::compile_defined_relation_constant(RELS_Y_UNIQUE_INAME, 0x1000);
RELS_TEST_iname = Relations::compile_defined_relation_constant(RELS_TEST_INAME, 0x0800);
RELS_ASSERT_TRUE_iname = Relations::compile_defined_relation_constant(RELS_ASSERT_TRUE_INAME, 0x0400);
RELS_ASSERT_FALSE_iname = Relations::compile_defined_relation_constant(RELS_ASSERT_FALSE_INAME, 0x0200);
RELS_SHOW_iname = Relations::compile_defined_relation_constant(RELS_SHOW_INAME, 0x0100);
RELS_ROUTE_FIND_iname = Relations::compile_defined_relation_constant(RELS_ROUTE_FIND_INAME, 0x0080);
RELS_ROUTE_FIND_COUNT_iname = Relations::compile_defined_relation_constant(RELS_ROUTE_FIND_COUNT_INAME, 0x0040);
RELS_LOOKUP_ANY_iname = Relations::compile_defined_relation_constant(RELS_LOOKUP_ANY_INAME, 0x0008);
RELS_LOOKUP_ALL_X_iname = Relations::compile_defined_relation_constant(RELS_LOOKUP_ALL_X_INAME, 0x0004);
RELS_LOOKUP_ALL_Y_iname = Relations::compile_defined_relation_constant(RELS_LOOKUP_ALL_Y_INAME, 0x0002);
RELS_LIST_iname = Relations::compile_defined_relation_constant(RELS_LIST_INAME, 0x0001);
if (VirtualMachines::is_16_bit()) {
REL_BLOCK_HEADER_symbol = Emit::named_numeric_constant_hex(InterNames::iname(REL_BLOCK_HEADER_INAME), (inter_t) 0x100*5 + 13); /* $2^5 = 32$ bytes block */
REL_BLOCK_HEADER_symbol = Relations::compile_defined_relation_constant(REL_BLOCK_HEADER_INAME, 0x100*5 + 13); /* $2^5 = 32$ bytes block */
} else {
REL_BLOCK_HEADER_symbol = Emit::named_numeric_constant_hex(InterNames::iname(REL_BLOCK_HEADER_INAME), (inter_t) (0x100*6 + 13)*0x10000);
REL_BLOCK_HEADER_symbol = Relations::compile_defined_relation_constant(REL_BLOCK_HEADER_INAME, (0x100*6 + 13)*0x10000);
}
TTF_iname = Emit::named_numeric_constant_hex(InterNames::iname(TTF_sum_INAME), (inter_t) (0x0800 + 0x0400 + 0x0200));
TTF_iname = Relations::compile_defined_relation_constant(TTF_sum_INAME, (0x0800 + 0x0400 + 0x0200));
/* i.e., |RELS_TEST + RELS_ASSERT_TRUE + RELS_ASSERT_FALSE| */
}
@ -2330,11 +2340,6 @@ void Relations::compile_defined_relations(void) {
relation_guard *rg;
LOOP_OVER(rg, relation_guard) {
TEMPORARY_TEXT(C);
WRITE_TO(C, "Routines guarding %S(L, R)", BinaryPredicates::get_log_name(rg->guarding));
Emit::comment(C);
DISCARD_TEXT(C);
@<Compile RGuard f0 routine@>;
@<Compile RGuard f1 routine@>;
@<Compile RGuard T routine@>;

View file

@ -236,6 +236,12 @@ int PL::Bibliographic::episode_SMF(int task, parse_node *V, wording *NPs) {
compiled to constants, used early on at run-time to print the banner.
=
inter_name *PL::Bibliographic::constant(text_stream *name) {
package_request *PR = Packaging::synoptic_resource(BIBLIOGRAPHIC_SUBPACKAGE);
package_request *PR2 = Packaging::request(Packaging::supply_iname(PR, DATA_PR_COUNTER), PR, data_ptype);
return InterNames::one_off(name, PR2);
}
void PL::Bibliographic::compile_constants(void) {
encode_constant_text_bibliographically = TRUE;
BEGIN_COMPILATION_MODE;
@ -255,17 +261,22 @@ void PL::Bibliographic::compile_constants(void) {
"Welcome": that's just something we use to provide a readable banner.
@<Compile the I6 Story constant@> =
inter_name *iname = PL::Bibliographic::constant(I"Story");
packaging_state save = Packaging::enter_home_of(iname);
NonlocalVariables::treat_as_plain_text_word(story_title_VAR);
inter_t v1 = 0, v2 = 0;
if (NonlocalVariables::has_initial_value_set(story_title_VAR))
NonlocalVariables::seek_initial_value(&v1, &v2, story_title_VAR);
else
Strings::TextLiterals::compile_literal_from_text(&v1, &v2, L"\"Welcome\"");
Emit::named_generic_constant(InterNames::iname(Story_INAME), v1, v2);
Emit::named_generic_constant(iname, v1, v2);
Packaging::exit(save);
@ And similarly here:
@<Compile the I6 Headline constant@> =
inter_name *iname = PL::Bibliographic::constant(I"Headline");
packaging_state save = Packaging::enter_home_of(iname);
inter_t v1 = 0, v2 = 0;
if (NonlocalVariables::has_initial_value_set(story_headline_VAR)) {
NonlocalVariables::treat_as_plain_text_word(story_headline_VAR);
@ -273,25 +284,32 @@ void PL::Bibliographic::compile_constants(void) {
} else {
Strings::TextLiterals::compile_literal_from_text(&v1, &v2, L"\"An Interactive Fiction\"");
}
Emit::named_generic_constant(InterNames::iname(Headline_INAME), v1, v2);
Emit::named_generic_constant(iname, v1, v2);
Packaging::exit(save);
@ This time we compile nothing if no author is provided:
@<Compile the I6 Story Author constant@> =
if (NonlocalVariables::has_initial_value_set(story_author_VAR)) {
inter_name *iname = PL::Bibliographic::constant(I"Story_Author");
packaging_state save = Packaging::enter_home_of(iname);
inter_t v1 = 0, v2 = 0;
NonlocalVariables::treat_as_plain_text_word(story_author_VAR);
NonlocalVariables::seek_initial_value(&v1, &v2, story_author_VAR);
Emit::named_generic_constant(InterNames::iname(Story_Author_INAME), v1, v2);
Emit::named_generic_constant(iname, v1, v2);
Packaging::exit(save);
}
@ Similarly (but numerically):
@<Compile the I6 Release directive@> =
if (NonlocalVariables::has_initial_value_set(story_release_number_VAR)) {
inter_name *iname = PL::Bibliographic::constant(I"Release");
packaging_state save = Packaging::enter_home_of(iname);
inter_t v1 = 0, v2 = 0;
NonlocalVariables::seek_initial_value(&v1, &v2, story_release_number_VAR);
Emit::named_generic_constant(InterNames::iname(Release_INAME), v1, v2);
Emit::named_generic_constant(iname, v1, v2);
Packaging::exit(save);
}
@ This innocuous code -- if Inform runs on 25 June 2013, we compile the serial
@ -299,12 +317,15 @@ number "130625" -- is actually controversial: quite a few users feel they
should be able to fake the date-stamp with dates of their own choosing.
@<Compile the I6 serial number, based on the date@> =
inter_name *iname = PL::Bibliographic::constant(I"Serial");
packaging_state save = Packaging::enter_home_of(iname);
TEMPORARY_TEXT(SN);
int year_digits = (the_present->tm_year) % 100;
WRITE_TO(SN, "%02d%02d%02d",
year_digits, (the_present->tm_mon)+1, the_present->tm_mday);
Emit::named_text_constant(InterNames::iname(Serial_INAME), SN);
Emit::named_text_constant(iname, SN);
DISCARD_TEXT(SN);
Packaging::exit(save);
@ The Library Card is part of the Contents index, and is intended as a
natural way to present bibliographic data to the user. In effect, it's a

View file

@ -44,8 +44,12 @@ around it, in byte-accessible memory.
inter_name *UUID_array_iname = NULL;
void PL::Bibliographic::IFID::define_UUID(void) {
text_stream *uuid = PL::Bibliographic::IFID::read_uuid();
package_request *PR = Packaging::synoptic_resource(BIBLIOGRAPHIC_SUBPACKAGE);
UUID_array_iname = InterNames::iname(UUID_ARRAY_INAME);
Packaging::house(UUID_array_iname, PR);
packaging_state save = Packaging::enter_home_of(UUID_array_iname);
Emit::named_string_constant(UUID_array_iname, uuid);
Packaging::exit(save);
}
inter_name *PL::Bibliographic::IFID::UUID(void) {

View file

@ -375,8 +375,13 @@ void Kinds::Constructors::compile_I6_constants(void) {
LOOP_OVER(con, kind_constructor) {
text_stream *tn = Kinds::Constructors::name_in_template_code(con);
if (Str::len(tn) > 0) {
con->con_iname = Emit::named_numeric_constant(InterNames::template_weak_ID_name(tn), (inter_t) con->weak_kind_ID);
package_request *PR = Packaging::synoptic_resource(KINDS_SUBPACKAGE);
con->con_iname = InterNames::template_weak_ID_name(tn);
Packaging::house(con->con_iname, PR);
packaging_state save = Packaging::enter_home_of(con->con_iname);
Emit::named_numeric_constant(con->con_iname, (inter_t) con->weak_kind_ID);
Inter::Symbols::set_flag(InterNames::to_symbol(con->con_iname), SR_CACHE_MARK_BIT);
Packaging::exit(save);
}
}
Emit::named_numeric_constant(InterNames::iname(BASE_KIND_HWM_INAME), (inter_t) next_free_data_type_ID);