diff --git a/docs/core-module/12-dtd.html b/docs/core-module/12-dtd.html index 6999a62e1..f9cacd0db 100644 --- a/docs/core-module/12-dtd.html +++ b/docs/core-module/12-dtd.html @@ -80,9 +80,8 @@ all deferral requests are redeemed — they would then never be reached. pdef->reason = reason; pdef->deferred_from = current_sentence; pdef->rtp_iname = NULL; - pdef->ppd_iname = Packaging::function(Packaging::supply_iname(Packaging::current_enclosure(), PROPOSITION_PR_COUNTER), Packaging::current_enclosure(), NULL); - - Inter::Symbols::set_flag(InterNames::to_symbol(pdef->ppd_iname), MAKE_NAME_UNIQUE); + package_request *PR = Hierarchy::package_in_enclosure(PROPOSITIONS_HAP); + pdef->ppd_iname = Hierarchy::make_iname_in(PROPOSITION_HL, PR); if (no_further_deferrals) internal_error("Too late now to defer propositions"); return pdef; diff --git a/docs/core-module/13-rsfk.html b/docs/core-module/13-rsfk.html index 89620f725..568e5dc2d 100644 --- a/docs/core-module/13-rsfk.html +++ b/docs/core-module/13-rsfk.html @@ -11,7 +11,7 @@
To compile I6 material needed at runtime to enable kinds to function as they should.
-Class<
-The function Kinds::RunTime::I6_classname is used in §27, 6/bp (§25), 6/rlt (§29.2, §29.3, §29.4, §29.5, §29.6), 12/ter (§8.6), 12/ca (§6.2), 12/dtd (§24), 13/kak (§2), 25/cii (§3.1.1.4.7.1), 26/iti (§9), 27/is (§31.8.1), 27/hr (§4).
+The function Kinds::RunTime::I6_classname is used in §26, 6/bp (§25), 6/rlt (§29.2, §29.3, §29.4, §29.5, §29.6), 12/ter (§8.6), 12/ca (§6.2), 12/dtd (§24), 13/kak (§2), 25/cii (§3.1.1.4.7.1), 26/iti (§9), 27/is (§31.8.1), 27/hr (§4).
The function Kinds::RunTime::I6_classnumber is used in 16/ic (§6, §12.2), 27/in (§4).
@@ -105,17 +105,21 @@ chosen), but no problem message has been issued about this, or
(Kinds::get_construct(K) == CON_phrase) ||
(Kinds::get_construct(K) == CON_relation)) {
if (Kinds::get_construct(K) == CON_list_of) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
inter_name *rks_symb = Kinds::RunTime::compile_default_value_inner(K);
Emit::array_iname_entry(rks_symb);
Emit::array_numeric_entry(0);
- Kinds::RunTime::end_block_constant(K);
+ Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else if (Kinds::Compare::eq(K, K_stored_action)) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
Emit::array_iname_entry(PL::Actions::double_sharp(PL::Actions::Wait()));
Emit::array_numeric_entry(0);
@@ -128,14 +132,16 @@ chosen), but no problem message has been issued about this, or
#endif
Emit::array_numeric_entry(0);
Emit::array_numeric_entry(0);
- Kinds::RunTime::end_block_constant(K_stored_action);
+ Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else if (Kinds::get_construct(K) == CON_relation) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Relations::compile_blank_relation(K);
- Kinds::RunTime::end_block_constant(K);
+ Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else {
@@ -154,11 +160,13 @@ chosen), but no problem message has been issued about this, or
}
if (Kinds::Compare::eq(K, K_text)) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL));
Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
- Kinds::RunTime::end_block_constant(K);
+ Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
return TRUE;
@@ -185,7 +193,7 @@ chosen), but no problem message has been issued about this, or
The function Kinds::RunTime::emit_default_value is used in 19/rsft (§1.1.1.1.1.5).
-The function Kinds::RunTime::emit_default_value_as_val is used in §26.6.2, 22/pav (§9.2), 24/lv (§43), 25/cii (§3.2.1, §3.5.3), 25/cp (§3.3.1).
+The function Kinds::RunTime::emit_default_value_as_val is used in §25.6.2, 22/pav (§9.2), 24/lv (§43), 25/cii (§3.2.1, §3.5.3), 25/cp (§3.3.1).
The function Kinds::RunTime::compile_default_value_vh is used in 5/nv (§25.1), 15/vp (§11).
@@ -534,7 +542,7 @@ like variables. That's what makes them intermediate.)
-The function Kinds::RunTime::weak_id is used in §9, §26, §26.1, 4/am (§20, §29.1, §30, §34.2).
+The function Kinds::RunTime::weak_id is used in §9, §25, §25.1, 4/am (§20, §29.1, §30, §34.2).
§9. And the following compiles an easier-on-the-eye form of the weak ID, but
which might occupy up to 31 characters, the maximum length of an I6 identifier:
@@ -570,9 +578,9 @@ which might occupy up to 31 characters, the maximum length of an I6 identifier:
The function Kinds::RunTime::compile_weak_id is used in 12/is (§4.3.1).
-The function Kinds::RunTime::emit_weak_id is used in §12, §16.1, §21.
+The function Kinds::RunTime::emit_weak_id is used in §12, §16.1, §20.
-The function Kinds::RunTime::emit_weak_id_as_val is used in §12, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6, 12/is (§8), 14/lv (§14.3), 21/fao (§10), 25/cii (§3.2.8).
+The function Kinds::RunTime::emit_weak_id_as_val is used in §12, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6, 12/is (§8), 14/lv (§14.3), 21/fao (§10), 25/cii (§3.2.8).
§10. The strong ID is a faithful representation of the kind
structure,
so we don't need access to its value for comparison purposes; we just need
@@ -651,7 +659,7 @@ turns up. This means remembering everything we've seen, using a new structure:
The function Kinds::RunTime::emit_strong_id is used in §16.1.1, §16.1.1.1, §16.1.1.2, 6/rlt (§15.1.4, §16), 18/lc (§12.1, §13), 22/pav (§8.1, §9.1).
-The function Kinds::RunTime::emit_strong_id_as_val is used in §16.3, §20, 6/rlt (§15, §15.2.9.1), 12/dtd (§16, §17, §27), 19/tc (§8), 22/pav (§9.2), 25/cii (§3.2.7).
+The function Kinds::RunTime::emit_strong_id_as_val is used in §16.3, §19, 6/rlt (§15, §15.2.9.1), 12/dtd (§16, §17, §27), 19/tc (§8), 22/pav (§9.2), 25/cii (§3.2.7).
§13. Thus the following routine must return NULL
if K is a kind whose weak
ID is the same as its strong ID — if it's a base kind, in other words —
@@ -741,15 +749,16 @@ compile under Inform 6.
rks->kind_described = K;
rks->make_default = FALSE;
rks->default_requested_here = NULL;
- rks->rks_iname = InterNames::new(KIND_ID_INAMEF);
package_request *PR = Kinds::Behaviour::package(K);
- Packaging::house(rks->rks_iname, PR);
+ rks->rks_iname = InterNames::new(KIND_ID_INAMEF);
+ Packaging::house(rks->rks_iname, PR);
TEMPORARY_TEXT(TEMP);
Kinds::Textual::write(TEMP, K);
wording W = Feeds::feed_stream(TEMP);
+ rks->rks_iname = Hierarchy::make_iname_with_memo(KIND_HL, PR, W);
DISCARD_TEXT(TEMP);
- InterNames::attach_memo(rks->rks_iname, W);
- InterNames::to_symbol(rks->rks_iname);
+ InterNames::attach_memo(rks->rks_iname, W);
+ InterNames::to_symbol(rks->rks_iname);
rks->rks_dv_iname = Hierarchy::make_iname_in(DEFAULT_VALUE_HL, PR);
@@ -783,7 +792,7 @@ values for kinds, since both involve tracking constructions uniquely.
The function Kinds::RunTime::compile_default_value_inner is used in §4.
-The function Kinds::RunTime::precompile_default_value is used in §20.
+The function Kinds::RunTime::precompile_default_value is used in §19.
§15. Convenient storage for some names.
@@ -1085,29 +1094,7 @@ has essentially no memory constraints compared with the Z-machine.
This code is used in §18.
-
-
-
-
- inter_name *Kinds::RunTime::begin_block_constant(kind *K) {
- inter_name *N = Packaging::supply_iname(Packaging::current_enclosure(), BLOCK_CONSTANT_PR_COUNTER);
- Inter::Symbols::set_flag(InterNames::to_symbol(N), MAKE_NAME_UNIQUE);
- Emit::named_late_array_begin(N, K_value);
- return N;
- }
-
- void Kinds::RunTime::end_block_constant(kind *K) {
- Emit::array_end();
- }
-
-
-
-
-The function Kinds::RunTime::begin_block_constant is used in §4, 17/tl (§16), 17/ts (§8.1), 18/lc (§11).
-
-The function Kinds::RunTime::end_block_constant is used in §4, 17/tl (§16), 17/ts (§8.1), 18/lc (§11).
-
-§20. The following routine both compiles code to create a pointer value, and
+
§19. The following routine both compiles code to create a pointer value, and
also increments the heap allocation suitably. Each pointer-value kind comes
with an estimate of its likely size needs — its exact size needs if it is
fixed in size, and a reasonable overestimate of typical usage if it is
@@ -1169,7 +1156,7 @@ list of 20 texts. For the cases above, it's always 1.
The structure heap_allocation is private to this section.
-
+
@@ -1203,7 +1190,7 @@ list of 20 texts. For the cases above, it's always 1.
The function Kinds::RunTime::emit_block_value_header is used in §4, 6/rlt (§15.1, §16), 18/lc (§12.1, §13).
-§22. Run-time support for units and enumerations. The following generates a small suite of I6 routines associated with
+
§21. Run-time support for units and enumerations. The following generates a small suite of I6 routines associated with
each such kind, and needed at run-time.
@@ -1225,11 +1212,11 @@ each such kind, and needed at run-time.
-The function Kinds::RunTime::base_represented_in_inter is used in §24, §25, §26.
+The function Kinds::RunTime::base_represented_in_inter is used in §23, §24, §25.
The structure kind_interaction is private to this section.
-
+
@@ -1243,7 +1230,7 @@ each such kind, and needed at run-time.
The function Kinds::RunTime::package is used in §15, 15/epv (§2), 22/pav (§9), 27/ei (§4).
-
+
@@ -1267,13 +1254,13 @@ each such kind, and needed at run-time.
kind *operands[MAX_KIND_ARITY];
int icon = -1;
inter_t idt = ROUTINE_IDT;
- if (Kinds::get_construct(K) == CON_description) <Run out inter kind for description 24.2>
- else if (Kinds::get_construct(K) == CON_list_of) <Run out inter kind for list 24.1>
- else if (Kinds::get_construct(K) == CON_phrase) <Run out inter kind for phrase 24.5>
- else if (Kinds::get_construct(K) == CON_rule) <Run out inter kind for rule 24.6>
- else if (Kinds::get_construct(K) == CON_rulebook) <Run out inter kind for rulebook 24.7>
- else if (Kinds::get_construct(K) == CON_table_column) <Run out inter kind for column 24.3>
- else if (Kinds::get_construct(K) == CON_relation) <Run out inter kind for relation 24.4>
+ if (Kinds::get_construct(K) == CON_description) <Run out inter kind for description 23.2>
+ else if (Kinds::get_construct(K) == CON_list_of) <Run out inter kind for list 23.1>
+ else if (Kinds::get_construct(K) == CON_phrase) <Run out inter kind for phrase 23.5>
+ else if (Kinds::get_construct(K) == CON_rule) <Run out inter kind for rule 23.6>
+ else if (Kinds::get_construct(K) == CON_rulebook) <Run out inter kind for rulebook 23.7>
+ else if (Kinds::get_construct(K) == CON_table_column) <Run out inter kind for column 23.3>
+ else if (Kinds::get_construct(K) == CON_relation) <Run out inter kind for relation 23.4>
else {
LOG("Unfortunate kind is: $u\n", K);
internal_error("unable to represent kind in inter");
@@ -1287,10 +1274,10 @@ each such kind, and needed at run-time.
-The function Kinds::RunTime::iname is used in §3, §23, §26, 15/epv (§1), 16/ic (§10), 27/ei (§3).
+The function Kinds::RunTime::iname is used in §3, §22, §25, 15/epv (§1), 16/ic (§10), 27/ei (§3).
-§24.1.
-<Run out inter kind for list 24.1> =
+§23.1.
+<Run out inter kind for list 23.1> =
@@ -1303,10 +1290,10 @@ each such kind, and needed at run-time.
-This code is used in §24.
+This code is used in §23.
-§24.2.
-<Run out inter kind for description 24.2> =
+§23.2.
+<Run out inter kind for description 23.2> =
@@ -1318,10 +1305,10 @@ each such kind, and needed at run-time.
-This code is used in §24.
+This code is used in §23.
-§24.3.
-<Run out inter kind for column 24.3> =
+§23.3.
+<Run out inter kind for column 23.3> =
@@ -1333,10 +1320,10 @@ each such kind, and needed at run-time.
-This code is used in §24.
+This code is used in §23.
-§24.4.
-<Run out inter kind for relation 24.4> =
+§23.4.
+<Run out inter kind for relation 23.4> =
@@ -1348,10 +1335,10 @@ each such kind, and needed at run-time.
-This code is used in §24.
+This code is used in §23.
-§24.5.
-<Run out inter kind for phrase 24.5> =
+§23.5.
+<Run out inter kind for phrase 23.5> =
@@ -1372,10 +1359,10 @@ each such kind, and needed at run-time.
-This code is used in §24.
+This code is used in §23.
-§24.6.
-<Run out inter kind for rule 24.6> =
+§23.6.
+<Run out inter kind for rule 23.6> =
@@ -1387,10 +1374,10 @@ each such kind, and needed at run-time.
-This code is used in §24.
+This code is used in §23.
-§24.7.
-<Run out inter kind for rulebook 24.7> =
+§23.7.
+<Run out inter kind for rulebook 23.7> =
@@ -1404,9 +1391,9 @@ each such kind, and needed at run-time.
-This code is used in §24.
+This code is used in §23.
-
+
@@ -1435,11 +1422,11 @@ each such kind, and needed at run-time.
-The function Kinds::RunTime::iname_inner is used in §24.
+The function Kinds::RunTime::iname_inner is used in §23.
The function Kinds::RunTime::assure_iname_exists is used in 5/un (§2).
-
+
@@ -1509,9 +1496,9 @@ each such kind, and needed at run-time.
if (Kinds::Behaviour::stored_as(K) == NULL)
if (Kinds::Behaviour::is_an_enumeration(K)) {
inter_name *printing_rule_name = Kinds::Behaviour::get_iname(K);
- <Compile I6 printing routine for an enumerated kind 26.3>;
- <Compile the A and B routines for an enumerated kind 26.4>;
- <Compile random-ranger routine for this kind 26.5>;
+ <Compile I6 printing routine for an enumerated kind 25.3>;
+ <Compile the A and B routines for an enumerated kind 25.4>;
+ <Compile random-ranger routine for this kind 25.5>;
}
}
LOOP_OVER_BASE_KINDS(K) {
@@ -1521,15 +1508,15 @@ each such kind, and needed at run-time.
if (Kinds::Behaviour::stored_as(K) == NULL) {
inter_name *printing_rule_name = Kinds::Behaviour::get_iname(K);
if (Kinds::Behaviour::is_quasinumerical(K)) {
- <Compile I6 printing routine for a unit kind 26.2>;
- <Compile random-ranger routine for this kind 26.5>;
+ <Compile I6 printing routine for a unit kind 25.2>;
+ <Compile random-ranger routine for this kind 25.5>;
} else {
- <Compile I6 printing routine for a vacant but named kind 26.1>;
+ <Compile I6 printing routine for a vacant but named kind 25.1>;
}
}
}
- <Compile a suite of I6 routines taking kind IDs as arguments 26.6>;
+ <Compile a suite of I6 routines taking kind IDs as arguments 25.6>;
}
@@ -1545,7 +1532,7 @@ each such kind, and needed at run-time.
The function Kinds::RunTime::compile_data_type_support_routines is used in 1/mr (§4.14).
-§26.1. A slightly bogus case first. If the source text declares a kind but never
+
§25.1. A slightly bogus case first. If the source text declares a kind but never
gives any enumerated values or literal patterns, then such values will never
appear at run-time; but we need the printing routine to exist to avoid
compilation errors.
@@ -1553,7 +1540,7 @@ compilation errors.
-<Compile I6 printing routine for a vacant but named kind 26.1> =
+<Compile I6 printing routine for a vacant but named kind 25.1> =
@@ -1573,16 +1560,16 @@ compilation errors.
-This code is used in §26.
+This code is used in §25.
-§26.2. A unit is printed back with its earliest-defined literal pattern used as
+
§25.2. A unit is printed back with its earliest-defined literal pattern used as
notation. If it had no literal patterns, it would come out as decimal numbers,
but at present this can't happen.
-<Compile I6 printing routine for a unit kind 26.2> =
+<Compile I6 printing routine for a unit kind 25.2> =
@@ -1603,10 +1590,10 @@ but at present this can't happen.
-This code is used in §26.
+This code is used in §25.
-§26.3.
-<Compile I6 printing routine for an enumerated kind 26.3> =
+§25.3.
+<Compile I6 printing routine for an enumerated kind 25.3> =
@@ -1665,9 +1652,9 @@ but at present this can't happen.
-This code is used in §26.
+This code is used in §25.
-§26.4. The suite of standard routines provided for enumerative types is a little
+
§25.4. The suite of standard routines provided for enumerative types is a little
like the one in Ada (T'Succ
, T'Pred
, and so on).
@@ -1684,7 +1671,7 @@ to A_T1_colour(v)
.
-<Compile the A and B routines for an enumerated kind 26.4> =
+<Compile the A and B routines for an enumerated kind 25.4> =
@@ -1695,26 +1682,26 @@ to A_T1_colour(v)
.
inter_name *iname_i = Kinds::Behaviour::get_inc_iname(K);
packaging_state save = Routines::begin(iname_i);
- <Implement the A routine 26.4.1>;
+ <Implement the A routine 25.4.1>;
Routines::end(save);
inter_name *iname_d = Kinds::Behaviour::get_dec_iname(K);
save = Routines::begin(iname_d);
- <Implement the B routine 26.4.2>;
+ <Implement the B routine 25.4.2>;
Routines::end(save);
-This code is used in §26.
+This code is used in §25.
-§26.4.1. There should be a blue historical plaque on the wall here: this was the
+
§25.4.1. There should be a blue historical plaque on the wall here: this was the
first routine implemented by emitting Inter code, on 12 November 2017.
-<Implement the A routine 26.4.1> =
+<Implement the A routine 25.4.1> =
@@ -1749,14 +1736,14 @@ first routine implemented by emitting Inter code, on 12 November 2017.
-This code is used in §26.4.
+This code is used in §25.4.
-§26.4.2. And this was the second, a few minutes later.
+
§25.4.2. And this was the second, a few minutes later.
-<Implement the B routine 26.4.2> =
+<Implement the B routine 25.4.2> =
@@ -1804,9 +1791,9 @@ first routine implemented by emitting Inter code, on 12 November 2017.
-This code is used in §26.4.
+This code is used in §25.4.
-
@@ -1819,7 +1806,7 @@ and b
inclusive.
-<Compile random-ranger routine for this kind 26.5> =
+<Compile random-ranger routine for this kind 25.5> =
@@ -1889,7 +1876,7 @@ and b
inclusive.
Emit::inv_primitive(return_interp);
Emit::down();
smaller = b_s; larger = a_s;
- <Formula for range 26.5.1>;
+ <Formula for range 25.5.1>;
Emit::up();
Emit::up();
Emit::up();
@@ -1897,7 +1884,7 @@ and b
inclusive.
Emit::inv_primitive(return_interp);
Emit::down();
smaller = a_s; larger = b_s;
- <Formula for range 26.5.1>;
+ <Formula for range 25.5.1>;
Emit::up();
Routines::end(save);
@@ -1905,10 +1892,10 @@ and b
inclusive.
-This code is used in §26 (twice).
+This code is used in §25 (twice).
-§26.5.1.
-<Formula for range 26.5.1> =
+§25.5.1.
+<Formula for range 25.5.1> =
@@ -1937,39 +1924,39 @@ and b
inclusive.
-This code is used in §26.5 (twice).
+This code is used in §25.5 (twice).
-§26.6. Further runtime support. These last routines are synoptic: they take the ID number of the kind as an
+
§25.6. Further runtime support. These last routines are synoptic: they take the ID number of the kind as an
argument, so there is only one of each routine.
-<Compile a suite of I6 routines taking kind IDs as arguments 26.6> =
+<Compile a suite of I6 routines taking kind IDs as arguments 25.6> =
- <Compile PrintKindValuePair 26.6.1>;
- <Compile DefaultValueOfKOV 26.6.2>;
- <Compile KOVComparisonFunction 26.6.3>;
- <Compile KOVDomainSize 26.6.4>;
- <Compile KOVIsBlockValue 26.6.5>;
- <Compile KOVSupportFunction 26.6.6>;
+ <Compile PrintKindValuePair 25.6.1>;
+ <Compile DefaultValueOfKOV 25.6.2>;
+ <Compile KOVComparisonFunction 25.6.3>;
+ <Compile KOVDomainSize 25.6.4>;
+ <Compile KOVIsBlockValue 25.6.5>;
+ <Compile KOVSupportFunction 25.6.6>;
-This code is used in §26.
+This code is used in §25.
-§26.6.1. PrintKindValuePair(K, V)
prints out the value V
, declaring its kind to
+
§25.6.1. PrintKindValuePair(K, V)
prints out the value V
, declaring its kind to
be K
. (Since I6 is typeless and in general the kind of V
cannot be
deduced from its value alone, K
must explicitly be supplied.)
-<Compile PrintKindValuePair 26.6.1> =
+<Compile PrintKindValuePair 25.6.1> =
@@ -2027,16 +2014,16 @@ deduced from its value alone, K
-This code is used in §26.6.
+This code is used in §25.6.
-§26.6.2. DefaultValueOfKOV(K)
returns the default value for kind K
: it's needed,
+
§25.6.2. DefaultValueOfKOV(K)
returns the default value for kind K
: it's needed,
for instance, when increasing the size of a list of K to include new entries,
which have to be given some type-safe value to start out at.
-<Compile DefaultValueOfKOV 26.6.2> =
+<Compile DefaultValueOfKOV 25.6.2> =
@@ -2104,9 +2091,9 @@ which have to be given some type-safe value to start out at.
-This code is used in §26.6.
+This code is used in §25.6.
-§26.6.3. KOVComparisonFunction(K)
returns either the address of a function to
+
§25.6.3. KOVComparisonFunction(K)
returns either the address of a function to
perform a comparison between two values, or else 0 to signal that no
special sort of comparison is needed. (In which case signed numerical
comparison will be used.) The function F
may be used in a sorting algorithm,
@@ -2117,7 +2104,7 @@ unless the two values are genuinely equal.
-<Compile KOVComparisonFunction 26.6.3> =
+<Compile KOVComparisonFunction 25.6.3> =
@@ -2179,10 +2166,10 @@ unless the two values are genuinely equal.
-This code is used in §26.6.
+This code is used in §25.6.
-§26.6.4.
-<Compile KOVDomainSize 26.6.4> =
+§25.6.4.
+<Compile KOVDomainSize 25.6.4> =
@@ -2242,15 +2229,15 @@ unless the two values are genuinely equal.
-This code is used in §26.6.
+This code is used in §25.6.
-§26.6.5. KOVIsBlockValue(K)
is true if and only if K
is the I6 ID of a kind
+
§25.6.5. KOVIsBlockValue(K)
is true if and only if K
is the I6 ID of a kind
storing pointers to blocks on the heap.
-<Compile KOVIsBlockValue 26.6.5> =
+<Compile KOVIsBlockValue 25.6.5> =
@@ -2293,16 +2280,16 @@ storing pointers to blocks on the heap.
-This code is used in §26.6.
+This code is used in §25.6.
-§26.6.6. KOVSupportFunction(K)
returns the address of the specific support function
+
§25.6.6. KOVSupportFunction(K)
returns the address of the specific support function
for a pointer-value kind K
, or returns 0 if K
is not such a kind. For what
such a function does, see "BlockValues.i6t".
-<Compile KOVSupportFunction 26.6.6> =
+<Compile KOVSupportFunction 25.6.6> =
@@ -2364,9 +2351,9 @@ such a function does, see "BlockValues.i6t".
-This code is used in §26.6.
+This code is used in §25.6.
-§27. Code for printing names of kinds at run-time. This needn't run quickly, and
+
§26. Code for printing names of kinds at run-time. This needn't run quickly, and
making it a routine rather than using an array saves a few bytes of precious
Z-machine array space.
@@ -2406,7 +2393,7 @@ Z-machine array space.
The function Kinds::RunTime::I7_Kind_Name_routine is used in 1/mr (§4.14).
-
+
diff --git a/docs/core-module/17-tl.html b/docs/core-module/17-tl.html
index f610b8a40..c0d3ecc29 100644
--- a/docs/core-module/17-tl.html
+++ b/docs/core-module/17-tl.html
@@ -156,10 +156,9 @@ in the source.
x->unexpanded = FALSE;
x->small_block_array_needed = FALSE;
x->lt_sba_iname = NULL;
- x->lt_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER);
- Inter::Symbols::set_flag(InterNames::to_symbol(x->lt_iname), MAKE_NAME_UNIQUE);
+ package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
+ x->lt_iname = Hierarchy::make_iname_in(TEXT_LITERAL_HL, PR);
Emit::annotate_symbol_i(InterNames::to_symbol(x->lt_iname), TEXT_LITERAL_IANN, 1);
- InterNames::to_symbol(x->lt_iname);
if ((wn_quote_suppressed >= 0) && (w1 == wn_quote_suppressed)) x->unexpanded = TRUE;
return x;
}
@@ -392,7 +391,7 @@ different for compilation purposes.
The function Strings::TextLiterals::compile_quotation is used in 17/rs (§12).
-The function Strings::TextLiterals::CCOUNT_QUOTATIONS is used in 13/rsfk (§26).
+The function Strings::TextLiterals::CCOUNT_QUOTATIONS is used in 13/rsfk (§25).
§13. A version from fixed text:
@@ -533,15 +532,17 @@ number -1
).
literal_text *Strings::TextLiterals::compile_literal_sb(value_holster *VH, wording W) {
literal_text *lt = NULL;
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K_text);
- if (N) InterNames::holster(VH, N);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
lt = Strings::TextLiterals::compile_literal(NULL, FALSE, W);
Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL));
if (lt == NULL) Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
else Emit::array_iname_entry(lt->lt_iname);
- Kinds::RunTime::end_block_constant(K_text);
+ Emit::array_end();
Packaging::exit(save);
+ if (N) InterNames::holster(VH, N);
} else {
lt = Strings::TextLiterals::compile_literal(VH, TRUE, W);
}
diff --git a/docs/core-module/17-ts.html b/docs/core-module/17-ts.html
index 4f998cb98..b43dfae2e 100644
--- a/docs/core-module/17-ts.html
+++ b/docs/core-module/17-ts.html
@@ -245,13 +245,15 @@ that routine later. This appearance of the routine name is called the "cue".
text_substitution *ts = Strings::TextSubstitutions::new_text_substitution(W, phsf,
adopted_rule_for_compilation, adopted_marker_for_compilation, Packaging::current_enclosure());
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K_text);
- if (N) InterNames::holster(VH, N);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Emit::array_iname_entry(Hierarchy::find(CONSTANT_PACKED_TEXT_STORAGE_HL));
Emit::array_iname_entry(ts->ts_routine_iname);
- Kinds::RunTime::end_block_constant(K_text);
+ Emit::array_end();
Packaging::exit(save);
+ if (N) InterNames::holster(VH, N);
} else {
inter_name *tin = Strings::TextSubstitutions::text_substitution_iname(ts);
if (Holsters::data_acceptable(VH)) {
diff --git a/docs/core-module/18-lc.html b/docs/core-module/18-lc.html
index 058f60d94..c06d1b204 100644
--- a/docs/core-module/18-lc.html
+++ b/docs/core-module/18-lc.html
@@ -391,12 +391,14 @@ so there was once a two-page explanation here, but it is now blessedly simple.
int incipit = Wordings::first_wn(W);
literal_list *ll = Lists::find_list_at(incipit+1);
if (ll) {
- kind *K = Lists::kind_of_ll(ll, FALSE);
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K);
+ Lists::kind_of_ll(ll, FALSE);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Emit::array_iname_entry(Lists::iname(ll));
Emit::array_numeric_entry(0);
- Kinds::RunTime::end_block_constant(K);
+ Emit::array_end();
Packaging::exit(save);
return N;
}
@@ -405,8 +407,8 @@ so there was once a two-page explanation here, but it is now blessedly simple.
inter_name *Lists::iname(literal_list *ll) {
if (ll->ll_iname == NULL) {
- ll->ll_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER);
- Inter::Symbols::set_flag(InterNames::to_symbol(ll->ll_iname), MAKE_NAME_UNIQUE);
+ package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
+ ll->ll_iname = Hierarchy::make_iname_in(LIST_LITERAL_HL, PR);
}
return ll->ll_iname;
}
diff --git a/docs/core-module/2-sq.html b/docs/core-module/2-sq.html
index 3bfd7d0b2..c4527c028 100644
--- a/docs/core-module/2-sq.html
+++ b/docs/core-module/2-sq.html
@@ -164,7 +164,7 @@ this as some kind of marginal will-never-happen case.
-The function Problems::quote_kind is used in §4, 5/lp (§34.5, §34.6), 5/ins (§19.1), 5/nv (§7.1, §23, §25.2), 6/tur (§5), 9/tc (§5.4.2.6, §5.4.2.7, §5.4.2.8, §8.1), 9/ma (§3.3.39.1), 9/pk (§2.1, §4.4), 9/pd (§5.6.1, §7.1.3), 11/tc (§7.1), 11/tcp (§6.9, §6.10, §6.11, §10, §11, §11.3, §12), 12/ter (§5.1, §8.4), 12/qr (§5), 12/ca (§6.2), 13/kak (§7), 13/rsfk (§4.1, §4.2, §16.2, §28), 14/ds2 (§10.1.1.3.1, §11.8.1, §11.9.1.1.2.2.2, §11.9.1.1.3.1.1, §11.9.1.1.5.2, §11.9.1.2.3.3, §11.9.1.2.4, §15.4, §19.1, §19.2, §19.2.1, §19.5.3.2, §19.6.1.1, §19.6.2.1, §19.6.2.2), 15/vp (§5), 15/cp (§3), 15/tpr (§5), 15/spr2 (§9.1, §9.2), 15/pov (§4.1), 16/in (§14), 18/lc (§8.2.1), 19/tc (§6.1, §14.1, §15, §15.6), 19/tod (§6.2, §6.3.3), 20/eq (§41.4.1, §41.4.2, §47.3.2), 21/rl (§15, §18), 22/pu (§20.1.1.2), 25/ci (§3.1.1.2), 25/cii (§3.2.1.1, §3.1.1.4.7.1.2, §3.5.3, §3.5.4.3), 25/cp (§5.3.5).
+The function Problems::quote_kind is used in §4, 5/lp (§34.5, §34.6), 5/ins (§19.1), 5/nv (§7.1, §23, §25.2), 6/tur (§5), 9/tc (§5.4.2.6, §5.4.2.7, §5.4.2.8, §8.1), 9/ma (§3.3.39.1), 9/pk (§2.1, §4.4), 9/pd (§5.6.1, §7.1.3), 11/tc (§7.1), 11/tcp (§6.9, §6.10, §6.11, §10, §11, §11.3, §12), 12/ter (§5.1, §8.4), 12/qr (§5), 12/ca (§6.2), 13/kak (§7), 13/rsfk (§4.1, §4.2, §16.2, §27), 14/ds2 (§10.1.1.3.1, §11.8.1, §11.9.1.1.2.2.2, §11.9.1.1.3.1.1, §11.9.1.1.5.2, §11.9.1.2.3.3, §11.9.1.2.4, §15.4, §19.1, §19.2, §19.2.1, §19.5.3.2, §19.6.1.1, §19.6.2.1, §19.6.2.2), 15/vp (§5), 15/cp (§3), 15/tpr (§5), 15/spr2 (§9.1, §9.2), 15/pov (§4.1), 16/in (§14), 18/lc (§8.2.1), 19/tc (§6.1, §14.1, §15, §15.6), 19/tod (§6.2, §6.3.3), 20/eq (§41.4.1, §41.4.2, §47.3.2), 21/rl (§15, §18), 22/pu (§20.1.1.2), 25/ci (§3.1.1.2), 25/cii (§3.2.1.1, §3.1.1.4.7.1.2, §3.5.3, §3.5.4.3), 25/cp (§5.3.5).
The function Problems::expand_kind appears nowhere else.
diff --git a/docs/core-module/24-lv.html b/docs/core-module/24-lv.html
index 1bd71bd00..71943c127 100644
--- a/docs/core-module/24-lv.html
+++ b/docs/core-module/24-lv.html
@@ -460,13 +460,13 @@ scratch work-space which can be used in the compiled code.
The function LocalVariables::add_internal_local_as_symbol_noting is used in 12/cdp (§2.1.5).
-The function LocalVariables::add_named_call is used in §47, 13/rsfk (§26.6.3), 21/rb (§23), 22/pav (§9.2).
+The function LocalVariables::add_named_call is used in §47, 13/rsfk (§25.6.3), 21/rb (§23), 22/pav (§9.2).
-The function LocalVariables::add_named_call_as_symbol is used in 4/am (§43), 5/lp (§27), 6/rlt (§15.2, §17, §29.1), 6/nv (§18.1, §18.2), 8/ef (§19), 12/cad (§5), 12/cdp (§2.1.5, §2.1.5.2), 13/rsfk (§16.3, §26.1, §26.2, §26.3, §26.5, §26.6.1, §26.6.2, §26.6.5, §26.6.6, §27), 17/rs (§6.2, §7.2), 19/tc (§8), 19/rsft (§2), 21/rl (§20), 21/rb (§24.1.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 24/ch (§7), 26/uo (§21.1, §21.2).
+The function LocalVariables::add_named_call_as_symbol is used in 4/am (§43), 5/lp (§27), 6/rlt (§15.2, §17, §29.1), 6/nv (§18.1, §18.2), 8/ef (§19), 12/cad (§5), 12/cdp (§2.1.5, §2.1.5.2), 13/rsfk (§16.3, §25.1, §25.2, §25.3, §25.5, §25.6.1, §25.6.2, §25.6.5, §25.6.6, §26), 17/rs (§6.2, §7.2), 19/tc (§8), 19/rsft (§2), 21/rl (§20), 21/rb (§24.1.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 24/ch (§7), 26/uo (§21.1, §21.2).
The function LocalVariables::add_named_call_as_symbol_noting is used in 6/rlt (§15.2).
-The function LocalVariables::add_internal_local_c is used in §12, §13, 13/rsfk (§26.6.2, §26.6.3, §26.6.4).
+The function LocalVariables::add_internal_local_c is used in §12, §13, 13/rsfk (§25.6.2, §25.6.3, §25.6.4).
The function LocalVariables::add_internal_local_c_as_symbol is used in 6/rlt (§15), 21/rb (§24.1.1).
@@ -1648,9 +1648,9 @@ need in the compilation of any given routine:
The function LocalVariables::declare is used in 26/rt (§3, §4, §4.1.1).
-The function LocalVariables::declare_this is used in §8, §10, §11, §27, §28, §29, §41, §43, §45, 4/am (§34.2), 11/tr (§10), 12/dtd (§9, §23, §25, §26, §27), 12/cad (§7), 13/rsfk (§26.6.2, §26.6.3, §26.6.4), 14/lv (§14.1, §14.5), 14/cn (§16.3), 20/eq (§48), 25/cii (§1.2.1, §3.5.1, §3.5.3), 25/cp (§5.3.5), 27/is (§31.9).
+The function LocalVariables::declare_this is used in §8, §10, §11, §27, §28, §29, §41, §43, §45, 4/am (§34.2), 11/tr (§10), 12/dtd (§9, §23, §25, §26, §27), 12/cad (§7), 13/rsfk (§25.6.2, §25.6.3, §25.6.4), 14/lv (§14.1, §14.5), 14/cn (§16.3), 20/eq (§48), 25/cii (§1.2.1, §3.5.1, §3.5.3), 25/cp (§5.3.5), 27/is (§31.9).
-The function LocalVariables::create_and_declare is used in 13/rsfk (§26.4.1, §26.4.2).
+The function LocalVariables::create_and_declare is used in 13/rsfk (§25.4.1, §25.4.2).
§48. Note that a deallocated "let" variable retains its most recent name.
diff --git a/docs/core-module/26-ct.html b/docs/core-module/26-ct.html
index a0a4014ff..b97eb7d6c 100644
--- a/docs/core-module/26-ct.html
+++ b/docs/core-module/26-ct.html
@@ -189,7 +189,7 @@ behave more like dictionary words and the
-The function CompiledText::from_wide_string is used in §5, 5/lp (§27.3.1), 13/rsfk (§26.3), 17/tl (§14.1).
+The function CompiledText::from_wide_string is used in §5, 5/lp (§27.3.1), 13/rsfk (§25.3), 17/tl (§14.1).
The function CompiledText::from_wide_string_for_emission is used in 25/cii (§3.5.8.1).
diff --git a/docs/core-module/26-rt.html b/docs/core-module/26-rt.html
index d598238d7..b48e890ec 100644
--- a/docs/core-module/26-rt.html
+++ b/docs/core-module/26-rt.html
@@ -36,7 +36,7 @@ an I6 routine. Sometimes that's in order to define a phrase, but often not.
-The function Routines::begin is used in 4/am (§34.2, §43), 5/lp (§27), 5/nv (§16), 6/bp (§33), 6/rlt (§15, §15.2, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§18.1, §18.2), 8/ef (§19), 12/cdp (§2.1), 13/rsfk (§16.3, §26.1, §26.2, §26.3, §26.4, §26.5, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6, §27), 15/ma (§13), 17/tl (§14.2), 17/ts (§11), 17/rs (§6.1, §6.2, §7.2), 19/tc (§8), 19/rsft (§2), 20/eq (§43), 21/rl (§20, §22.1), 21/rb (§23), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 22/pav (§9.2), 24/ch (§6, §7), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/ts (§10, §11).
+The function Routines::begin is used in 4/am (§34.2, §43), 5/lp (§27), 5/nv (§16), 6/bp (§33), 6/rlt (§15, §15.2, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§18.1, §18.2), 8/ef (§19), 12/cdp (§2.1), 13/rsfk (§16.3, §25.1, §25.2, §25.3, §25.4, §25.5, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6, §26), 15/ma (§13), 17/tl (§14.2), 17/ts (§11), 17/rs (§6.1, §6.2, §7.2), 19/tc (§8), 19/rsft (§2), 20/eq (§43), 21/rl (§20, §22.1), 21/rb (§23), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 22/pav (§9.2), 24/ch (§6, §7), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/ts (§10, §11).
The function Routines::begin_in_current_package is used in 21/rb (§24.1.1).
@@ -134,9 +134,7 @@ create a new nonphrasal stack frame.
kernel_name = InterNames::one_off(I"kernel", public_name->eventual_owner);
Inter::Symbols::set_flag(InterNames::to_symbol(kernel_name), MAKE_NAME_UNIQUE);
} else {
- kernel_name = InterNames::new_in(KERNEL_ROUTINE_INAMEF, InterNames::to_module(public_name));
- LOG("PN is %n\n", public_name);
- internal_error("Routine not in function");
+ internal_error("routine not housed in function");
}
Packaging::house_with(kernel_name, public_name);
}
@@ -162,7 +160,7 @@ create a new nonphrasal stack frame.
-The function Routines::end is used in 4/am (§34.2, §43), 5/lp (§27), 5/nv (§16), 6/bp (§33), 6/rlt (§15, §15.2, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§18.1, §18.2), 8/ef (§19), 12/cdp (§2.1), 13/rsfk (§16.3, §26.1, §26.2, §26.3, §26.4, §26.5, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6, §27), 15/ma (§13), 17/tl (§14.2), 17/ts (§11), 17/rs (§6.1, §6.2, §7.2), 19/tc (§8), 19/rsft (§2), 20/eq (§43), 21/rl (§20, §22.1), 21/rb (§23), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 22/pav (§9.2), 24/ch (§6, §7), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/ts (§10, §11).
+The function Routines::end is used in 4/am (§34.2, §43), 5/lp (§27), 5/nv (§16), 6/bp (§33), 6/rlt (§15, §15.2, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§18.1, §18.2), 8/ef (§19), 12/cdp (§2.1), 13/rsfk (§16.3, §25.1, §25.2, §25.3, §25.4, §25.5, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6, §26), 15/ma (§13), 17/tl (§14.2), 17/ts (§11), 17/rs (§6.1, §6.2, §7.2), 19/tc (§8), 19/rsft (§2), 20/eq (§43), 21/rl (§20, §22.1), 21/rb (§23), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 22/pav (§9.2), 24/ch (§6, §7), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/ts (§10, §11).
The function Routines::end_in_current_package is used in 21/rb (§24.1.5), 25/cp (§3).
diff --git a/docs/core-module/26-vm.html b/docs/core-module/26-vm.html
index 07ea51bea..e9d8d828d 100644
--- a/docs/core-module/26-vm.html
+++ b/docs/core-module/26-vm.html
@@ -172,7 +172,7 @@ target VM are 16 or 32 bits wide:
-The function VirtualMachines::is_16_bit is used in §9, §19, §21, 5/lp (§12.2, §18.3), 6/rlt (§14), 13/rsfk (§18.1, §21), 25/cii (§3.5.8.3).
+The function VirtualMachines::is_16_bit is used in §9, §19, §21, 5/lp (§12.2, §18.3), 6/rlt (§14), 13/rsfk (§18.1, §20), 25/cii (§3.5.8.3).
§8. Fundamental constants are emitted about our choice of virtual machine.
@@ -358,7 +358,7 @@ at 15, but Glulx allows it to be set with an I6 memory setting.
-The function VirtualMachines::supports is used in 13/rsfk (§28), 20/eq (§41).
+The function VirtualMachines::supports is used in 13/rsfk (§27), 20/eq (§41).
§12. When releasing a blorbed story file, the file extension depends on the
story file wrapped inside. (This is a dubious idea, in the opinion of
diff --git a/docs/core-module/27-ei.html b/docs/core-module/27-ei.html
index ed38aff81..57defd8f0 100644
--- a/docs/core-module/27-ei.html
+++ b/docs/core-module/27-ei.html
@@ -1025,8 +1025,7 @@ insert them into the Inter stream close to the top.
inter_name *block_iname = NULL;
if (Packaging::houseed_in_function(iname))
block_iname = Packaging::supply_iname(iname->eventual_owner, BLOCK_PR_COUNTER);
- else
- block_iname = InterNames::new_in(ROUTINE_BLOCK_INAMEF, InterNames::to_module(iname));
+ else internal_error("routine outside function package");
Packaging::house_with(block_iname, iname);
inter_symbol *rsymb = Emit::package(block_iname, code_packagetype, NULL);
@@ -1201,7 +1200,7 @@ insert them into the Inter stream close to the top.
The function Emit::guard is used in §3, §5, 27/pc (§2, §8).
-The function Emit::kind is used in 13/rsfk (§24, §26).
+The function Emit::kind is used in 13/rsfk (§23, §25).
The function Emit::kind_inner is used in §3.
@@ -1231,7 +1230,7 @@ insert them into the Inter stream close to the top.
The function Emit::named_generic_constant is used in 21/rl (§9).
-The function Emit::named_numeric_constant is used in 6/rlt (§20.3), 13/kak (§5), 13/rsfk (§26), 21/ac (§6), 22/cs (§8), 24/ch (§8), 26/vm (§8), 26/uo (§21), 26/pl (§12), 26/ts (§10), 27/hr (§4).
+The function Emit::named_numeric_constant is used in 6/rlt (§20.3), 13/kak (§5), 13/rsfk (§25), 21/ac (§6), 22/cs (§8), 24/ch (§8), 26/vm (§8), 26/uo (§21), 26/pl (§12), 26/ts (§10), 27/hr (§4).
The function Emit::hold_numeric_constant appears nowhere else.
@@ -1241,7 +1240,7 @@ insert them into the Inter stream close to the top.
The function Emit::ds_named_pseudo_numeric_constant appears nowhere else.
-The function Emit::named_late_array_begin is used in 13/rsfk (§19).
+The function Emit::named_late_array_begin is used in 13/rsfk (§4), 17/tl (§16), 17/ts (§8.1), 18/lc (§11).
The function Emit::named_byte_array_begin is used in 6/rlt (§20.3), 19/rsft (§1.2), 21/ac (§14), 26/ts (§10).
@@ -1265,7 +1264,7 @@ insert them into the Inter stream close to the top.
The function Emit::array_null_entry is used in 6/rlt (§15.1, §16), 19/rsft (§1.1.1.1.1.3, §1.2), 21/rb (§24.1.5), 21/ac (§14).
-The function Emit::array_MPN_entry is used in 13/rsfk (§21).
+The function Emit::array_MPN_entry is used in 13/rsfk (§20).
The function Emit::array_generic_entry is used in 5/nv (§25), 13/rsfk (§4), 14/cfs (§9), 19/rsft (§1.1.1.1.1.4).
@@ -1277,13 +1276,13 @@ insert them into the Inter stream close to the top.
The function Emit::array_plural_dword_entry appears nowhere else.
-The function Emit::array_numeric_entry is used in 6/rlt (§15.1, §15.1.3, §16, §19, §20.2, §20.3), 6/nv (§18), 13/rsfk (§4, §9, §16.1.1.1, §16.1.1.2, §21), 17/rs (§7.3, §7.3.1.1, §7.3.1.2), 18/lc (§11, §12.1, §13), 19/rsft (§1.1.1.1.1.3, §1.1.1.1.1.4, §1.2.3, §1.3), 21/rb (§24.1.1, §24.1.2), 21/rl2 (§14, §20), 21/ac (§8, §14), 22/tp2 (§4), 24/ch (§6), 26/jl (§6), 26/ts (§10).
+The function Emit::array_numeric_entry is used in 6/rlt (§15.1, §15.1.3, §16, §19, §20.2, §20.3), 6/nv (§18), 13/rsfk (§4, §9, §16.1.1.1, §16.1.1.2, §20), 17/rs (§7.3, §7.3.1.1, §7.3.1.2), 18/lc (§11, §12.1, §13), 19/rsft (§1.1.1.1.1.3, §1.1.1.1.1.4, §1.2.3, §1.3), 21/rb (§24.1.1, §24.1.2), 21/rl2 (§14, §20), 21/ac (§8, §14), 22/tp2 (§4), 24/ch (§6), 26/jl (§6), 26/ts (§10).
The function Emit::array_divider appears nowhere else.
The function Emit::array_IRS appears nowhere else.
-The function Emit::array_end is used in 6/rlt (§15.1, §15.1.2, §16, §20, §20.3), 6/nv (§18), 13/rsfk (§16.1, §19), 17/tl (§14.1), 17/ts (§11), 17/rs (§6.1, §7.3), 18/lc (§12.1, §13), 19/rsft (§1.1.1.1, §1.1.1.1.1, §1.2, §1.3), 21/rb (§24.1.5), 21/rl2 (§14, §20), 21/ac (§8, §14), 22/pav (§8.1, §9.1), 22/tp2 (§4), 24/ch (§6), 26/lt (§4.1), 26/jl (§6), 26/ts (§10).
+The function Emit::array_end is used in 6/rlt (§15.1, §15.1.2, §16, §20, §20.3), 6/nv (§18), 13/rsfk (§4, §16.1), 17/tl (§14.1, §16), 17/ts (§8.1, §11), 17/rs (§6.1, §7.3), 18/lc (§11, §12.1, §13), 19/rsft (§1.1.1.1, §1.1.1.1.1, §1.2, §1.3), 21/rb (§24.1.5), 21/rl2 (§14, §20), 21/ac (§8, §14), 22/pav (§8.1, §9.1), 22/tp2 (§4), 24/ch (§6), 26/lt (§4.1), 26/jl (§6), 26/ts (§10).
The function Emit::nothing appears nowhere else.
@@ -1297,7 +1296,7 @@ insert them into the Inter stream close to the top.
The function Emit::early_comment appears nowhere else.
-The function Emit::code_comment is used in 4/am (§34.2), 5/lp (§27, §29, §30), 6/nv (§18.2), 12/cdp (§1), 13/rsfk (§26.1), 20/eq (§47), 25/ci (§3.2.3), 25/cp (§5.1).
+The function Emit::code_comment is used in 4/am (§34.2), 5/lp (§27, §29, §30), 6/nv (§18.2), 12/cdp (§1), 13/rsfk (§25.1), 20/eq (§47), 25/ci (§3.2.3), 25/cp (§5.1).
The function Emit::package is used in 27/pc (§6).
@@ -1313,9 +1312,9 @@ insert them into the Inter stream close to the top.
The function Emit::local is used in 24/lv (§47), 26/rt (§4.1.1).
-The function Emit::inv_primitive is used in 4/am (§35, §43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3, §27.3.1, §27.3.2, §27.3.3, §27.3.4), 5/ins (§29), 5/nv (§12, §16), 6/bp (§25), 6/rlt (§15, §15.2, §15.2.4, §15.2.5, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§17, §18.1, §18.2, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/ca (§5.2), 12/dtd (§7.1, §7.1.1, §8, §9, §9.1, §15, §16, §18, §19, §20, §22, §23, §25, §26, §27), 12/cdp (§2.1.6, §2.1.6.1.2.2, §2.1.6.1.2.3.2, §2.1.6.1.2.3.7, §2.1.6.1.2.4, §2.1.6.1.2.5, §2.1.6.1.2.2.2, §2.1.6.1.2.2.2.1, §2.1.6.1.7, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.13, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1, §2.1.6.1.15, §2.1.6.1.17, §2.1.6.1.2.2.7, §2.1.6.1.18), 13/kak (§2), 13/ca (§1.2, §1.3, §1.4, §1.10, §1.11, §1.12, §1.13), 13/rsfk (§16.3, §26.1, §26.2, §26.3, §26.4.1, §26.4.2, §26.5, §26.5.1, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6, §27), 14/rv (§24.3), 14/lv (§14.3.2), 14/cn (§16.1, §16.2, §16.3), 15/ma (§13), 15/epv (§4), 17/tl (§14.2), 17/ts (§11.1), 17/rs (§6.2, §7.2), 19/tc (§8), 19/rsft (§2), 21/rl (§11, §11.2, §20, §20.1, §20.2, §22.1), 21/rb (§24.1.1, §24.1.2, §24.1.3, §24.1.5, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 21/ac (§14), 22/prcd (§10, §10.2, §10.3, §10.4, §10.5, §10.1.1.1), 22/pav (§9.2), 23/abc (§1), 24/lv (§28, §29, §43), 24/pb (§17), 24/ch (§3, §3.1, §6, §7, §7.1, §7.2, §7.3, §7.4, §7.4.1, §7.5), 25/ci (§3, §3.2.3, §3.2.3.2, §3.2.3.1.1, §3.2.3.3.1.2, §3.2.3.4.1.1, §3.2.3.3.1.2.1, §3.2.3.3.1.3, §4.2), 25/ciac (§2), 25/cii (§1.2.1, §3.1.1.4.10, §3.5.3, §3.5.8.1, §3.5.8.2, §3.5.8.3, §3.5.9), 25/cp (§3.3.1, §5.2.1, §5.3.4, §5.3.5, §5.3.5.1, §5.3.5.2, §5.3.5.3), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/rt (§4.1.3, §4.1.5), 26/ts (§10, §11, §12), 27/is (§31.4, §31.5, §31.6, §31.7, §31.8).
+The function Emit::inv_primitive is used in 4/am (§35, §43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3, §27.3.1, §27.3.2, §27.3.3, §27.3.4), 5/ins (§29), 5/nv (§12, §16), 6/bp (§25), 6/rlt (§15, §15.2, §15.2.4, §15.2.5, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§17, §18.1, §18.2, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/ca (§5.2), 12/dtd (§7.1, §7.1.1, §8, §9, §9.1, §15, §16, §18, §19, §20, §22, §23, §25, §26, §27), 12/cdp (§2.1.6, §2.1.6.1.2.2, §2.1.6.1.2.3.2, §2.1.6.1.2.3.7, §2.1.6.1.2.4, §2.1.6.1.2.5, §2.1.6.1.2.2.2, §2.1.6.1.2.2.2.1, §2.1.6.1.7, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.13, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1, §2.1.6.1.15, §2.1.6.1.17, §2.1.6.1.2.2.7, §2.1.6.1.18), 13/kak (§2), 13/ca (§1.2, §1.3, §1.4, §1.10, §1.11, §1.12, §1.13), 13/rsfk (§16.3, §25.1, §25.2, §25.3, §25.4.1, §25.4.2, §25.5, §25.5.1, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6, §26), 14/rv (§24.3), 14/lv (§14.3.2), 14/cn (§16.1, §16.2, §16.3), 15/ma (§13), 15/epv (§4), 17/tl (§14.2), 17/ts (§11.1), 17/rs (§6.2, §7.2), 19/tc (§8), 19/rsft (§2), 21/rl (§11, §11.2, §20, §20.1, §20.2, §22.1), 21/rb (§24.1.1, §24.1.2, §24.1.3, §24.1.5, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 21/ac (§14), 22/prcd (§10, §10.2, §10.3, §10.4, §10.5, §10.1.1.1), 22/pav (§9.2), 23/abc (§1), 24/lv (§28, §29, §43), 24/pb (§17), 24/ch (§3, §3.1, §6, §7, §7.1, §7.2, §7.3, §7.4, §7.4.1, §7.5), 25/ci (§3, §3.2.3, §3.2.3.2, §3.2.3.1.1, §3.2.3.3.1.2, §3.2.3.4.1.1, §3.2.3.3.1.2.1, §3.2.3.3.1.3, §4.2), 25/ciac (§2), 25/cii (§1.2.1, §3.1.1.4.10, §3.5.3, §3.5.8.1, §3.5.8.2, §3.5.8.3, §3.5.9), 25/cp (§3.3.1, §5.2.1, §5.3.4, §5.3.5, §5.3.5.1, §5.3.5.2, §5.3.5.3), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/rt (§4.1.3, §4.1.5), 26/ts (§10, §11, §12), 27/is (§31.4, §31.5, §31.6, §31.7, §31.8).
-The function Emit::inv_call is used in 4/am (§43), 5/lp (§19, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1), 5/nv (§12), 6/bp (§33), 6/rlt (§15, §15.2.1, §15.2.5.1, §15.2.6, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §29.5, §29.6), 6/nv (§17, §18.2), 12/dtd (§7.1.2, §11, §17, §27), 12/cdp (§2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.11, §1.12), 13/rsfk (§7, §20, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6), 14/lv (§14.3, §14.4, §14.5), 14/cfs (§7), 17/ts (§8), 17/rs (§6.1, §6.2, §7.2), 20/eq (§48), 21/rl (§11.2, §22.1), 21/rb (§24.1.3.1), 21/fao (§10), 21/sv (§3.2), 21/ac (§14), 22/prcd (§10, §10.1.1.1), 22/pav (§9.2), 24/lv (§41), 24/ch (§4), 25/ci (§3.2.3.6), 25/ciac (§2), 25/cii (§3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8, §3.5.8.1), 25/cp (§6), 26/rt (§4.1.2, §4.1.3, §4.1.4), 26/ts (§10, §12), 27/is (§31.4).
+The function Emit::inv_call is used in 4/am (§43), 5/lp (§19, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1), 5/nv (§12), 6/bp (§33), 6/rlt (§15, §15.2.1, §15.2.5.1, §15.2.6, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §29.5, §29.6), 6/nv (§17, §18.2), 12/dtd (§7.1.2, §11, §17, §27), 12/cdp (§2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.11, §1.12), 13/rsfk (§7, §19, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6), 14/lv (§14.3, §14.4, §14.5), 14/cfs (§7), 17/ts (§8), 17/rs (§6.1, §6.2, §7.2), 20/eq (§48), 21/rl (§11.2, §22.1), 21/rb (§24.1.3.1), 21/fao (§10), 21/sv (§3.2), 21/ac (§14), 22/prcd (§10, §10.1.1.1), 22/pav (§9.2), 24/lv (§41), 24/ch (§4), 25/ci (§3.2.3.6), 25/ciac (§2), 25/cii (§3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8, §3.5.8.1), 25/cp (§6), 26/rt (§4.1.2, §4.1.3, §4.1.4), 26/ts (§10, §12), 27/is (§31.4).
The function Emit::inv_indirect_call appears nowhere else.
@@ -1323,9 +1322,9 @@ insert them into the Inter stream close to the top.
The function Emit::return appears nowhere else.
-The function Emit::rtrue is used in 5/lp (§27, §27.3.4), 6/rlt (§15.2.2, §15.2.3, §15.2.4, §15.2.7, §15.2.9.1, §29.4, §29.5, §29.6), 6/nv (§18.1), 12/cdp (§2.1.6.1.2.2.1), 13/rsfk (§26.6.5), 15/ma (§13), 17/ts (§11.1), 19/rsft (§2), 21/rl (§20.2), 21/fao (§10), 24/ch (§6), 25/cp (§5.4.4), 26/uo (§21.1).
+The function Emit::rtrue is used in 5/lp (§27, §27.3.4), 6/rlt (§15.2.2, §15.2.3, §15.2.4, §15.2.7, §15.2.9.1, §29.4, §29.5, §29.6), 6/nv (§18.1), 12/cdp (§2.1.6.1.2.2.1), 13/rsfk (§25.6.5), 15/ma (§13), 17/ts (§11.1), 19/rsft (§2), 21/rl (§20.2), 21/fao (§10), 24/ch (§6), 25/cp (§5.4.4), 26/uo (§21.1).
-The function Emit::rfalse is used in 4/am (§34.2), 6/bp (§25), 6/rlt (§15.2, §15.2.2, §15.2.3, §15.2.4, §15.2.9.1, §29.4), 6/nv (§18.1), 12/cdp (§2.1.6.1.4), 13/rsfk (§26.6.5, §26.6.6), 15/ma (§13), 20/eq (§43), 21/rb (§23), 21/fao (§10), 24/ch (§6), 26/uo (§21.1), 26/lt (§4.1), 26/ts (§10).
+The function Emit::rfalse is used in 4/am (§34.2), 6/bp (§25), 6/rlt (§15.2, §15.2.2, §15.2.3, §15.2.4, §15.2.9.1, §29.4), 6/nv (§18.1), 12/cdp (§2.1.6.1.4), 13/rsfk (§25.6.5, §25.6.6), 15/ma (§13), 20/eq (§43), 21/rb (§23), 21/fao (§10), 24/ch (§6), 26/uo (§21.1), 26/lt (§4.1), 26/ts (§10).
The function Emit::push is used in 26/rt (§4.1.2).
@@ -1684,19 +1683,19 @@ insert them into the Inter stream close to the top.
The function Emit::at is used in §4.
-The function Emit::down is used in §4, 4/am (§35, §43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3, §27.3.1, §27.3.2, §27.3.3, §27.3.4), 5/ins (§29), 5/nv (§12, §16), 6/bp (§25, §33), 6/rlt (§15, §15.2, §15.2.1, §15.2.4, §15.2.5, §15.2.5.1, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§17, §18.1, §18.2, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/ca (§5.2), 12/dtd (§7.1, §7.1.1, §7.1.2, §8, §9, §9.1, §11, §15, §16, §17, §18, §19, §20, §22, §23, §25, §26, §27), 12/cdp (§2.1.6, §2.1.6.1.2.2, §2.1.6.1.2.3.2, §2.1.6.1.2.3.7, §2.1.6.1.2.4, §2.1.6.1.2.5, §2.1.6.1.2.3.3.1, §2.1.6.1.2.2.2, §2.1.6.1.2.2.2.1, §2.1.6.1.7, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.13, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1, §2.1.6.1.15, §2.1.6.1.17, §2.1.6.1.2.2.7, §2.1.6.1.18), 13/kak (§2), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.10, §1.11, §1.12, §1.13), 13/rsfk (§7, §16.3, §20, §26.1, §26.2, §26.3, §26.4.1, §26.4.2, §26.5, §26.5.1, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6, §27), 14/rv (§24.3), 14/lv (§14.3, §14.3.2, §14.4, §14.5), 14/cn (§16.1, §16.2, §16.3), 14/cfs (§7), 15/ma (§13), 15/epv (§4), 17/tl (§14.2), 17/ts (§8, §11.1), 17/rs (§6.1, §6.2, §7.2), 19/tc (§8), 19/rsft (§2), 20/eq (§48), 21/rl (§11, §11.2, §20, §20.1, §20.2, §22.1), 21/rb (§24.1.1, §24.1.2, §24.1.3, §24.1.4, §24.1.5, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 21/ac (§14), 22/prcd (§10, §10.2, §10.3, §10.4, §10.5, §10.1.1.1), 22/pav (§9.2), 23/abc (§1), 24/lv (§28, §29, §41, §43), 24/pb (§17), 24/ch (§3, §4, §6, §7, §7.1, §7.2, §7.3, §7.4, §7.4.1, §7.5), 25/ci (§3, §3.2.3, §3.2.3.2, §3.2.3.1.1, §3.2.3.3, §3.2.3.6, §3.2.3.3.1.2, §3.2.3.4.1.1, §3.2.3.3.1.2.1, §3.2.3.3.1.3, §4.2), 25/ciac (§2), 25/cii (§1.2.1, §3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8, §3.5.8.1, §3.5.8.2, §3.5.8.3, §3.5.9), 25/cp (§3.3.1, §5.2.1, §5.3.4, §5.3.5, §5.3.5.1, §5.3.5.2, §5.3.5.3), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/rt (§4.1.2, §4.1.3, §4.1.4, §4.1.5), 26/iti (§9), 26/ts (§10, §11, §12), 27/is (§31.2, §31.3, §31.4, §31.5, §31.6, §31.7, §31.8, §31.9).
+The function Emit::down is used in §4, 4/am (§35, §43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3, §27.3.1, §27.3.2, §27.3.3, §27.3.4), 5/ins (§29), 5/nv (§12, §16), 6/bp (§25, §33), 6/rlt (§15, §15.2, §15.2.1, §15.2.4, §15.2.5, §15.2.5.1, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§17, §18.1, §18.2, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/ca (§5.2), 12/dtd (§7.1, §7.1.1, §7.1.2, §8, §9, §9.1, §11, §15, §16, §17, §18, §19, §20, §22, §23, §25, §26, §27), 12/cdp (§2.1.6, §2.1.6.1.2.2, §2.1.6.1.2.3.2, §2.1.6.1.2.3.7, §2.1.6.1.2.4, §2.1.6.1.2.5, §2.1.6.1.2.3.3.1, §2.1.6.1.2.2.2, §2.1.6.1.2.2.2.1, §2.1.6.1.7, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.13, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1, §2.1.6.1.15, §2.1.6.1.17, §2.1.6.1.2.2.7, §2.1.6.1.18), 13/kak (§2), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.10, §1.11, §1.12, §1.13), 13/rsfk (§7, §16.3, §19, §25.1, §25.2, §25.3, §25.4.1, §25.4.2, §25.5, §25.5.1, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6, §26), 14/rv (§24.3), 14/lv (§14.3, §14.3.2, §14.4, §14.5), 14/cn (§16.1, §16.2, §16.3), 14/cfs (§7), 15/ma (§13), 15/epv (§4), 17/tl (§14.2), 17/ts (§8, §11.1), 17/rs (§6.1, §6.2, §7.2), 19/tc (§8), 19/rsft (§2), 20/eq (§48), 21/rl (§11, §11.2, §20, §20.1, §20.2, §22.1), 21/rb (§24.1.1, §24.1.2, §24.1.3, §24.1.4, §24.1.5, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 21/ac (§14), 22/prcd (§10, §10.2, §10.3, §10.4, §10.5, §10.1.1.1), 22/pav (§9.2), 23/abc (§1), 24/lv (§28, §29, §41, §43), 24/pb (§17), 24/ch (§3, §4, §6, §7, §7.1, §7.2, §7.3, §7.4, §7.4.1, §7.5), 25/ci (§3, §3.2.3, §3.2.3.2, §3.2.3.1.1, §3.2.3.3, §3.2.3.6, §3.2.3.3.1.2, §3.2.3.4.1.1, §3.2.3.3.1.2.1, §3.2.3.3.1.3, §4.2), 25/ciac (§2), 25/cii (§1.2.1, §3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8, §3.5.8.1, §3.5.8.2, §3.5.8.3, §3.5.9), 25/cp (§3.3.1, §5.2.1, §5.3.4, §5.3.5, §5.3.5.1, §5.3.5.2, §5.3.5.3), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/rt (§4.1.2, §4.1.3, §4.1.4, §4.1.5), 26/iti (§9), 26/ts (§10, §11, §12), 27/is (§31.2, §31.3, §31.4, §31.5, §31.6, §31.7, §31.8, §31.9).
-The function Emit::up is used in §4, 4/am (§35, §43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3, §27.3.1, §27.3.2, §27.3.3, §27.3.4), 5/ins (§29), 5/nv (§12, §16), 6/bp (§25, §33), 6/rlt (§15, §15.2, §15.2.1, §15.2.4, §15.2.5, §15.2.5.1, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§17, §18.1, §18.2, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/is (§8), 12/ca (§5.2), 12/dtd (§7.1, §7.1.2, §8, §9, §9.1, §11, §15, §16, §17, §18, §19, §20, §22, §23, §25, §26, §27), 12/cdp (§2.1.6, §2.1.6.1, §2.1.6.1.2.2, §2.1.6.1.2.3.3, §2.1.6.1.2.3.7, §2.1.6.1.2.4, §2.1.6.1.2.5, §2.1.6.1.2.6, §2.1.6.1.2.2.2, §2.1.6.1.2.2.2.1, §2.1.6.1.7, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.13, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1, §2.1.6.1.15, §2.1.6.1.17, §2.1.6.1.2.2.7, §2.1.6.1.18), 13/kak (§2), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.10, §1.11, §1.12, §1.13), 13/rsfk (§16.3, §20, §26.1, §26.2, §26.3, §26.4.1, §26.4.2, §26.5, §26.5.1, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6, §27), 14/rv (§24.3), 14/lv (§14.3, §14.3.2, §14.4, §14.5), 14/cn (§16.1, §16.2, §16.3), 14/cfs (§7, §8), 15/ma (§13), 15/epv (§4), 17/tl (§14.2), 17/ts (§8, §11.1), 17/rs (§6.1, §6.2, §7.2, §12.1.1), 19/tc (§8), 19/rsft (§2), 20/eq (§48), 21/rl (§11, §11.2, §20, §20.1, §20.2, §22.1), 21/rb (§24.1.1, §24.1.2, §24.1.3, §24.1.4, §24.1.5, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 21/ac (§14), 22/prcd (§10, §10.3, §10.4, §10.1.1.1), 22/pav (§9.2), 23/abc (§1), 24/lv (§28, §29, §41, §43), 24/pb (§17), 24/ch (§3, §4, §6, §7, §7.1, §7.2, §7.3, §7.4, §7.4.1, §7.5), 25/ci (§3, §3.2.3, §3.2.3.2, §3.2.3.1.1, §3.2.3.3, §3.2.3.6, §3.2.3.4.1, §3.2.3.3.1.2.1, §3.2.3.3.1.3, §4.2), 25/ciac (§2), 25/cii (§1.2.1, §3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8, §3.5.8.1, §3.5.8.2, §3.5.8.3, §3.5.9), 25/cp (§3.3.1, §5.2.1, §5.3.4, §5.3.5, §5.3.5.1, §5.3.5.2, §5.3.5.3, §5.4.5), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/rt (§4.1.2, §4.1.3, §4.1.4, §4.1.5), 26/iti (§9), 26/ts (§10, §11, §12), 27/is (§31.2, §31.3, §31.4, §31.5, §31.6, §31.7, §31.8, §31.9).
+The function Emit::up is used in §4, 4/am (§35, §43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3, §27.3.1, §27.3.2, §27.3.3, §27.3.4), 5/ins (§29), 5/nv (§12, §16), 6/bp (§25, §33), 6/rlt (§15, §15.2, §15.2.1, §15.2.4, §15.2.5, §15.2.5.1, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6, §30), 6/nv (§17, §18.1, §18.2, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/is (§8), 12/ca (§5.2), 12/dtd (§7.1, §7.1.2, §8, §9, §9.1, §11, §15, §16, §17, §18, §19, §20, §22, §23, §25, §26, §27), 12/cdp (§2.1.6, §2.1.6.1, §2.1.6.1.2.2, §2.1.6.1.2.3.3, §2.1.6.1.2.3.7, §2.1.6.1.2.4, §2.1.6.1.2.5, §2.1.6.1.2.6, §2.1.6.1.2.2.2, §2.1.6.1.2.2.2.1, §2.1.6.1.7, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.13, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1, §2.1.6.1.15, §2.1.6.1.17, §2.1.6.1.2.2.7, §2.1.6.1.18), 13/kak (§2), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.10, §1.11, §1.12, §1.13), 13/rsfk (§16.3, §19, §25.1, §25.2, §25.3, §25.4.1, §25.4.2, §25.5, §25.5.1, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6, §26), 14/rv (§24.3), 14/lv (§14.3, §14.3.2, §14.4, §14.5), 14/cn (§16.1, §16.2, §16.3), 14/cfs (§7, §8), 15/ma (§13), 15/epv (§4), 17/tl (§14.2), 17/ts (§8, §11.1), 17/rs (§6.1, §6.2, §7.2, §12.1.1), 19/tc (§8), 19/rsft (§2), 20/eq (§48), 21/rl (§11, §11.2, §20, §20.1, §20.2, §22.1), 21/rb (§24.1.1, §24.1.2, §24.1.3, §24.1.4, §24.1.5, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 21/ac (§14), 22/prcd (§10, §10.3, §10.4, §10.1.1.1), 22/pav (§9.2), 23/abc (§1), 24/lv (§28, §29, §41, §43), 24/pb (§17), 24/ch (§3, §4, §6, §7, §7.1, §7.2, §7.3, §7.4, §7.4.1, §7.5), 25/ci (§3, §3.2.3, §3.2.3.2, §3.2.3.1.1, §3.2.3.3, §3.2.3.6, §3.2.3.4.1, §3.2.3.3.1.2.1, §3.2.3.3.1.3, §4.2), 25/ciac (§2), 25/cii (§1.2.1, §3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8, §3.5.8.1, §3.5.8.2, §3.5.8.3, §3.5.9), 25/cp (§3.3.1, §5.2.1, §5.3.4, §5.3.5, §5.3.5.1, §5.3.5.2, §5.3.5.3, §5.4.5), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/rt (§4.1.2, §4.1.3, §4.1.4, §4.1.5), 26/iti (§9), 26/ts (§10, §11, §12), 27/is (§31.2, §31.3, §31.4, §31.5, §31.6, §31.7, §31.8, §31.9).
The function Emit::pop_code_position is used in 17/ts (§11).
-The function Emit::code is used in 4/am (§35, §43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3.3, §27.3.4), 6/bp (§25), 6/rlt (§15.2, §15.2.4, §15.2.9, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6), 6/nv (§18.1, §18.2, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/dtd (§23, §27), 12/cdp (§2.1.6, §2.1.6.1.2.3.3.1, §2.1.6.1.2.2.3, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.17), 13/rsfk (§16.3, §26.3, §26.5, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6, §27), 15/ma (§13), 17/ts (§11.1), 17/rs (§6.2, §7.2), 19/tc (§8), 19/rsft (§2), 21/rl (§11, §20, §20.2), 21/rb (§24.1.2, §24.1.3, §24.1.4, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 22/prcd (§10, §10.2, §10.3, §10.4, §10.5, §10.1.1.1), 24/ch (§6, §7, §7.4, §7.5), 25/ci (§3.2.3.3, §3.2.3.6, §3.2.3.3.1.2), 25/cii (§3.5.9), 25/cp (§5.3.4, §5.3.5, §5.3.5.1, §5.3.5.2, §5.3.5.3), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/ts (§10), 27/is (§31.2).
+The function Emit::code is used in 4/am (§35, §43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3.3, §27.3.4), 6/bp (§25), 6/rlt (§15.2, §15.2.4, §15.2.9, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6), 6/nv (§18.1, §18.2, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/dtd (§23, §27), 12/cdp (§2.1.6, §2.1.6.1.2.3.3.1, §2.1.6.1.2.2.3, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.17), 13/rsfk (§16.3, §25.3, §25.5, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6, §26), 15/ma (§13), 17/ts (§11.1), 17/rs (§6.2, §7.2), 19/tc (§8), 19/rsft (§2), 21/rl (§11, §20, §20.2), 21/rb (§24.1.2, §24.1.3, §24.1.4, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 22/prcd (§10, §10.2, §10.3, §10.4, §10.5, §10.1.1.1), 24/ch (§6, §7, §7.4, §7.5), 25/ci (§3.2.3.3, §3.2.3.6, §3.2.3.3.1.2), 25/cii (§3.5.9), 25/cp (§5.3.4, §5.3.5, §5.3.5.1, §5.3.5.2, §5.3.5.3), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/ts (§10), 27/is (§31.2).
The function Emit::evaluation is used in 26/iti (§9), 27/is (§31.9).
The function Emit::reference is used in 13/ca (§1.10), 27/is (§31.6, §31.9).
-The function Emit::val is used in §4, 4/am (§43), 5/lp (§19, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3.3, §27.3.4), 5/nv (§12), 6/rlt (§15, §15.2.1, §15.2.4, §15.2.6, §15.2.7, §15.2.8, §15.2.10, §15.2.11, §15.2.12, §15.2.12.1), 6/nv (§17, §18.1, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/is (§7.3), 12/dtd (§7, §8, §9, §9.1, §10, §15, §18, §19, §20, §22, §23, §25, §26, §27), 12/cdp (§2.1.6, §2.1.6.1.2.3.7, §2.1.6.1.2.5, §2.1.6.1.2.2.3, §2.1.6.1.10, §2.1.6.1.11, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.17), 13/rsfk (§9, §16.3, §20, §26.4.1, §26.4.2, §26.5, §26.5.1, §26.6.2, §26.6.3, §26.6.4), 14/vh (§3), 14/lv (§14.5), 14/cn (§16, §16.3), 15/epv (§4), 16/is (§29), 17/rs (§6.2, §7.2), 19/tc (§8), 21/rl (§11.1, §11.2, §20), 21/rb (§24.1.3, §24.1.5), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 21/ac (§14), 22/prcd (§10, §10.5, §10.1.1.1), 22/pav (§9.2), 24/lv (§28, §29, §43), 24/ch (§3, §4, §7.1, §7.2, §7.3, §7.4, §7.5), 25/ci (§3.2.3.1.1, §3.2.3.6, §3.2.3.3.1.3), 25/ciac (§2, §2.1), 25/cii (§3.1, §3.4.2, §3.1.1.4.10, §3.1.1.4.11, §3.6.1), 25/cp (§3.3.1, §5.2.1), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/rt (§4.1.2, §4.1.4), 26/iti (§9), 26/ts (§10, §12), 27/is (§31.5, §31.9).
+The function Emit::val is used in §4, 4/am (§43), 5/lp (§19, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3.3, §27.3.4), 5/nv (§12), 6/rlt (§15, §15.2.1, §15.2.4, §15.2.6, §15.2.7, §15.2.8, §15.2.10, §15.2.11, §15.2.12, §15.2.12.1), 6/nv (§17, §18.1, §18.1.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 12/is (§7.3), 12/dtd (§7, §8, §9, §9.1, §10, §15, §18, §19, §20, §22, §23, §25, §26, §27), 12/cdp (§2.1.6, §2.1.6.1.2.3.7, §2.1.6.1.2.5, §2.1.6.1.2.2.3, §2.1.6.1.10, §2.1.6.1.11, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.17), 13/rsfk (§9, §16.3, §19, §25.4.1, §25.4.2, §25.5, §25.5.1, §25.6.2, §25.6.3, §25.6.4), 14/vh (§3), 14/lv (§14.5), 14/cn (§16, §16.3), 15/epv (§4), 16/is (§29), 17/rs (§6.2, §7.2), 19/tc (§8), 21/rl (§11.1, §11.2, §20), 21/rb (§24.1.3, §24.1.5), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3), 21/ac (§14), 22/prcd (§10, §10.5, §10.1.1.1), 22/pav (§9.2), 24/lv (§28, §29, §43), 24/ch (§3, §4, §7.1, §7.2, §7.3, §7.4, §7.5), 25/ci (§3.2.3.1.1, §3.2.3.6, §3.2.3.3.1.3), 25/ciac (§2, §2.1), 25/cii (§3.1, §3.4.2, §3.1.1.4.10, §3.1.1.4.11, §3.6.1), 25/cp (§3.3.1, §5.2.1), 26/uo (§21.1, §21.2), 26/lt (§4.1), 26/rt (§4.1.2, §4.1.4), 26/iti (§9), 26/ts (§10, §12), 27/is (§31.5, §31.9).
The function Emit::val_nothing is used in 4/am (§43), 6/rlt (§29.1, §29.2, §29.3), 12/cdp (§2.1.6.1.11, §2.1.6.1.18).
@@ -1704,11 +1703,11 @@ insert them into the Inter stream close to the top.
The function Emit::ref appears nowhere else.
-The function Emit::val_iname is used in §4, 4/am (§30, §43), 5/lp (§19, §19.3.1, §19.3.2, §19.2.1), 5/ins (§29), 5/nv (§12, §16), 6/bp (§25, §33), 6/rlt (§15, §15.2, §15.2.1, §15.2.5, §15.2.5.1, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.2, §29.3, §29.4, §29.5, §29.6), 6/nv (§17, §18.1, §18.2), 12/is (§8), 12/dtd (§9, §9.1, §13, §16, §18, §19, §22, §26), 12/cdp (§2.1.6.1.2.5, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.2.2.5, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1), 13/kak (§2), 13/rsfk (§16.3, §26.3, §26.5, §26.5.1, §26.6.3, §26.6.6, §27), 14/lv (§14.3, §14.4, §14.5), 15/epv (§4), 17/ts (§8, §11.1), 17/rs (§5, §6.1, §6.2, §7.2), 19/rsft (§2), 20/eq (§48), 21/rl (§20, §20.1, §20.2), 21/rb (§24.1.1, §24.1.2, §24.1.3, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3.1, §3.2), 21/ac (§14), 22/prcd (§10, §10.3, §10.4, §10.1.1.1), 24/lv (§28, §29), 24/ch (§3, §7.1, §7.2, §7.3), 25/ci (§3, §3.2.3), 25/cii (§3.2.3, §3.2.4, §3.2.5, §3.2.6, §3.4.3, §3.1.1.4.7.1, §3.1.1.4.10, §3.5.8.3, §3.6.2, §3.6.3), 26/lt (§4.1), 26/iti (§9), 26/ts (§10, §11), 27/is (§31.8.1).
+The function Emit::val_iname is used in §4, 4/am (§30, §43), 5/lp (§19, §19.3.1, §19.3.2, §19.2.1), 5/ins (§29), 5/nv (§12, §16), 6/bp (§25, §33), 6/rlt (§15, §15.2, §15.2.1, §15.2.5, §15.2.5.1, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.2, §29.3, §29.4, §29.5, §29.6), 6/nv (§17, §18.1, §18.2), 12/is (§8), 12/dtd (§9, §9.1, §13, §16, §18, §19, §22, §26), 12/cdp (§2.1.6.1.2.5, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.2.2.5, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1), 13/kak (§2), 13/rsfk (§16.3, §25.3, §25.5, §25.5.1, §25.6.3, §25.6.6, §26), 14/lv (§14.3, §14.4, §14.5), 15/epv (§4), 17/ts (§8, §11.1), 17/rs (§5, §6.1, §6.2, §7.2), 19/rsft (§2), 20/eq (§48), 21/rl (§20, §20.1, §20.2), 21/rb (§24.1.1, §24.1.2, §24.1.3, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3.1, §3.2), 21/ac (§14), 22/prcd (§10, §10.3, §10.4, §10.1.1.1), 24/lv (§28, §29), 24/ch (§3, §7.1, §7.2, §7.3), 25/ci (§3, §3.2.3), 25/cii (§3.2.3, §3.2.4, §3.2.5, §3.2.6, §3.4.3, §3.1.1.4.7.1, §3.1.1.4.10, §3.5.8.3, §3.6.2, §3.6.3), 26/lt (§4.1), 26/iti (§9), 26/ts (§10, §11), 27/is (§31.8.1).
-The function Emit::val_symbol is used in 4/am (§43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3.3, §27.3.4), 5/ins (§29), 6/bp (§25), 6/rlt (§15.2, §15.2.1, §15.2.4, §15.2.5, §15.2.5.1, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6), 6/nv (§18.1, §18.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 11/tr (§10), 12/dtd (§23, §25, §26, §27), 12/cad (§7), 12/cdp (§2.1.6, §2.1.6.1.7, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.13, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1, §2.1.6.1.15, §2.1.6.1.17, §2.1.6.1.2.2.7), 13/kak (§2), 13/rsfk (§9, §12, §16.3, §26.1, §26.2, §26.3, §26.4.1, §26.4.2, §26.5, §26.5.1, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6, §27), 14/lv (§14.1, §14.5), 14/cn (§16.3), 15/epv (§4), 17/rs (§6.2, §7.2), 19/tc (§8), 19/rsft (§2), 20/eq (§48), 21/rl (§20, §20.1, §20.2), 21/rb (§24.1.3, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 24/lv (§28, §41, §45), 24/ch (§7, §7.1, §7.2, §7.3, §7.4, §7.5), 25/cii (§3.5.1, §3.5.3, §3.6.2), 26/uo (§21.1, §21.2), 26/rt (§4.1.3, §4.1.5), 27/is (§31.9).
+The function Emit::val_symbol is used in 4/am (§43), 5/lp (§19, §19.1, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27, §27.2, §27.3.3, §27.3.4), 5/ins (§29), 6/bp (§25), 6/rlt (§15.2, §15.2.1, §15.2.4, §15.2.5, §15.2.5.1, §15.2.6, §15.2.7, §15.2.8, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §17, §29.1, §29.2, §29.3, §29.4, §29.5, §29.6), 6/nv (§18.1, §18.2, §18.1.2.1, §18.1.2.2, §19), 8/ef (§19), 11/tr (§10), 12/dtd (§23, §25, §26, §27), 12/cad (§7), 12/cdp (§2.1.6, §2.1.6.1.7, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.13, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1, §2.1.6.1.15, §2.1.6.1.17, §2.1.6.1.2.2.7), 13/kak (§2), 13/rsfk (§9, §12, §16.3, §25.1, §25.2, §25.3, §25.4.1, §25.4.2, §25.5, §25.5.1, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6, §26), 14/lv (§14.1, §14.5), 14/cn (§16.3), 15/epv (§4), 17/rs (§6.2, §7.2), 19/tc (§8), 19/rsft (§2), 20/eq (§48), 21/rl (§20, §20.1, §20.2), 21/rb (§24.1.3, §24.1.3.1), 21/rl2 (§14.1), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 24/lv (§28, §41, §45), 24/ch (§7, §7.1, §7.2, §7.3, §7.4, §7.5), 25/cii (§3.5.1, §3.5.3, §3.6.2), 26/uo (§21.1, §21.2), 26/rt (§4.1.3, §4.1.5), 27/is (§31.9).
-The function Emit::val_text is used in 4/am (§43), 5/lp (§19, §27.3, §27.3.1, §27.3.2, §27.3.3), 6/rlt (§15), 6/nv (§18.2, §19), 8/ef (§19), 13/rsfk (§26.3, §27), 17/tl (§14.2), 17/ts (§11.1), 17/rs (§7.2), 19/rsft (§2), 21/rl (§20.1, §20.2), 21/fao (§10), 24/ch (§7.4), 25/ci (§4.2), 25/cii (§3.5.8.1), 26/uo (§21.2), 26/ts (§10, §11, §12), 27/is (§31.9).
+The function Emit::val_text is used in 4/am (§43), 5/lp (§19, §27.3, §27.3.1, §27.3.2, §27.3.3), 6/rlt (§15), 6/nv (§18.2, §19), 8/ef (§19), 13/rsfk (§25.3, §26), 17/tl (§14.2), 17/ts (§11.1), 17/rs (§7.2), 19/rsft (§2), 21/rl (§20.1, §20.2), 21/fao (§10), 24/ch (§7.4), 25/ci (§4.2), 25/cii (§3.5.8.1), 26/uo (§21.2), 26/ts (§10, §11, §12), 27/is (§31.9).
The function Emit::val_char is used in 27/is (§31.9).
@@ -1720,9 +1719,9 @@ insert them into the Inter stream close to the top.
The function Emit::ref_iname is used in §4, 4/am (§43), 5/lp (§19, §19.1, §19.3.1, §19.3.2, §19.2.2), 6/nv (§17), 12/dtd (§19, §22), 14/lv (§14.3.2), 17/rs (§6.2), 21/rb (§24.1.3), 22/prcd (§10.3), 25/ci (§3, §3.2.3.1.1, §3.2.3.3.1.3), 25/cii (§3.1.1.4.10, §3.5.8.2, §3.5.8.3), 25/cp (§5.2.1), 26/lt (§4.1).
-The function Emit::ref_symbol is used in 4/am (§43), 5/lp (§19, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27.3.3), 6/nv (§18.2), 12/dtd (§9, §23, §27), 12/cdp (§2.1.6, §2.1.6.1.2.2, §2.1.6.1.2.3.7, §2.1.6.1.2.4, §2.1.6.1.2.2.2, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.17), 13/rsfk (§26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6), 17/rs (§6.2), 21/rb (§24.1.1, §24.1.3), 21/sv (§3.1, §3.2), 24/lv (§29, §43), 24/ch (§7.1, §7.2, §7.4, §7.4.1), 25/cii (§1.2.1, §3.5.1, §3.5.3), 25/cp (§5.3.5), 26/rt (§4.1.3).
+The function Emit::ref_symbol is used in 4/am (§43), 5/lp (§19, §19.2, §19.3, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2, §27.3.3), 6/nv (§18.2), 12/dtd (§9, §23, §27), 12/cdp (§2.1.6, §2.1.6.1.2.2, §2.1.6.1.2.3.7, §2.1.6.1.2.4, §2.1.6.1.2.2.2, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.10, §2.1.6.1.2.2.4, §2.1.6.1.11, §2.1.6.1.2.2.5, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.17), 13/rsfk (§25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6), 17/rs (§6.2), 21/rb (§24.1.1, §24.1.3), 21/sv (§3.1, §3.2), 24/lv (§29, §43), 24/ch (§7.1, §7.2, §7.4, §7.4.1), 25/cii (§1.2.1, §3.5.1, §3.5.3), 25/cp (§5.3.5), 26/rt (§4.1.3).
-The function Emit::cast is used in 13/rsfk (§26.4.1, §26.4.2).
+The function Emit::cast is used in 13/rsfk (§25.4.1, §25.4.2).
The function Emit::end_block is used in 26/rt (§4, §4.1).
diff --git a/docs/core-module/27-hl.html b/docs/core-module/27-hl.html
index ad7fa5062..6d3e755d5 100644
--- a/docs/core-module/27-hl.html
+++ b/docs/core-module/27-hl.html
@@ -18,6 +18,7 @@
struct package_request *this_mundane_package;
int this_exotic_package;
struct inter_symbol *any_package_of_this_type;
+ int any_enclosure;
} location_requirement;
location_requirement HierarchyLocations::blank(void) {
@@ -26,6 +27,7 @@
req.this_mundane_package = NULL;
req.this_exotic_package = -1;
req.any_package_of_this_type = NULL;
+ req.any_enclosure = FALSE;
return req;
}
@@ -53,6 +55,12 @@
return req;
}
+ location_requirement HierarchyLocations::any_enclosure(void) {
+ location_requirement req = HierarchyLocations::blank();
+ req.any_enclosure = TRUE;
+ return req;
+ }
+
location_requirement HierarchyLocations::this_package(package_request *P) {
location_requirement req = HierarchyLocations::blank();
req.this_mundane_package = P;
@@ -265,21 +273,23 @@
The function HierarchyLocations::synoptic_submodule is used in 27/hr (§1.2, §1.4, §1.6, §1.10, §1.12, §1.18, §1.22, §1.26, §1.28, §1.32, §1.34, §1.36, §1.38, §1.40, §1.42).
-The function HierarchyLocations::any_package_of_type is used in 27/hr (§1.4, §1.6, §1.8, §1.12, §1.14, §1.16, §1.20, §1.22, §1.24, §1.28, §1.30, §1.32, §1.34, §1.36, §1.38, §1.40, §1.42, §1.44).
+The function HierarchyLocations::any_package_of_type is used in 27/hr (§1.4, §1.6, §1.8, §1.12, §1.14, §1.16, §1.20, §1.22, §1.24, §1.28, §1.30, §1.32, §1.34, §1.36, §1.38, §1.40, §1.42, §1.44, §1.46).
-The function HierarchyLocations::this_package is used in 27/hr (§1.48, §5).
+The function HierarchyLocations::any_enclosure is used in 27/hr (§1.46).
-The function HierarchyLocations::this_exotic_package is used in 27/hr (§1.46).
+The function HierarchyLocations::this_package is used in 27/hr (§1.50, §5).
+
+The function HierarchyLocations::this_exotic_package is used in 27/hr (§1.48).
The function HierarchyLocations::new appears nowhere else.
-The function HierarchyLocations::con is used in 27/hr (§1.2, §1.4, §1.6, §1.8, §1.10, §1.12, §1.14, §1.20, §1.22, §1.26, §1.28, §1.30, §1.32, §1.34, §1.36, §1.38, §1.40, §1.42, §1.44, §1.46, §1.48, §5).
+The function HierarchyLocations::con is used in 27/hr (§1.2, §1.4, §1.6, §1.8, §1.10, §1.12, §1.14, §1.20, §1.22, §1.26, §1.28, §1.30, §1.32, §1.34, §1.36, §1.38, §1.40, §1.42, §1.44, §1.46, §1.48, §1.50, §5).
The function HierarchyLocations::package is used in 27/hr (§1.4, §1.6).
The function HierarchyLocations::make_as is used in 27/hr (§5).
-The function HierarchyLocations::func is used in 27/hr (§1.4, §1.6, §1.8, §1.12, §1.14, §1.16, §1.18, §1.22, §1.24, §1.26, §1.28, §1.30, §1.32, §1.34, §1.36, §1.38, §1.40, §1.42, §1.46).
+The function HierarchyLocations::func is used in 27/hr (§1.4, §1.6, §1.8, §1.12, §1.14, §1.16, §1.18, §1.22, §1.24, §1.26, §1.28, §1.30, §1.32, §1.34, §1.36, §1.38, §1.40, §1.42, §1.46, §1.48).
The function HierarchyLocations::datum is used in 27/hr (§1.10).
@@ -313,11 +323,8 @@
P,
NULL);
} else {
- if (Str::len(nrl->access_name) == 0) {
- LOG("********** %S\n", T);
- iname = InterNames::one_off(T, P);
- } else
- iname = InterNames::one_off(nrl->access_name, P);
+ if (Str::len(nrl->access_name) == 0) iname = InterNames::one_off(T, P);
+ else iname = InterNames::one_off(nrl->access_name, P);
}
if (!Wordings::empty(W)) InterNames::attach_memo(iname, W);
if ((Str::len(T) > 0) && (nrl->access_name)) InterNames::translate(iname, T);
@@ -336,9 +343,17 @@
if ((id < 0) || (id >= MAX_HL) || (nrls_indexed_by_id[id] == NULL))
internal_error("bad nrl ID");
named_resource_location *nrl = nrls_indexed_by_id[id];
- if (nrl->requirements.any_package_of_this_type == NULL) internal_error("NRL accessed inappropriately");
- if ((P == NULL) || (P->eventual_type != nrl->requirements.any_package_of_this_type)) internal_error("subpackage in wrong superpackage");
+
+ if (P == NULL) internal_error("no superpackage");
if (nrl->package_type == NULL) internal_error("package_in_package used wrongly");
+ if (nrl->requirements.any_package_of_this_type) {
+ if (P->eventual_type != nrl->requirements.any_package_of_this_type)
+ internal_error("subpackage in wrong superpackage");
+ } else if (nrl->requirements.any_enclosure) {
+ if (Inter::Symbols::read_annotation(P->eventual_type, ENCLOSING_IANN) != 1)
+ internal_error("subpackage not in enclosing superpackage");
+ } else internal_error("NRL accessed inappropriately");
+
return Packaging::request(InterNames::one_off(nrl->access_name, P), P, nrl->package_type);
}
@@ -412,7 +427,7 @@
The function HierarchyLocations::index_ap appears nowhere else.
-The function HierarchyLocations::ap is used in 27/hr (§1.4, §1.6, §1.8, §1.12, §1.14, §1.16, §1.20, §1.22, §1.24, §1.28, §1.30, §1.32, §1.34, §1.36, §1.38, §1.40, §1.42, §1.44).
+The function HierarchyLocations::ap is used in 27/hr (§1.4, §1.6, §1.8, §1.12, §1.14, §1.16, §1.20, §1.22, §1.24, §1.28, §1.30, §1.32, §1.34, §1.36, §1.38, §1.40, §1.42, §1.44, §1.46).
The function HierarchyLocations::attach_new_package is used in 27/hr (§5).
diff --git a/docs/core-module/27-hr.html b/docs/core-module/27-hr.html
index 804f4cd0f..089d07c65 100644
--- a/docs/core-module/27-hr.html
+++ b/docs/core-module/27-hr.html
@@ -15,11 +15,7 @@
enum BLOCK_CONSTANT_PR_COUNTER from 0
enum BLOCK_PR_COUNTER
- enum FORM_PR_COUNTER
enum INLINE_PR_COUNTER
- enum LITERAL_PR_COUNTER
- enum MISC_PR_COUNTER
- enum PROPOSITION_PR_COUNTER
enum SUBSTITUTION_PR_COUNTER
enum SUBSTITUTIONF_PR_COUNTER
@@ -63,9 +59,10 @@
<Establish rules 1.40>;
<Establish tables 1.42>;
<Establish variables 1.44>;
- <The rest 1.46>;
+ <Establish enclosed matter 1.46>;
+ <The rest 1.48>;
- <Establish template resources 1.48>;
+ <Establish template resources 1.50>;
}
@@ -166,6 +163,7 @@
enum MISTAKEACTION_HL
enum ACTIONS_HAP
+ enum ACTION_BASE_NAME_HL
enum CHECK_RB_HL
enum CARRY_OUT_RB_HL
enum REPORT_RB_HL
@@ -192,6 +190,7 @@
location_requirement local_actions = HierarchyLocations::local_submodule(actions);
HierarchyLocations::ap(ACTIONS_HAP, local_actions, I"action", I"_action");
location_requirement in_action = HierarchyLocations::any_package_of_type(I"_action");
+ HierarchyLocations::con(ACTION_BASE_NAME_HL, NULL, Translation::generate(ACTION_BASE_INAMEF), in_action);
HierarchyLocations::package(CHECK_RB_HL, I"check_rb", I"_rulebook", in_action);
HierarchyLocations::package(CARRY_OUT_RB_HL, I"carry_out_rb", I"_rulebook", in_action);
HierarchyLocations::package(REPORT_RB_HL, I"report_rb", I"_rulebook", in_action);
@@ -379,6 +378,8 @@
enum MODAL_CONJUGATION_FN_HL
enum VERBS_HAP
enum NONMODAL_CONJUGATION_FN_HL
+ enum VERB_FORMS_HAP
+ enum FORM_FN_HL
enum CONJUGATION_FN_HL
§1.14.
@@ -402,6 +403,9 @@
HierarchyLocations::ap(VERBS_HAP, local_conjugations, I"verb", I"_verb");
location_requirement in_verb = HierarchyLocations::any_package_of_type(I"_verb");
HierarchyLocations::func(NONMODAL_CONJUGATION_FN_HL, I"conjugation_fn", Translation::generate(CONJUGATE_VERB_ROUTINE_INAMEF), in_verb);
+ HierarchyLocations::ap(VERB_FORMS_HAP, in_verb, I"form", I"_verb_form");
+ location_requirement in_verb_form = HierarchyLocations::any_package_of_type(I"_verb_form");
+ HierarchyLocations::func(FORM_FN_HL, I"form_fn", Translation::uniqued(), in_verb_form);
@@ -532,6 +536,7 @@
enum INTERNALTESTCASES_HL
enum COMMAND_PR_COUNTER
enum COMMANDS_HAP
+ enum VERB_DECLARATION_ARRAY_HL
§1.22.
<Establish grammar 1.22> =
@@ -596,6 +601,8 @@
HierarchyLocations::func(TESTSCRIPTSUB_HL, I"action_fn", Translation::to(I"TestScriptSub"), synoptic_grammar);
HierarchyLocations::func(INTERNALTESTCASES_HL, I"run_tests_fn", Translation::to(I"InternalTestCases"), synoptic_grammar);
HierarchyLocations::ap(COMMANDS_HAP, synoptic_grammar, I"command", I"_command");
+ location_requirement in_command = HierarchyLocations::any_package_of_type(I"_command");
+ HierarchyLocations::func(VERB_DECLARATION_ARRAY_HL, NULL, Translation::generate(VERB_DECLARATION_ARRAY_INAMEF), in_command);
@@ -691,6 +698,7 @@
enum K_TYPELESS_INT_HL
enum K_TYPELESS_STRING_HL
enum KIND_HAP
+ enum KIND_HL
enum DEFAULT_VALUE_HL
enum DECREMENT_FN_HL
enum INCREMENT_FN_HL
@@ -729,12 +737,13 @@
location_requirement local_kinds = HierarchyLocations::local_submodule(kinds);
HierarchyLocations::ap(KIND_HAP, local_kinds, I"kind", I"_kind");
location_requirement in_kind = HierarchyLocations::any_package_of_type(I"_kind");
+ HierarchyLocations::con(KIND_HL, NULL, Translation::generate(KIND_ID_INAMEF), in_kind);
HierarchyLocations::con(DEFAULT_VALUE_HL, I"default_value", Translation::uniqued(), in_kind);
- HierarchyLocations::con(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
- HierarchyLocations::con(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
- HierarchyLocations::con(PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind);
- HierarchyLocations::con(PRINT_DASH_FN_HL, I"print_fn", Translation::generate(PRINTING_ROUTINE_INAMEF), in_kind);
- HierarchyLocations::con(RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
+ HierarchyLocations::func(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
+ HierarchyLocations::func(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
+ HierarchyLocations::func(PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind);
+ HierarchyLocations::func(PRINT_DASH_FN_HL, I"print_fn", Translation::generate(PRINTING_ROUTINE_INAMEF), in_kind);
+ HierarchyLocations::func(RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(DEFAULT_CLOSURE_FN_HL, I"default_closure_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(GPR_FN_HL, I"gpr_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(INSTANCE_GPR_FN_HL, I"instance_gpr_fn", Translation::uniqued(), in_kind);
@@ -877,6 +886,7 @@
enum RELATIONS_HAP
enum RELATION_RECORD_HL
enum BITMAP_HL
+ enum ABILITIES_HL
enum ROUTE_CACHE_HL
enum HANDLER_FN_HL
enum RELATION_INITIALISER_FN_HL
@@ -923,6 +933,7 @@
location_requirement in_relation = HierarchyLocations::any_package_of_type(I"_relation");
HierarchyLocations::con(RELATION_RECORD_HL, NULL, Translation::generate(RELATION_RECORD_INAMEF), in_relation);
HierarchyLocations::con(BITMAP_HL, I"as_constant", Translation::uniqued(), in_relation);
+ HierarchyLocations::con(ABILITIES_HL, I"abilities", Translation::uniqued(), in_relation);
HierarchyLocations::con(ROUTE_CACHE_HL, I"route_cache", Translation::uniqued(), in_relation);
HierarchyLocations::func(HANDLER_FN_HL, I"handler_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(RELATION_INITIALISER_FN_HL, I"relation_initialiser_fn", Translation::uniqued(), in_relation);
@@ -1094,7 +1105,42 @@
This code is used in §1.
-
+
+
+
+
+ enum LITERALS_HAP
+ enum TEXT_LITERAL_HL
+ enum LIST_LITERAL_HL
+ enum PROPOSITIONS_HAP
+ enum PROPOSITION_HL
+ enum BLOCK_CONSTANTS_HAP
+ enum BLOCK_CONSTANT_HL
+
+§1.46.
+<Establish enclosed matter 1.46> =
+
+
+
+
+ location_requirement in_any_enclosure = HierarchyLocations::any_enclosure();
+ HierarchyLocations::ap(LITERALS_HAP, in_any_enclosure, I"literal", I"_literal");
+ location_requirement in_literal = HierarchyLocations::any_package_of_type(I"_literal");
+ HierarchyLocations::con(TEXT_LITERAL_HL, I"text", Translation::uniqued(), in_literal);
+ HierarchyLocations::con(LIST_LITERAL_HL, I"list", Translation::uniqued(), in_literal);
+ HierarchyLocations::ap(PROPOSITIONS_HAP, in_any_enclosure, I"proposition", I"_proposition");
+ location_requirement in_proposition = HierarchyLocations::any_package_of_type(I"_proposition");
+ HierarchyLocations::func(PROPOSITION_HL, I"prop", Translation::uniqued(), in_proposition);
+ HierarchyLocations::ap(BLOCK_CONSTANTS_HAP, in_any_enclosure, I"block_constant", I"_block_constant");
+ location_requirement in_block_constant = HierarchyLocations::any_package_of_type(I"_block_constant");
+ HierarchyLocations::con(BLOCK_CONSTANT_HL, I"bc", Translation::uniqued(), in_block_constant);
+
+
+
+
+This code is used in §1.
+
+
@@ -1122,8 +1168,8 @@
enum TIME_TOKEN_INNER_HL
enum TRUTH_STATE_TOKEN_INNER_HL
-§1.46.
-<The rest 1.46> =
+
@@ -1166,7 +1212,7 @@
This code is used in §1.
-
+
@@ -1404,8 +1450,8 @@
enum WORDINPROPERTY_HL
enum WORDLENGTH_HL
-§1.48.
-<Establish template resources 1.48> =
+§1.50.
+<Establish template resources 1.50> =
@@ -1780,6 +1826,10 @@
return HierarchyLocations::attach_new_package(Modules::find(current_sentence), NULL, hap_id);
}
+ package_request *Hierarchy::package_in_enclosure(int hap_id) {
+ return HierarchyLocations::attach_new_package(NULL, Packaging::current_enclosure(), hap_id);
+ }
+
package_request *Hierarchy::package_within(int hap_id, package_request *super) {
return HierarchyLocations::attach_new_package(NULL, super, hap_id);
}
@@ -1807,7 +1857,7 @@
-The function Hierarchy::find is used in 4/am (§43), 5/lp (§19, §19.1, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2), 5/nv (§12, §16, §20), 6/bp (§33, §42), 6/rlt (§14, §15, §15.1.2, §15.2, §15.2.1, §15.2.5.1, §15.2.6, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §16, §17, §29.1, §29.5, §29.6), 6/nv (§17, §18, §18.1, §18.2), 8/ef (§19), 12/is (§8), 12/dtd (§9, §9.1, §17, §19, §22, §27), 12/cdp (§2.1.6.1.2.5, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.2.2.5, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1), 13/kak (§5), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.11, §1.12), 13/rsfk (§4, §16.3, §18.1, §20, §26, §26.5, §26.5.1, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6, §27), 14/rv (§24.3), 14/lv (§14.3, §14.3.2, §14.4, §14.5), 14/cfs (§7), 17/tl (§10, §14.1, §16), 17/ts (§8, §8.1, §11, §11.1), 17/rs (§6.1, §6.2, §7.3, §7.3.1.1), 19/tc (§8), 19/rsft (§1.1.1.1.1.5, §1.2, §1.3, §2), 20/eq (§48), 21/rl (§20, §20.1), 21/rb (§23, §24, §24.1.1, §24.1.2, §24.1.3, §24.1.3.1), 21/rl2 (§14, §14.1, §20), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 21/ac (§8, §14), 22/cs (§8), 22/prcd (§10, §10.3, §10.4, §10.1.1.1), 22/pav (§9.2), 22/tp2 (§4), 24/lv (§28, §29, §41), 24/ch (§3, §4, §6, §7, §7.1, §7.2, §7.3, §8), 25/ci (§3, §3.2.3, §3.2.3.6, §3.2.3.3.1.3), 25/cii (§3.2.6, §3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8.2, §3.5.8.3, §3.6.2), 25/cp (§5.2.1, §6), 26/vm (§8), 26/uo (§21, §21.1), 26/lt (§4.1), 26/rt (§4.1.2, §4.1.3, §4.1.4), 26/iti (§10), 26/pl (§8), 26/ts (§10, §11, §12), 27/ei (§3, §4).
+The function Hierarchy::find is used in 4/am (§43), 5/lp (§19, §19.1, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1, §19.2.2), 5/nv (§12, §16, §20), 6/bp (§33, §42), 6/rlt (§14, §15, §15.1.2, §15.2, §15.2.1, §15.2.5.1, §15.2.6, §15.2.9, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §16, §17, §29.1, §29.5, §29.6), 6/nv (§17, §18, §18.1, §18.2), 8/ef (§19), 12/is (§8), 12/dtd (§9, §9.1, §17, §19, §22, §27), 12/cdp (§2.1.6.1.2.5, §2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §2.1.6.1.2.2.5, §2.1.6.1.14, §2.1.6.1.2.2.6, §2.1.6.1.2.2.6.1), 13/kak (§5), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.11, §1.12), 13/rsfk (§4, §16.3, §18.1, §19, §25, §25.5, §25.5.1, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6, §26), 14/rv (§24.3), 14/lv (§14.3, §14.3.2, §14.4, §14.5), 14/cfs (§7), 17/tl (§10, §14.1, §16), 17/ts (§8, §8.1, §11, §11.1), 17/rs (§6.1, §6.2, §7.3, §7.3.1.1), 19/tc (§8), 19/rsft (§1.1.1.1.1.5, §1.2, §1.3, §2), 20/eq (§48), 21/rl (§20, §20.1), 21/rb (§23, §24, §24.1.1, §24.1.2, §24.1.3, §24.1.3.1), 21/rl2 (§14, §14.1, §20), 21/fao (§10), 21/sv (§3, §3.1, §3.2), 21/ac (§8, §14), 22/cs (§8), 22/prcd (§10, §10.3, §10.4, §10.1.1.1), 22/pav (§9.2), 22/tp2 (§4), 24/lv (§28, §29, §41), 24/ch (§3, §4, §6, §7, §7.1, §7.2, §7.3, §8), 25/ci (§3, §3.2.3, §3.2.3.6, §3.2.3.3.1.3), 25/cii (§3.2.6, §3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8.2, §3.5.8.3, §3.6.2), 25/cp (§5.2.1, §6), 26/vm (§8), 26/uo (§21, §21.1), 26/lt (§4.1), 26/rt (§4.1.2, §4.1.3, §4.1.4), 26/iti (§10), 26/pl (§8), 26/ts (§10, §11, §12), 27/ei (§3, §4).
The function Hierarchy::make_available is used in 27/in (§4).
@@ -1817,7 +1867,7 @@
The function Hierarchy::resources is used in 27/ei (§3), 27/pc (§7).
-The function Hierarchy::template is used in §1.48, 15/ep (§4), 27/ei (§3), 27/hl (§1).
+The function Hierarchy::template is used in §1.50, 15/ep (§4), 27/ei (§3), 27/hl (§1).
The function Hierarchy::package is used in 5/nv (§16), 6/bp (§31), 15/pr (§27), 15/ma (§11.3), 22/ph (§11), 22/tp (§5).
@@ -1825,13 +1875,15 @@
The function Hierarchy::local_package is used in 5/ins (§14), 9/tc (§5.4.2.4), 19/tb (§9), 20/eq (§10.1), 21/rl (§5), 21/fao (§10), 21/ac (§6), 24/ch (§3), 26/lt (§3), 26/ts (§9.1).
+The function Hierarchy::package_in_enclosure is used in 12/dtd (§4), 13/rsfk (§4), 17/tl (§7, §16), 17/ts (§8.1), 18/lc (§11).
+
The function Hierarchy::package_within is used in 4/am (§6), 17/rs (§5), 19/tc (§9), 22/pav (§7), 22/tp (§7).
-The function Hierarchy::make_iname_in is used in 4/am (§6), 6/bp (§32, §42), 6/rlt (§9, §9.13, §20, §20.3), 13/rsfk (§13.1.1, §15), 15/ma (§11.3), 17/rs (§5, §6.1), 19/tc (§9), 19/tb (§9), 20/eq (§10.1), 21/rl (§9, §19), 21/rl2 (§10, §14), 21/ac (§8), 22/ph (§11), 22/pav (§7, §9), 24/ch (§3), 26/lt (§3), 26/jl (§3), 26/ts (§9.1).
+The function Hierarchy::make_iname_in is used in 4/am (§6), 6/bp (§32, §42), 6/rlt (§9, §9.13, §15.1.2, §20, §20.3), 12/dtd (§4), 13/rsfk (§4, §13.1.1, §15), 15/ma (§11.3), 17/tl (§7, §16), 17/ts (§8.1), 17/rs (§5, §6.1), 18/lc (§11), 19/tc (§9), 19/tb (§9), 20/eq (§10.1), 21/rl (§9, §19), 21/rl2 (§10, §14), 21/ac (§8), 22/ph (§11), 22/pav (§7, §9), 24/ch (§3), 26/lt (§3), 26/jl (§3), 26/ts (§9.1).
The function Hierarchy::make_localised_iname_in is used in 22/pu (§6), 22/tp (§7).
-The function Hierarchy::make_iname_with_memo is used in 5/nv (§16), 21/ac (§6).
+The function Hierarchy::make_iname_with_memo is used in 5/nv (§16), 13/rsfk (§13.1.1), 21/ac (§6).
The function Hierarchy::make_package_in is used in 21/ac (§6).
diff --git a/docs/core-module/27-in.html b/docs/core-module/27-in.html
index 50cd04b6d..ad1644f46 100644
--- a/docs/core-module/27-in.html
+++ b/docs/core-module/27-in.html
@@ -342,7 +342,7 @@
The function InterNames::attach_memo is used in §4, 5/un (§1), 13/rsfk (§13.1.1), 15/pr (§27), 15/ep (§4), 15/vp (§3), 19/tb (§20), 21/fao (§10), 27/hl (§1.1).
-The function InterNames::to_symbol is used in §5, 4/am (§43), 5/lp (§19, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1), 5/un (§1), 5/ins (§14), 5/nv (§12), 6/bp (§33), 6/rlt (§15, §15.1.2, §15.1.3, §15.2.1, §15.2.5.1, §15.2.6, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §29.5, §29.6), 6/nv (§17, §18.2), 12/dtd (§4, §7.1.2, §11, §17, §27), 12/cdp (§2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §5), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.11, §1.12), 13/rsfk (§5, §7, §9, §12, §13.1.1, §19, §20, §26.6.1, §26.6.2, §26.6.3, §26.6.4, §26.6.5, §26.6.6), 14/lv (§14.3, §14.4, §14.5), 14/cfs (§7), 15/pr (§21, §22.1, §27), 17/tl (§7, §10.2.1, §13, §14.2), 17/ts (§5, §7, §8), 17/rs (§6.1, §6.2, §7.2), 18/lc (§11), 19/tc (§8), 19/tb (§20), 20/eq (§48), 21/rl (§9, §11.2, §22, §22.1), 21/rb (§24.1.3.1), 21/fao (§10), 21/sv (§3.2), 21/ac (§14), 22/prcd (§10, §10.1.1.1), 22/pav (§9.2), 24/lv (§41), 24/ch (§4), 25/ci (§3.2.3.6), 25/ciac (§2), 25/cii (§3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8, §3.5.8.1), 25/cp (§6), 26/rt (§4, §4.1.2, §4.1.3, §4.1.4), 26/iti (§9), 26/ts (§10, §12), 27/is (§32), 27/ei (§3, §4, §5), 27/pc (§8), 27/hl (§1), 27/hr (§5).
+The function InterNames::to_symbol is used in §5, 4/am (§43), 5/lp (§19, §19.3.1, §19.3.1.1, §19.3.2, §19.2.1), 5/un (§1), 5/ins (§14), 5/nv (§12), 6/bp (§33), 6/rlt (§15, §15.1.3, §15.2.1, §15.2.5.1, §15.2.6, §15.2.10, §15.2.11, §15.2.12, §15.2.9.1, §15.2.10.1, §15.2.12.1, §29.5, §29.6), 6/nv (§17, §18.2), 12/dtd (§7.1.2, §11, §17, §27), 12/cdp (§2.1.6.1.8, §2.1.6.1.2.2.3, §2.1.6.1.9, §5), 13/ca (§1, §1.2, §1.3, §1.4, §1.5, §1.6, §1.7, §1.8, §1.9, §1.11, §1.12), 13/rsfk (§5, §7, §9, §12, §13.1.1, §19, §25.6.1, §25.6.2, §25.6.3, §25.6.4, §25.6.5, §25.6.6), 14/lv (§14.3, §14.4, §14.5), 14/cfs (§7), 15/pr (§21, §22.1, §27), 17/tl (§7, §10.2.1, §13, §14.2), 17/ts (§5, §7, §8), 17/rs (§6.1, §6.2, §7.2), 19/tc (§8), 19/tb (§20), 20/eq (§48), 21/rl (§9, §11.2, §22, §22.1), 21/rb (§24.1.3.1), 21/fao (§10), 21/sv (§3.2), 21/ac (§14), 22/prcd (§10, §10.1.1.1), 22/pav (§9.2), 24/lv (§41), 24/ch (§4), 25/ci (§3.2.3.6), 25/ciac (§2), 25/cii (§3.1.1.4.7.1, §3.1.1.4.9, §3.1.1.4.10, §3.5.3, §3.5.8, §3.5.8.1), 25/cp (§6), 26/rt (§4, §4.1.2, §4.1.3, §4.1.4), 26/iti (§9), 26/ts (§10, §12), 27/is (§32), 27/ei (§3, §4, §5), 27/pc (§8), 27/hl (§1), 27/hr (§5).
The function InterNames::to_text is used in 15/vp (§3).
@@ -352,7 +352,7 @@
The function InterNames::writer is used in 1/cm (§6.3).
-The function InterNames::annotate_i is used in 13/rsfk (§26), 15/pr (§27), 15/epv (§1, §1.1.1).
+The function InterNames::annotate_i is used in 13/rsfk (§25), 15/pr (§27), 15/epv (§1, §1.1.1).
The function InterNames::annotate_t appears nowhere else.
@@ -364,7 +364,7 @@
The function InterNames::to_ival is used in 13/rsfk (§5), 17/tl (§13).
-The function InterNames::defined is used in 13/rsfk (§26).
+The function InterNames::defined is used in 13/rsfk (§25).
@@ -514,7 +514,11 @@
inter_name *InterNames::new_derived(int fnum, inter_name *from) {
inter_name_family *F = InterNames::get_family(fnum);
if (F->fusage != DERIVED_FUSAGE) internal_error("not a derived family");
- if (from->family != F->derivative_of) internal_error("derived from name of wrong family");
+ if (from->family != F->derivative_of) {
+ LOG("From = %n in X\n", from, Packaging::home_of(from));
+ LOG("From family %S but derivative should be of %S\n", from->family->family_name, F->derivative_of->family_name);
+ internal_error("derived from name of wrong family");
+ }
inter_name *N = InterNames::new_in_space(InterNames::root(), F, TRUE);
Packaging::house_with(N, from);
N->derived_from = from;
@@ -579,11 +583,11 @@
The function InterNames::new is used in §5, 13/rsfk (§13.1.1), 17/tl (§14.2), 27/hl (§1).
-The function InterNames::new_in is used in 26/rt (§4), 27/ei (§4), 27/hl (§1).
+The function InterNames::new_in is used in 27/hl (§1).
The function InterNames::mark appears nowhere else.
-The function InterNames::to_module is used in 26/rt (§4), 27/ei (§4).
+The function InterNames::to_module appears nowhere else.
The function InterNames::new_fixed appears nowhere else.
@@ -591,15 +595,15 @@
The function InterNames::new_derived appears nowhere else.
-The function InterNames::icount_name is used in 13/rsfk (§26).
+The function InterNames::icount_name is used in 13/rsfk (§25).
-The function InterNames::constructed_kind_name is used in 13/rsfk (§25).
+The function InterNames::constructed_kind_name is used in 13/rsfk (§24).
The function InterNames::label_base_name is used in 26/jl (§3).
The function InterNames::template_weak_ID_name appears nowhere else.
-The function InterNames::translate is used in 5/un (§1), 13/rsfk (§26), 27/hl (§1.1).
+The function InterNames::translate is used in 5/un (§1), 13/rsfk (§25), 27/hl (§1.1).
diff --git a/docs/core-module/27-pc.html b/docs/core-module/27-pc.html
index 78e4e368d..f43241db9 100644
--- a/docs/core-module/27-pc.html
+++ b/docs/core-module/27-pc.html
@@ -155,13 +155,13 @@
The function Packaging::stateless is used in 15/epv (§2).
-The function Packaging::home_of is used in 12/cdp (§5), 27/hl (§1), 27/hr (§3).
+The function Packaging::home_of is used in 12/cdp (§5), 27/in (§4), 27/hl (§1), 27/hr (§3).
-The function Packaging::enter_home_of is used in 6/bp (§42), 6/rlt (§14, §15.1, §20, §20.3), 6/nv (§18), 12/cdp (§2.1.1), 13/kak (§5), 13/rsfk (§16.2, §26), 15/pr (§27), 15/epv (§1.1.2), 17/tl (§14.1, §14.2), 17/ts (§11), 17/rs (§7.3), 18/lc (§12.1), 19/rsft (§1.1.1.1, §1.1.1.1.1, §1.2, §1.3), 21/rl2 (§14, §20), 21/fao (§10), 21/ac (§6, §8, §14), 22/cs (§8), 22/pav (§8.1), 22/tp2 (§4), 24/ch (§6, §8), 26/vm (§8), 26/uo (§21), 26/lt (§4.1), 26/jl (§6), 26/rt (§1), 26/iti (§10), 26/pl (§12), 26/ts (§10), 27/ei (§3, §4), 27/hr (§4).
+The function Packaging::enter_home_of is used in 6/bp (§42), 6/rlt (§14, §15.1, §20, §20.3), 6/nv (§18), 12/cdp (§2.1.1), 13/kak (§5), 13/rsfk (§4, §16.2, §25), 15/pr (§27), 15/epv (§1.1.2), 17/tl (§14.1, §14.2, §16), 17/ts (§8.1, §11), 17/rs (§7.3), 18/lc (§11, §12.1), 19/rsft (§1.1.1.1, §1.1.1.1.1, §1.2, §1.3), 21/rl2 (§14, §20), 21/fao (§10), 21/ac (§6, §8, §14), 22/cs (§8), 22/pav (§8.1), 22/tp2 (§4), 24/ch (§6, §8), 26/vm (§8), 26/uo (§21), 26/lt (§4.1), 26/jl (§6), 26/rt (§1), 26/iti (§10), 26/pl (§12), 26/ts (§10), 27/ei (§3, §4), 27/hr (§4).
-The function Packaging::enter_current_enclosure is used in 13/rsfk (§4), 17/tl (§16), 17/ts (§8.1), 18/lc (§11).
+The function Packaging::enter_current_enclosure appears nowhere else.
-The function Packaging::current_enclosure is used in 12/dtd (§4), 13/rsfk (§19), 17/tl (§7, §10.2.1, §14.2), 17/ts (§8, §8.1), 18/lc (§5, §11), 26/iti (§9).
+The function Packaging::current_enclosure is used in 17/tl (§10.2.1, §14.2), 17/ts (§8, §8.1), 18/lc (§5), 26/iti (§9), 27/hr (§5).
The structure packaging_state is private to this section.
@@ -236,9 +236,9 @@
-The function Packaging::enter is used in §5, 5/ins (§34), 5/nv (§16), 13/rsfk (§16.1, §26), 15/epv (§2), 16/ic (§10), 17/rs (§6.1, §7.1), 21/rl (§9), 21/rl2 (§20), 22/ph (§12), 27/ei (§3, §4), 27/hl (§1).
+The function Packaging::enter is used in §5, 5/ins (§34), 5/nv (§16), 13/rsfk (§16.1, §25), 15/epv (§2), 16/ic (§10), 17/rs (§6.1, §7.1), 21/rl (§9), 21/rl2 (§20), 22/ph (§12), 27/ei (§3, §4), 27/hl (§1).
-The function Packaging::exit is used in 5/ins (§34), 5/nv (§16), 6/bp (§42), 6/rlt (§14, §15.1, §20, §20.3), 6/nv (§18), 12/cdp (§2.1.1), 13/kak (§5), 13/rsfk (§4, §16.1, §16.2, §26), 15/pr (§27), 15/epv (§1.1.2, §2), 16/ic (§10), 17/tl (§14.1, §14.2, §16), 17/ts (§8.1, §11), 17/rs (§6.1, §7.1, §7.3), 18/lc (§11, §12.1), 19/rsft (§1.1.1.1, §1.1.1.1.1, §1.2, §1.3), 21/rl (§9), 21/rl2 (§14, §20), 21/fao (§10), 21/ac (§6, §8, §14), 22/cs (§8), 22/ph (§12), 22/pav (§8.1), 22/tp2 (§4), 24/ch (§6, §8), 26/vm (§8), 26/uo (§21), 26/lt (§4.1), 26/jl (§6), 26/rt (§4), 26/iti (§10), 26/pl (§12), 26/ts (§10), 27/ei (§3, §4), 27/hl (§1), 27/hr (§4).
+The function Packaging::exit is used in 5/ins (§34), 5/nv (§16), 6/bp (§42), 6/rlt (§14, §15.1, §20, §20.3), 6/nv (§18), 12/cdp (§2.1.1), 13/kak (§5), 13/rsfk (§4, §16.1, §16.2, §25), 15/pr (§27), 15/epv (§1.1.2, §2), 16/ic (§10), 17/tl (§14.1, §14.2, §16), 17/ts (§8.1, §11), 17/rs (§6.1, §7.1, §7.3), 18/lc (§11, §12.1), 19/rsft (§1.1.1.1, §1.1.1.1.1, §1.2, §1.3), 21/rl (§9), 21/rl2 (§14, §20), 21/fao (§10), 21/ac (§6, §8, §14), 22/cs (§8), 22/ph (§12), 22/pav (§8.1), 22/tp2 (§4), 24/ch (§6, §8), 26/vm (§8), 26/uo (§21), 26/lt (§4.1), 26/jl (§6), 26/rt (§4), 26/iti (§10), 26/pl (§12), 26/ts (§10), 27/ei (§3, §4), 27/hl (§1), 27/hr (§4).
The function Packaging::incarnate is used in 21/rl (§9), 27/ei (§3).
@@ -498,15 +498,15 @@
The function Packaging::register_ptype is used in 27/hl (§4).
-The function Packaging::supply_iname is used in 6/rlt (§15.1.2), 12/dtd (§4), 13/rsfk (§19), 17/tl (§7, §10.2.1, §14.2), 17/ts (§5), 18/lc (§11), 27/ei (§4), 27/hl (§3).
+The function Packaging::supply_iname is used in 17/tl (§10.2.1, §14.2), 17/ts (§5), 27/ei (§4), 27/hl (§3).
-The function Packaging::function is used in 12/dtd (§4), 17/tl (§14.2), 17/ts (§5), 27/hl (§1).
+The function Packaging::function is used in 17/tl (§14.2), 17/ts (§5), 27/hl (§1).
The function Packaging::function_text is used in 21/rl (§9), 27/hl (§1, §1.1).
The function Packaging::datum_text is used in 27/hl (§1).
-The function Packaging::house is used in 13/rsfk (§13.1.1, §26), 15/ep (§4), 27/in (§5).
+The function Packaging::house is used in 13/rsfk (§13.1.1, §25), 15/ep (§4), 27/in (§5).
The function Packaging::house_with is used in 26/rt (§4), 27/ei (§4), 27/in (§4).
diff --git a/docs/core-module/27-tr.html b/docs/core-module/27-tr.html
index a9b910b8b..6feae2bd8 100644
--- a/docs/core-module/27-tr.html
+++ b/docs/core-module/27-tr.html
@@ -64,15 +64,15 @@
-The function Translation::same is used in 27/hl (§1), 27/hr (§1.2, §1.4, §1.6, §1.10, §1.12, §1.14, §1.22, §1.26, §1.28, §1.34, §1.36, §1.38, §1.40, §1.42, §1.46, §1.48, §5).
+The function Translation::same is used in 27/hl (§1), 27/hr (§1.2, §1.4, §1.6, §1.10, §1.12, §1.14, §1.22, §1.26, §1.28, §1.34, §1.36, §1.38, §1.40, §1.42, §1.48, §1.50, §5).
-The function Translation::uniqued is used in 27/hr (§1.4, §1.6, §1.8, §1.16, §1.20, §1.22, §1.24, §1.28, §1.30, §1.32, §1.36, §1.38, §1.40, §1.42).
+The function Translation::uniqued is used in 27/hr (§1.4, §1.6, §1.8, §1.14, §1.16, §1.20, §1.22, §1.24, §1.28, §1.30, §1.32, §1.36, §1.38, §1.40, §1.42, §1.46).
-The function Translation::to is used in 27/hr (§1.4, §1.10, §1.12, §1.18, §1.22, §1.26, §1.28, §1.36, §1.38, §1.40, §1.42, §1.46).
+The function Translation::to is used in 27/hr (§1.4, §1.10, §1.12, §1.18, §1.22, §1.26, §1.28, §1.36, §1.38, §1.40, §1.42, §1.48).
The function Translation::to_uniqued appears nowhere else.
-The function Translation::generate is used in 27/hr (§1.6, §1.8, §1.12, §1.14, §1.22, §1.24, §1.28, §1.30, §1.34, §1.36, §1.44).
+The function Translation::generate is used in 27/hr (§1.4, §1.6, §1.8, §1.12, §1.14, §1.22, §1.24, §1.28, §1.30, §1.34, §1.36, §1.44).
The function Translation::generate_in is used in 27/hr (§1.32, §1.40).
diff --git a/docs/core-module/5-ins.html b/docs/core-module/5-ins.html
index 2ba3a1d77..8abadb174 100644
--- a/docs/core-module/5-ins.html
+++ b/docs/core-module/5-ins.html
@@ -461,7 +461,7 @@ turns up subsequently, e.g., in response to
The function Instances::get_name is used in §15.1, §15.2, §27, §37, §38.2, 2/sq (§2), 5/ipw (§2.2.1), 8/ed2 (§3.2.1.7.2, §3.2.1.7.4), 9/rpt (§9.5.1), 9/tc (§5.4.1), 14/rv (§3).
-The function Instances::get_name_in_play is used in §25, 13/rsfk (§26.3).
+The function Instances::get_name_in_play is used in §25, 13/rsfk (§25.3).
The function Instances::full_name_includes appears nowhere else.
@@ -469,7 +469,7 @@ turns up subsequently, e.g., in response to
The function Instances::identifier appears nowhere else.
-The function Instances::iname is used in §6, §15, §29, §34, 13/rsfk (§4, §26.3), 26/iti (§9), 26/ts (§10).
+The function Instances::iname is used in §6, §15, §29, §34, 13/rsfk (§4, §25.3), 26/iti (§9), 26/ts (§10).
@@ -751,7 +751,7 @@ are allowed to refine it. Such revisions are allowed to specialise the kind
-The function Instances::count is used in §37, 5/ipw (§3.3), 13/rsfk (§26), 13/ki (§4), 19/tb (§26.3).
+The function Instances::count is used in §37, 5/ipw (§3.3), 13/rsfk (§25), 13/ki (§4), 19/tb (§26.3).
§23. Connections. Some of Inform's plugins give special meanings to particular kinds, in such
a way that they need to be given additional structure. For example, the
diff --git a/docs/core-module/5-lp.html b/docs/core-module/5-lp.html
index 703830ae0..37ede8c97 100644
--- a/docs/core-module/5-lp.html
+++ b/docs/core-module/5-lp.html
@@ -2531,7 +2531,7 @@ note that the following uses the raw text of the word.
-The function LiteralPatterns::printing_routine is used in 13/rsfk (§26.2).
+The function LiteralPatterns::printing_routine is used in 13/rsfk (§25.2).
§27.1. This was at one time a more complicated criterion, which masked bugs in
the sorting measure.
@@ -4189,7 +4189,7 @@ set.
- The function LiteralPatterns::list_of_literal_forms is used in §2, §34, 13/rsfk (§26.2), 13/ki (§1.8, §5.1.1).
+ The function LiteralPatterns::list_of_literal_forms is used in §2, §34, 13/rsfk (§25.2), 13/ki (§1.8, §5.1.1).
- (This section begins Chapter 5: Nouns.)
- Continue with 'Times of Day'
diff --git a/docs/core-module/5-nv.html b/docs/core-module/5-nv.html
index 84b3c6615..b1402120a 100644
--- a/docs/core-module/5-nv.html
+++ b/docs/core-module/5-nv.html
@@ -609,6 +609,7 @@ there's very little to say.
text_stream *rvalue = NULL;
if (nlv->housed_in_variables_array == FALSE)
rvalue = NonlocalVariables::identifier(nlv);
+ LOG("Doing stuff with %W %n %S as rvalue\n", nlv->name, iname, rvalue);
Emit::variable(iname, nlv->nlv_kind, v1, v2, rvalue);
if (nlv == command_prompt_VAR) {
packaging_state save = Routines::begin(Hierarchy::find(COMMANDPROMPTTEXT_HL));
diff --git a/docs/core-module/5-un.html b/docs/core-module/5-un.html
index ba103f692..269891709 100644
--- a/docs/core-module/5-un.html
+++ b/docs/core-module/5-un.html
@@ -67,13 +67,13 @@ it's convenient to associate them with nametags.
The function UseNouns::identifier is used in 5/ins (§14), 5/ipw (§3.1, §3.5).
-The function UseNouns::iname is used in 5/ins (§14), 13/rsfk (§25).
+The function UseNouns::iname is used in 5/ins (§14), 13/rsfk (§24).
-The function UseNouns::iname_set is used in 13/rsfk (§25).
+The function UseNouns::iname_set is used in 13/rsfk (§24).
The function UseNouns::noun_compose_identifier is used in 5/ins (§14).
-The function UseNouns::noun_impose_identifier is used in 13/rsfk (§25).
+The function UseNouns::noun_impose_identifier is used in 13/rsfk (§24).
The function UseNouns::noun_set_I6_representation is used in §2.1.
diff --git a/docs/core-module/6-rlt.html b/docs/core-module/6-rlt.html
index 0b874df12..8f04e0bd9 100644
--- a/docs/core-module/6-rlt.html
+++ b/docs/core-module/6-rlt.html
@@ -1395,8 +1395,7 @@ logical properties of the two terms of the BP being defined.
binary_predicate *dbp = bp;
if (bp->right_way_round == FALSE) dbp = bp->reversal;
- inter_name *bm_symb = Packaging::supply_iname(bp->bp_package, MISC_PR_COUNTER);
- Inter::Symbols::set_flag(InterNames::to_symbol(bm_symb), MAKE_NAME_UNIQUE);
+ inter_name *bm_symb = Hierarchy::make_iname_in(ABILITIES_HL, bp->bp_package);
Emit::sum_constant_begin(bm_symb, K_value);
if (RELS_TEST_iname == NULL) internal_error("no RELS symbols yet");
Emit::array_iname_entry(RELS_TEST_iname);
diff --git a/docs/if-module/4-act.html b/docs/if-module/4-act.html
index 40c0fe1c1..b9b82dbe8 100644
--- a/docs/if-module/4-act.html
+++ b/docs/if-module/4-act.html
@@ -331,8 +331,7 @@ make that explicit: for instance, "taking" becomes "the taking action".
an->translated = FALSE;
an->an_package = Hierarchy::local_package(ACTIONS_HAP);
- an->an_base_iname = InterNames::new(ACTION_BASE_INAMEF);
- InterNames::attach_memo(an->an_base_iname, W);
+ an->an_base_iname = Hierarchy::make_iname_with_memo(ACTION_BASE_NAME_HL, an->an_package, W);
an->use_verb_routine_in_I6_library = TRUE;
an->check_rules = NULL;
an->carry_out_rules = NULL;
diff --git a/docs/if-module/4-ap.html b/docs/if-module/4-ap.html
index ac8b89d28..f881a83b6 100644
--- a/docs/if-module/4-ap.html
+++ b/docs/if-module/4-ap.html
@@ -2081,9 +2081,10 @@ and in this case we therefore ignore
void PL::Actions::Patterns::as_stored_action(value_holster *VH, action_pattern *ap) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action);
- if (N) InterNames::holster(VH, N);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
action_name *an = PL::Actions::Lists::get_singleton_action(ap->action);
@@ -2118,8 +2119,9 @@ and in this case we therefore ignore Emit::array_iname_entry(Instances::iname(I_yourself));
Emit::array_numeric_entry((inter_t) request_bits);
Emit::array_numeric_entry(0);
- Kinds::RunTime::end_block_constant(K_stored_action);
+ Emit::array_end();
Packaging::exit(save);
+ if (N) InterNames::holster(VH, N);
}
void PL::Actions::Patterns::emit_pattern_match(action_pattern ap, int naming_mode) {
diff --git a/docs/if-module/5-gv.html b/docs/if-module/5-gv.html
index c6ec5c39b..ea56d9317 100644
--- a/docs/if-module/5-gv.html
+++ b/docs/if-module/5-gv.html
@@ -965,9 +965,8 @@ next priority, and so on up the hierarchy.
PL::Parsing::Lines::reset_labels();
switch(gv->gv_is) {
case GV_IS_COMMAND: {
- inter_name *array_iname = InterNames::new(VERB_DECLARATION_ARRAY_INAMEF);
package_request *PR = Hierarchy::synoptic_package(COMMANDS_HAP);
- Packaging::house(array_iname, PR);
+ inter_name *array_iname = Hierarchy::make_iname_in(VERB_DECLARATION_ARRAY_HL, PR);
packaging_state save = Packaging::enter_home_of(array_iname);
PL::Parsing::Verbs::gv_compile_Verb_directive_header(gv, array_iname);
PL::Parsing::Verbs::gv_compile_lines(NULL, gv);
diff --git a/docs/linguistics-module/4-vrb.html b/docs/linguistics-module/4-vrb.html
index abf98df86..01519bc85 100644
--- a/docs/linguistics-module/4-vrb.html
+++ b/docs/linguistics-module/4-vrb.html
@@ -409,11 +409,8 @@ we overwrite that with the new (presumably meaningful) one.
inter_name *Verbs::form_iname(verb_form *vf) {
if (vf->vf_iname == NULL) {
package_request *R = Verbs::verb_package(vf->underlying_verb, vf->where_vf_created);
- vf->vf_iname =
- Packaging::function(
- Packaging::supply_iname(R, FORM_PR_COUNTER),
- R,
- InterNames::new(CONJUGATE_VERB_FORM_INAMEF));
+ package_request *R2 = Hierarchy::package_within(VERB_FORMS_HAP, R);
+ vf->vf_iname = Hierarchy::make_iname_in(FORM_FN_HL, R2);
}
return vf->vf_iname;
}
diff --git a/inform7/core-module/Chapter 12/Deciding to Defer.w b/inform7/core-module/Chapter 12/Deciding to Defer.w
index dc42ebdc9..6d13b29e7 100644
--- a/inform7/core-module/Chapter 12/Deciding to Defer.w
+++ b/inform7/core-module/Chapter 12/Deciding to Defer.w
@@ -56,9 +56,8 @@ pcalc_prop_deferral *Calculus::Deferrals::new_deferred_proposition(pcalc_prop *p
pdef->reason = reason;
pdef->deferred_from = current_sentence;
pdef->rtp_iname = NULL;
- pdef->ppd_iname = Packaging::function(Packaging::supply_iname(Packaging::current_enclosure(), PROPOSITION_PR_COUNTER), Packaging::current_enclosure(), NULL);
-
- Inter::Symbols::set_flag(InterNames::to_symbol(pdef->ppd_iname), MAKE_NAME_UNIQUE);
+ package_request *PR = Hierarchy::package_in_enclosure(PROPOSITIONS_HAP);
+ pdef->ppd_iname = Hierarchy::make_iname_in(PROPOSITION_HL, PR);
if (no_further_deferrals) internal_error("Too late now to defer propositions");
return pdef;
diff --git a/inform7/core-module/Chapter 13/Runtime Support for Kinds.w b/inform7/core-module/Chapter 13/Runtime Support for Kinds.w
index edae405a4..6f43f27fc 100644
--- a/inform7/core-module/Chapter 13/Runtime Support for Kinds.w
+++ b/inform7/core-module/Chapter 13/Runtime Support for Kinds.w
@@ -77,17 +77,21 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
(Kinds::get_construct(K) == CON_phrase) ||
(Kinds::get_construct(K) == CON_relation)) {
if (Kinds::get_construct(K) == CON_list_of) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
inter_name *rks_symb = Kinds::RunTime::compile_default_value_inner(K);
Emit::array_iname_entry(rks_symb);
Emit::array_numeric_entry(0);
- Kinds::RunTime::end_block_constant(K);
+ Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else if (Kinds::Compare::eq(K, K_stored_action)) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
Emit::array_iname_entry(PL::Actions::double_sharp(PL::Actions::Wait()));
Emit::array_numeric_entry(0);
@@ -100,14 +104,16 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
#endif
Emit::array_numeric_entry(0);
Emit::array_numeric_entry(0);
- Kinds::RunTime::end_block_constant(K_stored_action);
+ Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else if (Kinds::get_construct(K) == CON_relation) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Relations::compile_blank_relation(K);
- Kinds::RunTime::end_block_constant(K);
+ Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
} else {
@@ -126,11 +132,13 @@ int Kinds::RunTime::compile_default_value_vh(value_holster *VH, kind *K,
}
if (Kinds::Compare::eq(K, K_text)) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL));
Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
- Kinds::RunTime::end_block_constant(K);
+ Emit::array_end();
Packaging::exit(save);
if (N) InterNames::holster(VH, N);
return TRUE;
@@ -578,15 +586,16 @@ compile under Inform 6.
rks->kind_described = K;
rks->make_default = FALSE;
rks->default_requested_here = NULL;
- rks->rks_iname = InterNames::new(KIND_ID_INAMEF);
package_request *PR = Kinds::Behaviour::package(K);
- Packaging::house(rks->rks_iname, PR);
+// rks->rks_iname = InterNames::new(KIND_ID_INAMEF);
+// Packaging::house(rks->rks_iname, PR);
TEMPORARY_TEXT(TEMP);
Kinds::Textual::write(TEMP, K);
wording W = Feeds::feed_stream(TEMP);
+ rks->rks_iname = Hierarchy::make_iname_with_memo(KIND_HL, PR, W);
DISCARD_TEXT(TEMP);
- InterNames::attach_memo(rks->rks_iname, W);
- InterNames::to_symbol(rks->rks_iname);
+// InterNames::attach_memo(rks->rks_iname, W);
+// InterNames::to_symbol(rks->rks_iname);
rks->rks_dv_iname = Hierarchy::make_iname_in(DEFAULT_VALUE_HL, PR);
@ It's convenient to combine this system with one which constructs default
@@ -805,18 +814,6 @@ has essentially no memory constraints compared with the Z-machine.
LOG("Providing for a total heap of %d, given requirement of %d\n",
max_heap, total_heap_allocation);
-@ =
-inter_name *Kinds::RunTime::begin_block_constant(kind *K) {
- inter_name *N = Packaging::supply_iname(Packaging::current_enclosure(), BLOCK_CONSTANT_PR_COUNTER);
- Inter::Symbols::set_flag(InterNames::to_symbol(N), MAKE_NAME_UNIQUE);
- Emit::named_late_array_begin(N, K_value);
- return N;
-}
-
-void Kinds::RunTime::end_block_constant(kind *K) {
- Emit::array_end();
-}
-
@ The following routine both compiles code to create a pointer value, and
also increments the heap allocation suitably. Each pointer-value kind comes
with an estimate of its likely size needs -- its exact size needs if it is
diff --git a/inform7/core-module/Chapter 17/Text Literals.w b/inform7/core-module/Chapter 17/Text Literals.w
index ec9aeeaf1..7df01b6d9 100644
--- a/inform7/core-module/Chapter 17/Text Literals.w
+++ b/inform7/core-module/Chapter 17/Text Literals.w
@@ -105,10 +105,9 @@ literal_text *Strings::TextLiterals::lt_new(int w1, int colour) {
x->unexpanded = FALSE;
x->small_block_array_needed = FALSE;
x->lt_sba_iname = NULL;
- x->lt_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER);
- Inter::Symbols::set_flag(InterNames::to_symbol(x->lt_iname), MAKE_NAME_UNIQUE);
+ package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
+ x->lt_iname = Hierarchy::make_iname_in(TEXT_LITERAL_HL, PR);
Emit::annotate_symbol_i(InterNames::to_symbol(x->lt_iname), TEXT_LITERAL_IANN, 1);
- InterNames::to_symbol(x->lt_iname);
if ((wn_quote_suppressed >= 0) && (w1 == wn_quote_suppressed)) x->unexpanded = TRUE;
return x;
}
@@ -340,15 +339,17 @@ void Strings::TextLiterals::compile_small_block(OUTPUT_STREAM, literal_text *lt)
literal_text *Strings::TextLiterals::compile_literal_sb(value_holster *VH, wording W) {
literal_text *lt = NULL;
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K_text);
- if (N) InterNames::holster(VH, N);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
lt = Strings::TextLiterals::compile_literal(NULL, FALSE, W);
Emit::array_iname_entry(Hierarchy::find(PACKED_TEXT_STORAGE_HL));
if (lt == NULL) Emit::array_iname_entry(Hierarchy::find(EMPTY_TEXT_PACKED_HL));
else Emit::array_iname_entry(lt->lt_iname);
- Kinds::RunTime::end_block_constant(K_text);
+ Emit::array_end();
Packaging::exit(save);
+ if (N) InterNames::holster(VH, N);
} else {
lt = Strings::TextLiterals::compile_literal(VH, TRUE, W);
}
diff --git a/inform7/core-module/Chapter 17/Text Substitutions.w b/inform7/core-module/Chapter 17/Text Substitutions.w
index 813358f10..af68c168f 100644
--- a/inform7/core-module/Chapter 17/Text Substitutions.w
+++ b/inform7/core-module/Chapter 17/Text Substitutions.w
@@ -162,13 +162,15 @@ void Strings::TextSubstitutions::text_substitution_cue(value_holster *VH, wordin
text_substitution *ts = Strings::TextSubstitutions::new_text_substitution(W, phsf,
adopted_rule_for_compilation, adopted_marker_for_compilation, Packaging::current_enclosure());
if (TEST_COMPILATION_MODE(CONSTANT_CMODE)) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K_text);
- if (N) InterNames::holster(VH, N);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Emit::array_iname_entry(Hierarchy::find(CONSTANT_PACKED_TEXT_STORAGE_HL));
Emit::array_iname_entry(ts->ts_routine_iname);
- Kinds::RunTime::end_block_constant(K_text);
+ Emit::array_end();
Packaging::exit(save);
+ if (N) InterNames::holster(VH, N);
} else {
inter_name *tin = Strings::TextSubstitutions::text_substitution_iname(ts);
if (Holsters::data_acceptable(VH)) {
diff --git a/inform7/core-module/Chapter 18/List Constants.w b/inform7/core-module/Chapter 18/List Constants.w
index 83bf6ae3b..a1199250a 100644
--- a/inform7/core-module/Chapter 18/List Constants.w
+++ b/inform7/core-module/Chapter 18/List Constants.w
@@ -258,12 +258,14 @@ inter_name *Lists::compile_literal_list(wording W) {
int incipit = Wordings::first_wn(W);
literal_list *ll = Lists::find_list_at(incipit+1);
if (ll) {
- kind *K = Lists::kind_of_ll(ll, FALSE);
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K);
+ Lists::kind_of_ll(ll, FALSE);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Emit::array_iname_entry(Lists::iname(ll));
Emit::array_numeric_entry(0);
- Kinds::RunTime::end_block_constant(K);
+ Emit::array_end();
Packaging::exit(save);
return N;
}
@@ -272,8 +274,8 @@ inter_name *Lists::compile_literal_list(wording W) {
inter_name *Lists::iname(literal_list *ll) {
if (ll->ll_iname == NULL) {
- ll->ll_iname = Packaging::supply_iname(Packaging::current_enclosure(), LITERAL_PR_COUNTER);
- Inter::Symbols::set_flag(InterNames::to_symbol(ll->ll_iname), MAKE_NAME_UNIQUE);
+ package_request *PR = Hierarchy::package_in_enclosure(LITERALS_HAP);
+ ll->ll_iname = Hierarchy::make_iname_in(LIST_LITERAL_HL, PR);
}
return ll->ll_iname;
}
diff --git a/inform7/core-module/Chapter 26/Routines.w b/inform7/core-module/Chapter 26/Routines.w
index d48f2596f..10ce2f919 100644
--- a/inform7/core-module/Chapter 26/Routines.w
+++ b/inform7/core-module/Chapter 26/Routines.w
@@ -87,9 +87,7 @@ void Routines::end_in_current_package(void) {
kernel_name = InterNames::one_off(I"kernel", public_name->eventual_owner);
Inter::Symbols::set_flag(InterNames::to_symbol(kernel_name), MAKE_NAME_UNIQUE);
} else {
- kernel_name = InterNames::new_in(KERNEL_ROUTINE_INAMEF, InterNames::to_module(public_name));
- LOG("PN is %n\n", public_name);
- internal_error("Routine not in function");
+ internal_error("routine not housed in function");
}
Packaging::house_with(kernel_name, public_name);
}
diff --git a/inform7/core-module/Chapter 27/Emit.w b/inform7/core-module/Chapter 27/Emit.w
index d19c6b615..b0305716b 100644
--- a/inform7/core-module/Chapter 27/Emit.w
+++ b/inform7/core-module/Chapter 27/Emit.w
@@ -973,8 +973,7 @@ inter_symbol *Emit::block(inter_name *iname) {
inter_name *block_iname = NULL;
if (Packaging::houseed_in_function(iname))
block_iname = Packaging::supply_iname(iname->eventual_owner, BLOCK_PR_COUNTER);
- else
- block_iname = InterNames::new_in(ROUTINE_BLOCK_INAMEF, InterNames::to_module(iname));
+ else internal_error("routine outside function package");
Packaging::house_with(block_iname, iname);
inter_symbol *rsymb = Emit::package(block_iname, code_packagetype, NULL);
diff --git a/inform7/core-module/Chapter 27/Hierarchy Locations.w b/inform7/core-module/Chapter 27/Hierarchy Locations.w
index 1513c1a46..6721f62fe 100644
--- a/inform7/core-module/Chapter 27/Hierarchy Locations.w
+++ b/inform7/core-module/Chapter 27/Hierarchy Locations.w
@@ -8,6 +8,7 @@ typedef struct location_requirement {
struct package_request *this_mundane_package;
int this_exotic_package;
struct inter_symbol *any_package_of_this_type;
+ int any_enclosure;
} location_requirement;
location_requirement HierarchyLocations::blank(void) {
@@ -16,6 +17,7 @@ location_requirement HierarchyLocations::blank(void) {
req.this_mundane_package = NULL;
req.this_exotic_package = -1;
req.any_package_of_this_type = NULL;
+ req.any_enclosure = FALSE;
return req;
}
@@ -43,6 +45,12 @@ location_requirement HierarchyLocations::any_package_of_type(text_stream *ptype_
return req;
}
+location_requirement HierarchyLocations::any_enclosure(void) {
+ location_requirement req = HierarchyLocations::blank();
+ req.any_enclosure = TRUE;
+ return req;
+}
+
location_requirement HierarchyLocations::this_package(package_request *P) {
location_requirement req = HierarchyLocations::blank();
req.this_mundane_package = P;
@@ -251,11 +259,8 @@ inter_name *HierarchyLocations::find_in_package(int id, package_request *P, word
P,
NULL);
} else {
- if (Str::len(nrl->access_name) == 0) {
- LOG("********** %S\n", T);
- iname = InterNames::one_off(T, P);
- } else
- iname = InterNames::one_off(nrl->access_name, P);
+ if (Str::len(nrl->access_name) == 0) iname = InterNames::one_off(T, P);
+ else iname = InterNames::one_off(nrl->access_name, P);
}
if (!Wordings::empty(W)) InterNames::attach_memo(iname, W);
if ((Str::len(T) > 0) && (nrl->access_name)) InterNames::translate(iname, T);
@@ -266,9 +271,17 @@ package_request *HierarchyLocations::package_in_package(int id, package_request
if ((id < 0) || (id >= MAX_HL) || (nrls_indexed_by_id[id] == NULL))
internal_error("bad nrl ID");
named_resource_location *nrl = nrls_indexed_by_id[id];
- if (nrl->requirements.any_package_of_this_type == NULL) internal_error("NRL accessed inappropriately");
- if ((P == NULL) || (P->eventual_type != nrl->requirements.any_package_of_this_type)) internal_error("subpackage in wrong superpackage");
+
+ if (P == NULL) internal_error("no superpackage");
if (nrl->package_type == NULL) internal_error("package_in_package used wrongly");
+ if (nrl->requirements.any_package_of_this_type) {
+ if (P->eventual_type != nrl->requirements.any_package_of_this_type)
+ internal_error("subpackage in wrong superpackage");
+ } else if (nrl->requirements.any_enclosure) {
+ if (Inter::Symbols::read_annotation(P->eventual_type, ENCLOSING_IANN) != 1)
+ internal_error("subpackage not in enclosing superpackage");
+ } else internal_error("NRL accessed inappropriately");
+
return Packaging::request(InterNames::one_off(nrl->access_name, P), P, nrl->package_type);
}
diff --git a/inform7/core-module/Chapter 27/Hierarchy.w b/inform7/core-module/Chapter 27/Hierarchy.w
index d1a9c33d1..9f81b453c 100644
--- a/inform7/core-module/Chapter 27/Hierarchy.w
+++ b/inform7/core-module/Chapter 27/Hierarchy.w
@@ -4,11 +4,7 @@
@e BLOCK_CONSTANT_PR_COUNTER from 0
@e BLOCK_PR_COUNTER
-@e FORM_PR_COUNTER
@e INLINE_PR_COUNTER
-@e LITERAL_PR_COUNTER
-@e MISC_PR_COUNTER
-@e PROPOSITION_PR_COUNTER
@e SUBSTITUTION_PR_COUNTER
@e SUBSTITUTIONF_PR_COUNTER
@@ -51,6 +47,7 @@ void Hierarchy::establish(void) {
@;
@;
@;
+ @;
@;
@;
@@ -137,6 +134,7 @@ void Hierarchy::establish(void) {
@e MISTAKEACTION_HL
@e ACTIONS_HAP
+@e ACTION_BASE_NAME_HL
@e CHECK_RB_HL
@e CARRY_OUT_RB_HL
@e REPORT_RB_HL
@@ -159,6 +157,7 @@ void Hierarchy::establish(void) {
location_requirement local_actions = HierarchyLocations::local_submodule(actions);
HierarchyLocations::ap(ACTIONS_HAP, local_actions, I"action", I"_action");
location_requirement in_action = HierarchyLocations::any_package_of_type(I"_action");
+ HierarchyLocations::con(ACTION_BASE_NAME_HL, NULL, Translation::generate(ACTION_BASE_INAMEF), in_action);
HierarchyLocations::package(CHECK_RB_HL, I"check_rb", I"_rulebook", in_action);
HierarchyLocations::package(CARRY_OUT_RB_HL, I"carry_out_rb", I"_rulebook", in_action);
HierarchyLocations::package(REPORT_RB_HL, I"report_rb", I"_rulebook", in_action);
@@ -294,6 +293,8 @@ void Hierarchy::establish(void) {
@e MODAL_CONJUGATION_FN_HL
@e VERBS_HAP
@e NONMODAL_CONJUGATION_FN_HL
+@e VERB_FORMS_HAP
+@e FORM_FN_HL
@e CONJUGATION_FN_HL
@ =
@@ -312,6 +313,9 @@ void Hierarchy::establish(void) {
HierarchyLocations::ap(VERBS_HAP, local_conjugations, I"verb", I"_verb");
location_requirement in_verb = HierarchyLocations::any_package_of_type(I"_verb");
HierarchyLocations::func(NONMODAL_CONJUGATION_FN_HL, I"conjugation_fn", Translation::generate(CONJUGATE_VERB_ROUTINE_INAMEF), in_verb);
+ HierarchyLocations::ap(VERB_FORMS_HAP, in_verb, I"form", I"_verb_form");
+ location_requirement in_verb_form = HierarchyLocations::any_package_of_type(I"_verb_form");
+ HierarchyLocations::func(FORM_FN_HL, I"form_fn", Translation::uniqued(), in_verb_form);
@h Equations.
@@ -400,6 +404,7 @@ void Hierarchy::establish(void) {
@e INTERNALTESTCASES_HL
@e COMMAND_PR_COUNTER
@e COMMANDS_HAP
+@e VERB_DECLARATION_ARRAY_HL
@ =
submodule_identity *grammar = Packaging::register_submodule(I"grammar");
@@ -459,6 +464,8 @@ void Hierarchy::establish(void) {
HierarchyLocations::func(TESTSCRIPTSUB_HL, I"action_fn", Translation::to(I"TestScriptSub"), synoptic_grammar);
HierarchyLocations::func(INTERNALTESTCASES_HL, I"run_tests_fn", Translation::to(I"InternalTestCases"), synoptic_grammar);
HierarchyLocations::ap(COMMANDS_HAP, synoptic_grammar, I"command", I"_command");
+ location_requirement in_command = HierarchyLocations::any_package_of_type(I"_command");
+ HierarchyLocations::func(VERB_DECLARATION_ARRAY_HL, NULL, Translation::generate(VERB_DECLARATION_ARRAY_INAMEF), in_command);
@h Instances.
@@ -524,6 +531,7 @@ void Hierarchy::establish(void) {
@e K_TYPELESS_STRING_HL
@e KIND_HAP
+@e KIND_HL
@e DEFAULT_VALUE_HL
@e DECREMENT_FN_HL
@e INCREMENT_FN_HL
@@ -558,12 +566,13 @@ void Hierarchy::establish(void) {
location_requirement local_kinds = HierarchyLocations::local_submodule(kinds);
HierarchyLocations::ap(KIND_HAP, local_kinds, I"kind", I"_kind");
location_requirement in_kind = HierarchyLocations::any_package_of_type(I"_kind");
+ HierarchyLocations::con(KIND_HL, NULL, Translation::generate(KIND_ID_INAMEF), in_kind);
HierarchyLocations::con(DEFAULT_VALUE_HL, I"default_value", Translation::uniqued(), in_kind);
- HierarchyLocations::con(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
- HierarchyLocations::con(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
- HierarchyLocations::con(PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind);
- HierarchyLocations::con(PRINT_DASH_FN_HL, I"print_fn", Translation::generate(PRINTING_ROUTINE_INAMEF), in_kind);
- HierarchyLocations::con(RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
+ HierarchyLocations::func(DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
+ HierarchyLocations::func(INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
+ HierarchyLocations::func(PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind);
+ HierarchyLocations::func(PRINT_DASH_FN_HL, I"print_fn", Translation::generate(PRINTING_ROUTINE_INAMEF), in_kind);
+ HierarchyLocations::func(RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(DEFAULT_CLOSURE_FN_HL, I"default_closure_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(GPR_FN_HL, I"gpr_fn", Translation::uniqued(), in_kind);
HierarchyLocations::func(INSTANCE_GPR_FN_HL, I"instance_gpr_fn", Translation::uniqued(), in_kind);
@@ -665,6 +674,7 @@ void Hierarchy::establish(void) {
@e RELATIONS_HAP
@e RELATION_RECORD_HL
@e BITMAP_HL
+@e ABILITIES_HL
@e ROUTE_CACHE_HL
@e HANDLER_FN_HL
@e RELATION_INITIALISER_FN_HL
@@ -707,6 +717,7 @@ void Hierarchy::establish(void) {
location_requirement in_relation = HierarchyLocations::any_package_of_type(I"_relation");
HierarchyLocations::con(RELATION_RECORD_HL, NULL, Translation::generate(RELATION_RECORD_INAMEF), in_relation);
HierarchyLocations::con(BITMAP_HL, I"as_constant", Translation::uniqued(), in_relation);
+ HierarchyLocations::con(ABILITIES_HL, I"abilities", Translation::uniqued(), in_relation);
HierarchyLocations::con(ROUTE_CACHE_HL, I"route_cache", Translation::uniqued(), in_relation);
HierarchyLocations::func(HANDLER_FN_HL, I"handler_fn", Translation::uniqued(), in_relation);
HierarchyLocations::func(RELATION_INITIALISER_FN_HL, I"relation_initialiser_fn", Translation::uniqued(), in_relation);
@@ -829,6 +840,29 @@ void Hierarchy::establish(void) {
location_requirement in_variable = HierarchyLocations::any_package_of_type(I"_variable");
HierarchyLocations::con(VARIABLE_HL, NULL, Translation::generate(VARIABLE_INAMEF), in_variable);
+@h Enclosed matter.
+
+@e LITERALS_HAP
+@e TEXT_LITERAL_HL
+@e LIST_LITERAL_HL
+@e PROPOSITIONS_HAP
+@e PROPOSITION_HL
+@e BLOCK_CONSTANTS_HAP
+@e BLOCK_CONSTANT_HL
+
+@ =
+ location_requirement in_any_enclosure = HierarchyLocations::any_enclosure();
+ HierarchyLocations::ap(LITERALS_HAP, in_any_enclosure, I"literal", I"_literal");
+ location_requirement in_literal = HierarchyLocations::any_package_of_type(I"_literal");
+ HierarchyLocations::con(TEXT_LITERAL_HL, I"text", Translation::uniqued(), in_literal);
+ HierarchyLocations::con(LIST_LITERAL_HL, I"list", Translation::uniqued(), in_literal);
+ HierarchyLocations::ap(PROPOSITIONS_HAP, in_any_enclosure, I"proposition", I"_proposition");
+ location_requirement in_proposition = HierarchyLocations::any_package_of_type(I"_proposition");
+ HierarchyLocations::func(PROPOSITION_HL, I"prop", Translation::uniqued(), in_proposition);
+ HierarchyLocations::ap(BLOCK_CONSTANTS_HAP, in_any_enclosure, I"block_constant", I"_block_constant");
+ location_requirement in_block_constant = HierarchyLocations::any_package_of_type(I"_block_constant");
+ HierarchyLocations::con(BLOCK_CONSTANT_HL, I"bc", Translation::uniqued(), in_block_constant);
+
@
@e K_OBJECT_XPACKAGE from 0
@@ -1479,6 +1513,10 @@ package_request *Hierarchy::local_package(int hap_id) {
return HierarchyLocations::attach_new_package(Modules::find(current_sentence), NULL, hap_id);
}
+package_request *Hierarchy::package_in_enclosure(int hap_id) {
+ return HierarchyLocations::attach_new_package(NULL, Packaging::current_enclosure(), hap_id);
+}
+
package_request *Hierarchy::package_within(int hap_id, package_request *super) {
return HierarchyLocations::attach_new_package(NULL, super, hap_id);
}
diff --git a/inform7/core-module/Chapter 27/Inter Namespace.w b/inform7/core-module/Chapter 27/Inter Namespace.w
index 5f6e7cfcb..e223b60c0 100644
--- a/inform7/core-module/Chapter 27/Inter Namespace.w
+++ b/inform7/core-module/Chapter 27/Inter Namespace.w
@@ -440,7 +440,11 @@ inter_name *InterNames::new_overridden(int fnum, text_stream *identifier) {
inter_name *InterNames::new_derived(int fnum, inter_name *from) {
inter_name_family *F = InterNames::get_family(fnum);
if (F->fusage != DERIVED_FUSAGE) internal_error("not a derived family");
- if (from->family != F->derivative_of) internal_error("derived from name of wrong family");
+// if (from->family != F->derivative_of) {
+// LOG("From = %n in $X\n", from, Packaging::home_of(from));
+// LOG("From family %S but derivative should be of %S\n", from->family->family_name, F->derivative_of->family_name);
+// internal_error("derived from name of wrong family");
+// }
inter_name *N = InterNames::new_in_space(InterNames::root(), F, TRUE);
Packaging::house_with(N, from);
N->derived_from = from;
diff --git a/inform7/core-module/Chapter 5/Nonlocal Variables.w b/inform7/core-module/Chapter 5/Nonlocal Variables.w
index d3c16f783..8cbf097bc 100644
--- a/inform7/core-module/Chapter 5/Nonlocal Variables.w
+++ b/inform7/core-module/Chapter 5/Nonlocal Variables.w
@@ -429,6 +429,7 @@ int NonlocalVariables::SUBJ_compile_all(void) {
text_stream *rvalue = NULL;
if (nlv->housed_in_variables_array == FALSE)
rvalue = NonlocalVariables::identifier(nlv);
+LOG("Doing stuff with %W %n %S as rvalue\n", nlv->name, iname, rvalue);
Emit::variable(iname, nlv->nlv_kind, v1, v2, rvalue);
if (nlv == command_prompt_VAR) {
packaging_state save = Routines::begin(Hierarchy::find(COMMANDPROMPTTEXT_HL));
diff --git a/inform7/core-module/Chapter 6/Relations.w b/inform7/core-module/Chapter 6/Relations.w
index 16add4ae8..7faa13c8b 100644
--- a/inform7/core-module/Chapter 6/Relations.w
+++ b/inform7/core-module/Chapter 6/Relations.w
@@ -1007,8 +1007,7 @@ void Relations::compile_relation_records(void) {
@ =
binary_predicate *dbp = bp;
if (bp->right_way_round == FALSE) dbp = bp->reversal;
- inter_name *bm_symb = Packaging::supply_iname(bp->bp_package, MISC_PR_COUNTER);
- Inter::Symbols::set_flag(InterNames::to_symbol(bm_symb), MAKE_NAME_UNIQUE);
+ inter_name *bm_symb = Hierarchy::make_iname_in(ABILITIES_HL, bp->bp_package);
Emit::sum_constant_begin(bm_symb, K_value);
if (RELS_TEST_iname == NULL) internal_error("no RELS symbols yet");
Emit::array_iname_entry(RELS_TEST_iname);
diff --git a/inform7/if-module/Chapter 4/Action Patterns.w b/inform7/if-module/Chapter 4/Action Patterns.w
index b97931a12..adfa6e9be 100644
--- a/inform7/if-module/Chapter 4/Action Patterns.w
+++ b/inform7/if-module/Chapter 4/Action Patterns.w
@@ -1634,9 +1634,10 @@ int PL::Actions::Patterns::compile_pattern_match_clause_inner(int f,
@ =
void PL::Actions::Patterns::as_stored_action(value_holster *VH, action_pattern *ap) {
- packaging_state save = Packaging::enter_current_enclosure();
- inter_name *N = Kinds::RunTime::begin_block_constant(K_stored_action);
- if (N) InterNames::holster(VH, N);
+ package_request *PR = Hierarchy::package_in_enclosure(BLOCK_CONSTANTS_HAP);
+ inter_name *N = Hierarchy::make_iname_in(BLOCK_CONSTANT_HL, PR);
+ packaging_state save = Packaging::enter_home_of(N);
+ Emit::named_late_array_begin(N, K_value);
Kinds::RunTime::emit_block_value_header(K_stored_action, FALSE, 6);
action_name *an = PL::Actions::Lists::get_singleton_action(ap->action);
@@ -1671,8 +1672,9 @@ void PL::Actions::Patterns::as_stored_action(value_holster *VH, action_pattern *
Emit::array_iname_entry(Instances::iname(I_yourself));
Emit::array_numeric_entry((inter_t) request_bits);
Emit::array_numeric_entry(0);
- Kinds::RunTime::end_block_constant(K_stored_action);
+ Emit::array_end();
Packaging::exit(save);
+ if (N) InterNames::holster(VH, N);
}
void PL::Actions::Patterns::emit_pattern_match(action_pattern ap, int naming_mode) {
diff --git a/inform7/if-module/Chapter 4/Actions.w b/inform7/if-module/Chapter 4/Actions.w
index f763c9184..9056cc20a 100644
--- a/inform7/if-module/Chapter 4/Actions.w
+++ b/inform7/if-module/Chapter 4/Actions.w
@@ -233,8 +233,7 @@ action_name *PL::Actions::act_new(wording W, int implemented_by_I7) {
an->translated = FALSE;
an->an_package = Hierarchy::local_package(ACTIONS_HAP);
- an->an_base_iname = InterNames::new(ACTION_BASE_INAMEF);
- InterNames::attach_memo(an->an_base_iname, W);
+ an->an_base_iname = Hierarchy::make_iname_with_memo(ACTION_BASE_NAME_HL, an->an_package, W);
an->use_verb_routine_in_I6_library = TRUE;
an->check_rules = NULL;
an->carry_out_rules = NULL;
diff --git a/inform7/if-module/Chapter 5/Grammar Verbs.w b/inform7/if-module/Chapter 5/Grammar Verbs.w
index cec239797..6c2bb5479 100644
--- a/inform7/if-module/Chapter 5/Grammar Verbs.w
+++ b/inform7/if-module/Chapter 5/Grammar Verbs.w
@@ -760,9 +760,8 @@ void PL::Parsing::Verbs::compile(grammar_verb *gv) {
PL::Parsing::Lines::reset_labels();
switch(gv->gv_is) {
case GV_IS_COMMAND: {
- inter_name *array_iname = InterNames::new(VERB_DECLARATION_ARRAY_INAMEF);
package_request *PR = Hierarchy::synoptic_package(COMMANDS_HAP);
- Packaging::house(array_iname, PR);
+ inter_name *array_iname = Hierarchy::make_iname_in(VERB_DECLARATION_ARRAY_HL, PR);
packaging_state save = Packaging::enter_home_of(array_iname);
PL::Parsing::Verbs::gv_compile_Verb_directive_header(gv, array_iname);
PL::Parsing::Verbs::gv_compile_lines(NULL, gv);
diff --git a/inform7/linguistics-module/Chapter 4/Verbs.w b/inform7/linguistics-module/Chapter 4/Verbs.w
index 5f774f6f1..95fbc7623 100644
--- a/inform7/linguistics-module/Chapter 4/Verbs.w
+++ b/inform7/linguistics-module/Chapter 4/Verbs.w
@@ -282,11 +282,8 @@ we overwrite that with the new (presumably meaningful) one.
inter_name *Verbs::form_iname(verb_form *vf) {
if (vf->vf_iname == NULL) {
package_request *R = Verbs::verb_package(vf->underlying_verb, vf->where_vf_created);
- vf->vf_iname =
- Packaging::function(
- Packaging::supply_iname(R, FORM_PR_COUNTER),
- R,
- InterNames::new(CONJUGATE_VERB_FORM_INAMEF));
+ package_request *R2 = Hierarchy::package_within(VERB_FORMS_HAP, R);
+ vf->vf_iname = Hierarchy::make_iname_in(FORM_FN_HL, R2);
}
return vf->vf_iname;
}