1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-01 06:24:58 +03:00

Fix for Mantis bug 1964

This commit is contained in:
Graham Nelson 2022-04-10 23:30:27 +01:00
parent ac6d8143c2
commit e106b01c86
4 changed files with 568 additions and 562 deletions

View file

@ -1,6 +1,6 @@
Total memory consumption was 120225K = 117 MB
---- was used for 2008028 objects, in 360803 frames in 0 x 800K = 0K = 0 MB:
---- was used for 2008032 objects, in 360807 frames in 0 x 800K = 0K = 0 MB:
33.9% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
19.8% text_stream_array 4342 x 100 = 434200 objects, 24454144 bytes
@ -26,8 +26,8 @@ Total memory consumption was 120225K = 117 MB
0.8% id_body 941 objects, 1076504 bytes
0.8% adjective_meaning 202 objects, 1000304 bytes
0.7% excerpt_meaning 3100 objects, 967200 bytes
0.7% production 3875 objects, 899000 bytes
0.7% ptoken 8390 objects, 872560 bytes
0.7% production 3876 objects, 899232 bytes
0.7% ptoken 8393 objects, 872872 bytes
0.7% grammatical_usage 3611 objects, 866640 bytes
0.6% individual_form 2561 objects, 860496 bytes
0.6% inter_schema_node 8897 objects, 854112 bytes
@ -255,5 +255,5 @@ Total memory consumption was 120225K = 117 MB
---- code generation workspace for objects 1336 bytes in 4 claims
0.2% emitter array storage 279776 bytes in 1995 claims
-147.-7% was overhead - -181850144 bytes = -177588K = -173 MB
-147.-7% was overhead - -181850688 bytes = -177588K = -173 MB

View file

@ -1,33 +1,37 @@
100.0% in inform7 run
68.5% in compilation to Inter
48.0% in //Sequence::undertake_queued_tasks//
4.5% in //MajorNodes::pre_pass//
3.4% in //MajorNodes::pass_1//
1.7% in //ImperativeDefinitions::assess_all//
68.0% in compilation to Inter
48.1% in //Sequence::undertake_queued_tasks//
4.6% in //MajorNodes::pre_pass//
3.3% in //MajorNodes::pass_1//
1.8% in //ImperativeDefinitions::assess_all//
1.7% in //RTPhrasebook::compile_entries//
1.5% in //RTKindConstructors::compile//
1.1% in //Sequence::lint_inter//
0.5% in //ImperativeDefinitions::compile_first_block//
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 //Sequence::undertake_queued_tasks//
0.1% in //CompletionModule::compile//
0.1% in //InferenceSubjects::emit_all//
0.1% in //RTKindConstructors::compile_permissions//
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 //InferenceSubjects::emit_all//
0.2% 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.6% 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
29.1% in running Inter pipeline
10.2% in step 14/15: generate inform6 -> auto.inf
7.7% 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.5% in step 4/15: compile-splats
0.4% in step 12/15: eliminate-redundant-operations
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% 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.4% not specifically accounted for
2.3% in supervisor
0.4% not specifically accounted for

File diff suppressed because one or more lines are too long

View file

@ -165,6 +165,7 @@ int ActionsPlugin::new_action_SMF(int task, parse_node *V, wording *NPs) {
}
@<Check that this validly declares an action@> =
LOG("Checking %W\n", OW);
if (<new-action-sentence-object>(OW)) {
if (<<r>> == FALSE) return FALSE;
parse_node *O = <<rp>>;
@ -184,6 +185,7 @@ as an instance of "... is an action ...", creating a new action.
<new-action-sentence-object-unarticled> ==> { pass 1 }
<new-action-sentence-object-unarticled> ::=
action based ... | ==> { FALSE, NULL }
action <nounphrase-actionable> | ==> { TRUE, RP[1] }
action ==> @<Issue PM_BadActionDeclaration problem@>