diff --git a/inform7/Figures/memory-diagnostics.txt b/inform7/Figures/memory-diagnostics.txt index 42a738442c..44d78dc28f 100644 --- a/inform7/Figures/memory-diagnostics.txt +++ b/inform7/Figures/memory-diagnostics.txt @@ -1,4 +1,4 @@ -Total memory consumption was 126309K = 123 MB +Total memory consumption was 126312K = 123 MB ---- was used for 2008048 objects, in 360823 frames in 0 x 800K = 0K = 0 MB: @@ -237,7 +237,7 @@ Total memory consumption was 126309K = 123 MB 100.0% was used for memory not allocated for objects: - 59.2% text stream storage 76627532 bytes in 452152 claims + 59.2% text stream storage 76630492 bytes in 452157 claims 3.5% dictionary storage 4544512 bytes in 6619 claims ---- sorting 744 bytes in 3 claims 5.5% source text 7200000 bytes in 3 claims @@ -245,7 +245,7 @@ Total memory consumption was 126309K = 123 MB 0.2% documentation fragments 262144 bytes in 1 claim ---- linguistic stock array 81920 bytes in 2 claims ---- small word set array 105600 bytes in 22 claims - 3.4% inter symbols storage 4522288 bytes in 27921 claims + 3.4% inter symbols storage 4522784 bytes in 27922 claims 12.9% inter bytecode storage 16767480 bytes in 14 claims 4.8% inter links storage 6222976 bytes in 11 claims 0.1% inter tree location list storage 191232 bytes in 32 claims diff --git a/inform7/Figures/timings-diagnostics.txt b/inform7/Figures/timings-diagnostics.txt index 1bac4328e1..83d68bb957 100644 --- a/inform7/Figures/timings-diagnostics.txt +++ b/inform7/Figures/timings-diagnostics.txt @@ -1,33 +1,37 @@ 100.0% in inform7 run - 68.7% in compilation to Inter + 68.2% in compilation to Inter 47.7% in //Sequence::undertake_queued_tasks// - 4.6% in //MajorNodes::pre_pass// - 3.4% in //MajorNodes::pass_1// + 4.5% in //MajorNodes::pre_pass// + 3.2% in //MajorNodes::pass_1// 2.4% in //RTPhrasebook::compile_entries// - 1.7% in //ImperativeDefinitions::assess_all// + 1.8% in //ImperativeDefinitions::assess_all// 1.5% in //RTKindConstructors::compile// - 1.1% in //Sequence::lint_inter// + 1.0% in //Sequence::lint_inter// 0.5% in //MajorNodes::pass_2// - 0.5% in //Sequence::undertake_queued_tasks// - 0.5% in //Sequence::undertake_queued_tasks// 0.5% in //World::stage_V// - 0.3% in //ImperativeDefinitions::compile_first_block// - 0.1% in //CompletionModule::compile// + 0.4% in //ImperativeDefinitions::compile_first_block// + 0.4% in //Sequence::undertake_queued_tasks// + 0.4% in //Sequence::undertake_queued_tasks// + 0.2% in //CompletionModule::compile// + 0.2% in //RTKindConstructors::compile_permissions// 0.1% in //InferenceSubjects::emit_all// - 0.1% in //RTKindConstructors::compile_permissions// 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 - 28.5% in running Inter pipeline - 10.3% in step 14/14: generate inform6 -> auto.inf - 7.4% in step 5/14: load-binary-kits - 6.3% in step 6/14: make-synoptic-module - 1.5% in step 9/14: make-identifiers-unique - 0.3% in step 12/14: eliminate-redundant-operations - 0.3% in step 4/14: compile-splats - 0.3% in step 7/14: shorten-wiring + 2.2% not specifically accounted for + 29.0% in running Inter pipeline + 10.2% in step 14/14: generate inform6 -> auto.inf + 7.5% in step 5/14: load-binary-kits + 6.6% in step 6/14: make-synoptic-module + 1.6% in step 9/14: make-identifiers-unique + 0.5% in step 4/14: compile-splats + 0.4% in step 12/14: eliminate-redundant-operations + 0.4% in step 7/14: shorten-wiring + 0.3% in step 11/14: eliminate-redundant-labels 0.3% in step 8/14: detect-indirect-calls - 0.1% in step 11/14: eliminate-redundant-labels - 1.1% not specifically accounted for + 0.1% in step 10/14: reconcile-verbs + 0.1% in step 2/14: parse-insertions + 0.1% in step 3/14: resolve-conditional-compilation + 0.3% not specifically accounted for 2.3% in supervisor 0.4% not specifically accounted for diff --git a/inform7/Internal/Inter/CommandParserKit/Sections/Parser.i6t b/inform7/Internal/Inter/CommandParserKit/Sections/Parser.i6t index fe62f8ef47..36f37c409b 100644 --- a/inform7/Internal/Inter/CommandParserKit/Sections/Parser.i6t +++ b/inform7/Internal/Inter/CommandParserKit/Sections/Parser.i6t @@ -3277,13 +3277,16 @@ The two ways of starting up the scope machinery other than via the parser code above. = -[ TestScope obj act a al sr x y; +[ TestScope obj act a al sr ss st x y; x = parser_one; y = parser_two; parser_one = obj; parser_two = 0; a = actor; al = actors_location; + ss = scope_stage; st = scope_token; + scope_stage = 0; scope_token = 0; sr = scope_reason; scope_reason = TESTSCOPE_REASON; if (act == 0) actor = player; else actor = act; actors_location = ScopeCeiling(actor); SearchScope(actors_location, actor, 0); scope_reason = sr; actor = a; + scope_stage = ss; scope_token = st; actors_location = al; parser_one = x; x = parser_two; parser_two = y; return x; ];