diff --git a/inform7/Figures/timings-diagnostics.txt b/inform7/Figures/timings-diagnostics.txt index d91f0e2cb1..ff703b14ed 100644 --- a/inform7/Figures/timings-diagnostics.txt +++ b/inform7/Figures/timings-diagnostics.txt @@ -1,27 +1,28 @@ 100.0% in inform7 run - 68.1% in compilation to Inter - 47.8% in //Sequence::undertake_queued_tasks// - 4.5% in //MajorNodes::pre_pass// - 3.2% in //MajorNodes::pass_1// + 68.3% in compilation to Inter + 47.9% in //Sequence::undertake_queued_tasks// + 4.6% in //MajorNodes::pre_pass// + 3.3% in //MajorNodes::pass_1// 2.3% in //RTPhrasebook::compile_entries// 1.8% in //ImperativeDefinitions::assess_all// 1.5% in //RTKindConstructors::compile// 1.0% in //Sequence::lint_inter// 0.5% in //MajorNodes::pass_2// - 0.5% in //Sequence::undertake_queued_tasks// 0.5% in //World::stage_V// 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 //Task::make_built_in_kind_constructors// + 0.1% in //Understand::traverse// 0.1% in //World::stages_II_and_III// 2.1% not specifically accounted for - 29.3% in running Inter pipeline - 10.0% in step 14/15: generate inform6 -> auto.inf - 8.3% in step 5/15: load-binary-kits - 6.5% in step 6/15: make-synoptic-module + 29.0% in running Inter pipeline + 10.1% in step 14/15: generate inform6 -> auto.inf + 7.6% in step 5/15: load-binary-kits + 6.6% in step 6/15: make-synoptic-module 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 @@ -31,6 +32,6 @@ 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.5% not specifically accounted for + 0.7% not specifically accounted for 2.2% in supervisor - 0.3% not specifically accounted for + 0.4% not specifically accounted for diff --git a/inform7/Internal/Inter/WorldModelKit/Sections/WorldModel.i6t b/inform7/Internal/Inter/WorldModelKit/Sections/WorldModel.i6t index c5bc39cf78..707c511bd3 100644 --- a/inform7/Internal/Inter/WorldModelKit/Sections/WorldModel.i6t +++ b/inform7/Internal/Inter/WorldModelKit/Sections/WorldModel.i6t @@ -653,6 +653,7 @@ doors. = [ TestAdjacency R1 R2 i row; + if ((R1 == nothing) || (R2 == nothing)) rfalse; if (R1 ofclass K9_region) RunTimeProblem(RTP_REGIONSNOTADJACENT, R1); else if (R2 ofclass K9_region) RunTimeProblem(RTP_REGIONSNOTADJACENT, R2); row = (R1.IK1_Count)*No_Directions; diff --git a/inform7/Tests/Test Makes/Eg4-C/textual.txt b/inform7/Tests/Test Makes/Eg4-C/textual.txt index 2063d06bd4..2becb1c425 100644 --- a/inform7/Tests/Test Makes/Eg4-C/textual.txt +++ b/inform7/Tests/Test Makes/Eg4-C/textual.txt @@ -29143,9 +29143,9 @@ package main _plain package phrasebook_entry7 _phrasebook_entry constant (text) ^text = "

 number of filled rows in/from (table name) ... number

\n
\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \"...\"\n \n\n \n \"...\"\n
\n\n \n

 number of filled rows in/from (table name) ... number

\n\n\n

This phrase produces the number of rows in the given table which are not entirely blank (that is, at least one column has a value in this row).

\n\n

See   16.10. 16.10. Adding and removing rows

\n

Kind: phrase table name -> number

\n\n
\n\n
\n \"...\"\n \n\n \n \"...\"\n
\n

\n
\n" package phrasebook_entry8 _phrasebook_entry - constant (text) ^text = "

 if there is (a table entry):

\n
\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \"...\"\n \n\n \n \"...\"\n
\n\n \n

 if there is (a table entry):

\n\n\n

This condition is true if the entry referred to exists, that is, that is, the space for it in the table is not blank. Examples:

\n \n

if there is a symbol corresponding to an atomic number of 30 in the Table of Standard Elements ...\n
\n if there is an atomic number in row 2 of the Table of Standard Elements ...\n

\n
\n \n\n

See   16.7. 16.7. Blank entries

\n

Kind: phrase value -> truth state

\n\n
\n\n
\n \"...\"\n \n\n \n \"...\"\n
\n

\n
\n" + constant (text) ^text = "

 if there is (a table entry):

\n
\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \"...\"\n \n\n \n \"...\"\n
\n\n \n

 if there is (a table entry):

\n\n\n

This condition is true if the entry referred to exists, that is, that is, the space for it in the table is not blank. Examples:

\n \n

if there is a symbol corresponding to an atomic number of 30 in the Table of Selected Elements ...\n
\n if there is an atomic number in row 2 of the Table of Selected Elements ...\n

\n
\n \n\n

See   16.7. 16.7. Blank entries

\n

Kind: phrase value -> truth state

\n\n
\n\n
\n \"...\"\n \n\n \n \"...\"\n
\n

\n
\n" package phrasebook_entry9 _phrasebook_entry - constant (text) ^text = "

 if there is no (a table entry):

\n
\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \"...\"\n \n\n \n \"...\"\n
\n\n \n

 if there is no (a table entry):

\n\n\n

This condition is true if the entry referred to does not exist, that is, the space for it in the table is blank. Examples:

\n \n

if there is no symbol corresponding to an atomic number of 30 in the Table of Standard Elements ...\n
\n if there is no atomic number in row 2 of the Table of Standard Elements ...\n

\n
\n \n\n

See   16.7. 16.7. Blank entries

\n

Kind: phrase value -> truth state

\n\n
\n\n
\n \"...\"\n \n\n \n \"...\"\n
\n

\n
\n" + constant (text) ^text = "

 if there is no (a table entry):

\n
\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \"...\"\n \n\n \n \"...\"\n
\n\n \n

 if there is no (a table entry):

\n\n\n

This condition is true if the entry referred to does not exist, that is, the space for it in the table is blank. Examples:

\n \n

if there is no symbol corresponding to an atomic number of 30 in the Table of Selected Elements ...\n
\n if there is no atomic number in row 2 of the Table of Selected Elements ...\n

\n
\n \n\n

See   16.7. 16.7. Blank entries

\n

Kind: phrase value -> truth state

\n\n
\n\n
\n \"...\"\n \n\n \n \"...\"\n
\n

\n
\n" package phrasebook_entry10 _phrasebook_entry constant (text) ^text = "

 blank out (a table entry)

\n
\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \"...\"\n \n\n \n \"...\"\n
\n\n \n

 blank out (a table entry)

\n\n\n

This phrase replaces the entry referred to with a blank, erasing any value previously stored there. Example:

\n \n

choose row 1 in the Table of Fish Habitats;\n
\n blank out the salinity entry;\n

\n
\n \n\n

See   16.10. 16.10. Adding and removing rows

\n

Kind: phrase value -> nothing

\n\n
\n\n
\n \"...\"\n \n\n \n \"...\"\n
\n

\n
\n" package phrasebook_entry11 _phrasebook_entry