diff --git a/README.md b/README.md index 4cab274689..32da90c9ba 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Inform 7 -v10.1.0-beta+6V06 'Krypton' (13 May 2022) +v10.1.0-beta+6V07 'Krypton' (15 May 2022) ## About Inform 7 diff --git a/build.txt b/build.txt index b48f8c3615..acc7d2a7da 100644 --- a/build.txt +++ b/build.txt @@ -1,3 +1,3 @@ Prerelease: beta -Build Date: 13 May 2022 -Build Number: 6V06 +Build Date: 15 May 2022 +Build Number: 6V07 diff --git a/inform7/Figures/memory-diagnostics.txt b/inform7/Figures/memory-diagnostics.txt index e4ef0629e4..c9097919fe 100644 --- a/inform7/Figures/memory-diagnostics.txt +++ b/inform7/Figures/memory-diagnostics.txt @@ -237,7 +237,7 @@ Total memory consumption was 123345K = 120 MB 100.0% was used for memory not allocated for objects: - 57.7% text stream storage 72913024 bytes in 477844 claims + 57.7% text stream storage 72912928 bytes in 477842 claims 4.1% dictionary storage 5227008 bytes in 7517 claims ---- sorting 1448 bytes in 149 claims 5.7% source text 7200000 bytes in 3 claims diff --git a/inform7/Figures/timings-diagnostics.txt b/inform7/Figures/timings-diagnostics.txt index 798607b96f..69819b6531 100644 --- a/inform7/Figures/timings-diagnostics.txt +++ b/inform7/Figures/timings-diagnostics.txt @@ -1,32 +1,37 @@ 100.0% in inform7 run 70.7% in compilation to Inter - 50.1% in //Sequence::undertake_queued_tasks// + 51.2% in //Sequence::undertake_queued_tasks// 4.7% in //MajorNodes::pre_pass// - 3.4% in //MajorNodes::pass_1// - 1.8% in //ImperativeDefinitions::assess_all// - 1.8% in //RTPhrasebook::compile_entries// + 3.2% in //MajorNodes::pass_1// + 1.9% in //ImperativeDefinitions::assess_all// 1.4% in //RTKindConstructors::compile// + 1.2% in //RTPhrasebook::compile_entries// 1.0% in //Sequence::lint_inter// 0.6% in //MajorNodes::pass_2// - 0.6% in //Sequence::undertake_queued_tasks// 0.6% in //World::stage_V// 0.4% in //ImperativeDefinitions::compile_first_block// 0.4% in //Sequence::undertake_queued_tasks// + 0.3% in //Sequence::undertake_queued_tasks// 0.2% in //CompletionModule::compile// - 0.2% in //InferenceSubjects::emit_all// 0.2% in //RTKindConstructors::compile_permissions// - 0.2% in //Task::make_built_in_kind_constructors// - 2.9% not specifically accounted for - 26.3% in running Inter pipeline - 10.2% in step 14/15: generate inform6 -> auto.inf - 5.9% in step 5/15: load-binary-kits - 5.5% in step 6/15: make-synoptic-module - 1.4% in step 9/15: make-identifiers-unique + 0.1% in //InferenceSubjects::emit_all// + 0.1% in //Task::make_built_in_kind_constructors// + 0.1% in //Understand::traverse// + 0.1% in //World::stages_II_and_III// + 2.3% not specifically accounted for + 26.5% in running Inter pipeline + 10.1% in step 14/15: generate inform6 -> auto.inf + 6.0% in step 6/15: make-synoptic-module + 5.6% in step 5/15: load-binary-kits + 1.5% in step 9/15: make-identifiers-unique 0.4% in step 12/15: eliminate-redundant-operations 0.4% in step 4/15: compile-splats - 0.4% in step 7/15: shorten-wiring - 0.4% in step 8/15: detect-indirect-calls + 0.3% in step 7/15: shorten-wiring + 0.3% in step 8/15: detect-indirect-calls 0.2% in step 11/15: eliminate-redundant-labels - 1.4% not specifically accounted for - 2.2% in supervisor - 0.7% not specifically accounted for + 0.1% in step 10/15: reconcile-verbs + 0.1% in step 2/15: parse-insertions + 0.1% in step 3/15: resolve-conditional-compilation + 0.7% not specifically accounted for + 2.3% in supervisor + 0.4% not specifically accounted for diff --git a/inform7/Internal/Inter/BasicInformKit/Sections/RelationKind.i6t b/inform7/Internal/Inter/BasicInformKit/Sections/RelationKind.i6t index fe8ea6001c..2e110255f4 100644 --- a/inform7/Internal/Inter/BasicInformKit/Sections/RelationKind.i6t +++ b/inform7/Internal/Inter/BasicInformKit/Sections/RelationKind.i6t @@ -153,7 +153,7 @@ At present, these permissions are not checked as rigorously as they should be (they're correctly set, but not much monitored). = -[ RelationTest relation task X Y handler rv; +[ RelationTest relation task X Y handler; handler = RlnGetF(relation, RR_HANDLER); return handler(relation, task, X, Y); ]; @@ -925,7 +925,7 @@ the existing pair $(X, Y)$. if (fl & RRF_USED) { sym = BlkValueRead(rel, tmp + 2); if (fl & RRF_SINGLE) { - if (KOVIsBlockValue(ky)) { + if (KOVIsBlockValue(kx)) { if (BlkValueCompare(X, sym) ~= 0) continue; } else { if (X ~= sym) continue; diff --git a/inform7/Tests/Test Basic/List1VNumberToTexts.txt b/inform7/Tests/Test Basic/List1VNumberToTexts.txt new file mode 100644 index 0000000000..66557d2c33 --- /dev/null +++ b/inform7/Tests/Test Basic/List1VNumberToTexts.txt @@ -0,0 +1,18 @@ +Fubar relates one number to various texts. +the verb to foo means the fubar relation. +27 foos "a". +27 foos "a2". +1 foos "b". +2 foos "a". +2 foos "c". + +To bar (n - a number): + say "Texts that [n] relates to..."; + repeat with t running through the list of texts that n relates to by the fubar relation: + showme t. + +To begin: + bar 27; + bar 1; + bar 2; + bar 3; diff --git a/inform7/Tests/Test Basic/_Results_Ideal/List1VNumberToTexts.txt b/inform7/Tests/Test Basic/_Results_Ideal/List1VNumberToTexts.txt new file mode 100644 index 0000000000..422b609372 --- /dev/null +++ b/inform7/Tests/Test Basic/_Results_Ideal/List1VNumberToTexts.txt @@ -0,0 +1,8 @@ + Texts that 27 relates to... + "t" = text: a2 + Texts that 1 relates to... + "t" = text: b + Texts that 2 relates to... + "t" = text: c + "t" = text: a + Texts that 3 relates to... diff --git a/inform7/runtime-module/Chapter 5/Relations.w b/inform7/runtime-module/Chapter 5/Relations.w index ac5e30a94a..1025fe48e4 100644 --- a/inform7/runtime-module/Chapter 5/Relations.w +++ b/inform7/runtime-module/Chapter 5/Relations.w @@ -352,7 +352,7 @@ void RTRelations::compilation_agent(compilation_subtask *t) { @ = packaging_state save = EmitArrays::begin_unchecked(RTRelations::iname(bp)); if (ExplicitRelations::stored_dynamically(bp)) { - EmitArrays::numeric_entry((inter_ti) 1); /* meaning one entry, which is 0; to be filled in later */ + EmitArrays::numeric_entry((inter_ti) 1); } else { TheHeap::emit_block_value_header(BinaryPredicates::kind(bp), FALSE, 8); EmitArrays::null_entry(); @@ -497,7 +497,6 @@ void RTRelations::compilation_agent(compilation_subtask *t) { LocalVariables::declare(Z4_lv); annotated_i6_schema asch; i6_schema *i6s = NULL; - EmitCode::inv(SWITCH_BIP); EmitCode::down(); EmitCode::val_symbol(K_value, task_s);