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 1862

This commit is contained in:
Graham Nelson 2022-04-11 19:30:55 +01:00
parent 90b586d64f
commit db121fffcb
7 changed files with 313 additions and 284 deletions

View file

@ -1,6 +1,6 @@
Total memory consumption was 126309K = 123 MB
---- was used for 2008037 objects, in 360812 frames in 0 x 800K = 0K = 0 MB:
---- was used for 2008042 objects, in 360817 frames in 0 x 800K = 0K = 0 MB:
32.3% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
18.9% text_stream_array 4342 x 100 = 434200 objects, 24454144 bytes
@ -26,8 +26,8 @@ Total memory consumption was 126309K = 123 MB
0.8% id_body 941 objects, 1076504 bytes
0.7% adjective_meaning 202 objects, 1000304 bytes
0.7% excerpt_meaning 3100 objects, 967200 bytes
0.6% production 3876 objects, 899232 bytes
0.6% ptoken 8393 objects, 872872 bytes
0.6% production 3877 objects, 899464 bytes
0.6% ptoken 8397 objects, 873288 bytes
0.6% grammatical_usage 3611 objects, 866640 bytes
0.6% individual_form 2561 objects, 860496 bytes
0.6% inter_schema_node 8896 objects, 854016 bytes
@ -255,5 +255,5 @@ Total memory consumption was 126309K = 123 MB
---- code generation workspace for objects 1336 bytes in 4 claims
0.2% emitter array storage 279776 bytes in 1995 claims
-140.-5% was overhead - -181851424 bytes = -177589K = -173 MB
-140.-5% was overhead - -181852072 bytes = -177589K = -173 MB

View file

@ -1,10 +1,10 @@
100.0% in inform7 run
68.1% in compilation to Inter
47.6% in //Sequence::undertake_queued_tasks//
68.2% in compilation to Inter
47.9% in //Sequence::undertake_queued_tasks//
4.6% in //MajorNodes::pre_pass//
3.3% in //MajorNodes::pass_1//
3.2% in //MajorNodes::pass_1//
2.3% in //RTPhrasebook::compile_entries//
1.9% in //ImperativeDefinitions::assess_all//
1.8% in //ImperativeDefinitions::assess_all//
1.5% in //RTKindConstructors::compile//
1.0% in //Sequence::lint_inter//
0.5% in //MajorNodes::pass_2//
@ -18,15 +18,15 @@
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //Understand::traverse//
0.1% in //World::stages_II_and_III//
2.0% not specifically accounted for
29.2% in running Inter pipeline
2.1% not specifically accounted for
29.1% in running Inter pipeline
10.2% in step 14/15: generate inform6 -> auto.inf
7.6% in step 5/15: load-binary-kits
7.5% in step 5/15: load-binary-kits
6.7% in step 6/15: make-synoptic-module
1.6% in step 9/15: make-identifiers-unique
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.3% in step 7/15: shorten-wiring
0.4% in step 7/15: shorten-wiring
0.3% in step 8/15: detect-indirect-calls
0.2% in step 11/15: eliminate-redundant-labels
0.1% in step 10/15: reconcile-verbs

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,5 @@
Kitchen is a room.
Table of Inventory
topic (text)
"x"

View file

@ -0,0 +1,14 @@
Inform 7 v10.1.0 has started.
I've now read your source text, which is 10 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 32092 words long.
Problem__ PM_TopicText
>--> In 'Table of Inventory' (source text, line 3), the column name 'topic'
is not allowed to have a clarifying kind in brackets after it. Just say
'topic' and leave it at that.
Problem__ PM_TableRowFull
>--> In row 1 of the table 'Table of Inventory' (source text, line 3), the
entry '"x"' (source text, line 5) won't fit, because its row is already
full. (This entry would be in column 1 and the table has only 0.)
Inform 7 has finished.

View file

@ -183,6 +183,7 @@ what looks like text into grammar for parsing.
=
<table-column-heading> ::=
( *** ) | ==> @<Issue PM_TableColumnBracketed problem@>
topic ( ... ) | ==> @<Issue PM_TopicText problem@>
<s-table-column-name> ( {...} ) | ==> { EXISTING_TC, RP[1] }
<table-column-heading-bare> ( {...} ) | ==> { (R[1] == NEW_TC_PROBLEM)?R[1]:NEW_TC, - }
<s-table-column-name> | ==> { EXISTING_TC_WITHOUT_KIND, RP[1] }
@ -211,6 +212,13 @@ what looks like text into grammar for parsing.
"something else.");
==> { NEW_TC_PROBLEM, - };
@<Issue PM_TopicText problem@> =
StandardProblems::table_problem(_p_(PM_TopicText),
table_being_examined, NULL, table_cell_node,
"In %1, the column name 'topic' is not allowed to have a clarifying kind "
"in brackets after it. Just say 'topic' and leave it at that.");
==> { NEW_TC_PROBLEM, - };
@<Issue PM_TableColumnBracketed problem@> =
StandardProblems::table_problem(_p_(PM_TableColumnBracketed),
table_being_examined, NULL, table_cell_node,

View file

@ -200,10 +200,12 @@ at runtime, which extends the range of promotions we can make.
=
parse_node *CompileValues::cast_nonconstant(parse_node *value, kind *K_wanted,
int *down) {
value = CompileValues::cast_constant(value, K_wanted);
kind *K_found = Specifications::to_kind(value);
CompileValues::note_that_kind_is_used(K_found);
EmitCode::casting_call(K_found, K_wanted, down);
if (Node::is(value, TABLE_ENTRY_NT) == FALSE) {
value = CompileValues::cast_constant(value, K_wanted);
kind *K_found = Specifications::to_kind(value);
CompileValues::note_that_kind_is_used(K_found);
EmitCode::casting_call(K_found, K_wanted, down);
}
return value;
}