diff --git a/README.md b/README.md index 5e07094341..8eec746a12 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Inform 7 -v10.1.0-alpha.1+6U82 'Krypton' (13 April 2022) +v10.1.0-alpha.1+6U83 'Krypton' (14 April 2022) ## About Inform 7 diff --git a/build.txt b/build.txt index b08cc6b9c5..7b623a0165 100644 --- a/build.txt +++ b/build.txt @@ -1,3 +1,3 @@ Prerelease: alpha.1 -Build Date: 13 April 2022 -Build Number: 6U82 +Build Date: 14 April 2022 +Build Number: 6U83 diff --git a/inform7/Figures/timings-diagnostics.txt b/inform7/Figures/timings-diagnostics.txt index 275420e52e..e0feebeec9 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 - 47.7% in //Sequence::undertake_queued_tasks// - 4.7% in //MajorNodes::pre_pass// - 3.4% in //MajorNodes::pass_1// + 68.3% in compilation to Inter + 47.8% in //Sequence::undertake_queued_tasks// + 4.6% in //MajorNodes::pre_pass// + 3.3% 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 //World::stage_V// - 0.3% in //ImperativeDefinitions::compile_first_block// - 0.3% in //Sequence::undertake_queued_tasks// - 0.1% in //CompletionModule::compile// + 0.4% in //ImperativeDefinitions::compile_first_block// + 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.5% not specifically accounted for - 28.7% in running Inter pipeline - 10.3% in step 14/15: generate inform6 -> auto.inf - 7.6% in step 5/15: load-binary-kits - 6.3% in step 6/15: make-synoptic-module + 2.0% not specifically accounted for + 28.9% in running Inter pipeline + 10.1% in step 14/15: generate inform6 -> auto.inf + 7.4% in step 5/15: load-binary-kits + 6.7% in step 6/15: make-synoptic-module 1.5% in step 9/15: make-identifiers-unique - 0.3% in step 12/15: eliminate-redundant-operations - 0.3% in step 4/15: compile-splats - 0.3% in step 7/15: shorten-wiring + 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.3% in step 8/15: detect-indirect-calls - 0.1% in step 11/15: eliminate-redundant-labels - 1.2% not specifically accounted for - 2.2% in supervisor - 0.2% not specifically accounted for + 0.2% in step 11/15: eliminate-redundant-labels + 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/Figures/verbs-diagnostics.txt b/inform7/Figures/verbs-diagnostics.txt index 391d8dfa42..5fe1fbf78d 100644 --- a/inform7/Figures/verbs-diagnostics.txt +++ b/inform7/Figures/verbs-diagnostics.txt @@ -189,10 +189,10 @@ The current S-grammar has the following verb and preposition usages: {verb 'test' 3p s act IS_TENSE +ve} {verb 'test' 3p p act IS_TENSE +ve} {verb 'test' s/p 3p act WAS_TENSE +ve} - {verb '' 3p s act IS_TENSE +ve} - {verb '' 3p s act IS_TENSE +ve} - {verb '' 3p s act IS_TENSE +ve} - {verb '' 3p s act IS_TENSE +ve} + {verb '' 3p s act IS_TENSE +ve} + {verb '' 3p s act IS_TENSE +ve} + {verb '' 3p s act IS_TENSE +ve} + {verb '' 3p s act IS_TENSE +ve} {verb 'be able to' 3p s act HASBEEN_TENSE -ve} {verb 'be able to' 3p p act HASBEEN_TENSE -ve} {verb 'be able to' s/p 3p act HADBEEN_TENSE -ve} diff --git a/inform7/Tests/Test Problems/PM_APAsConstant.txt b/inform7/Tests/Test Problems/PM_APAsConstant.txt new file mode 100644 index 0000000000..e6da713316 --- /dev/null +++ b/inform7/Tests/Test Problems/PM_APAsConstant.txt @@ -0,0 +1,5 @@ +Foo is a room. + +Table of Blah +blah +taking diff --git a/inform7/Tests/Test Problems/_Results_Ideal/PM_APAsConstant.txt b/inform7/Tests/Test Problems/_Results_Ideal/PM_APAsConstant.txt new file mode 100644 index 0000000000..5a68104f63 --- /dev/null +++ b/inform7/Tests/Test Problems/_Results_Ideal/PM_APAsConstant.txt @@ -0,0 +1,13 @@ +Inform 7 v10.1.0 has started. +I've now read your source text, which is 9 words long. +I've also read Basic Inform by Graham Nelson, which is 7691 words long. +I've also read English Language by Graham Nelson, which is 2328 words long. +I've also read Standard Rules by Graham Nelson, which is 32132 words long. +Problem__ PM_APAsConstant + >--> You wrote 'taking' (source text, line 5): but this is a description of + an action which is too vague to be used as a constant value, and should + either be something like 'taking action' (for the action in the abstract) + or 'taking the beach ball' (for a definitely specific action), but not + something like 'taking' or 'taking a container' which refer to a whole + collection of possible actions. +Inform 7 has finished. diff --git a/inform7/imperative-module/Chapter 2/Compile Rvalues.w b/inform7/imperative-module/Chapter 2/Compile Rvalues.w index 0209e9b06b..0a02bebef5 100644 --- a/inform7/imperative-module/Chapter 2/Compile Rvalues.w +++ b/inform7/imperative-module/Chapter 2/Compile Rvalues.w @@ -247,6 +247,16 @@ int CompileRvalues::action_kinds(value_holster *VH, kind *K, parse_node *value) return TRUE; } if (Kinds::eq(K, K_description_of_action)) { + if (CompileValues::compiling_in_constant_mode()) { + StandardProblems::sentence_problem(Task::syntax_tree(), _p_(PM_APAsConstant), + "this is a description of an action which is too vague to be used " + "as a constant value", + "and should either be something like 'taking action' (for the action " + "in the abstract) or 'taking the beach ball' (for a definitely " + "specific action), but not something like 'taking' or 'taking a " + "container' which refer to a whole collection of possible actions."); + return TRUE; + } action_pattern *ap = Node::get_constant_action_pattern(value); RTActionPatterns::compile_pattern_match(ap); return TRUE;