mirror of
https://github.com/ganelson/inform.git
synced 2024-06-29 05:24:57 +03:00
Fix for Jira bug I7-2107
This commit is contained in:
parent
d08a9659b8
commit
4bd2c0ad86
|
@ -1,13 +1,13 @@
|
||||||
Total memory consumption was 123345K = 120 MB
|
Total memory consumption was 123345K = 120 MB
|
||||||
|
|
||||||
---- was used for 2044505 objects, in 362824 frames in 0 x 800K = 0K = 0 MB:
|
---- was used for 2044504 objects, in 362823 frames in 0 x 800K = 0K = 0 MB:
|
||||||
|
|
||||||
33.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
33.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||||
20.5% text_stream_array 4603 x 100 = 460300 objects, 25924096 bytes
|
20.5% text_stream_array 4603 x 100 = 460300 objects, 25924096 bytes
|
||||||
19.2% linked_list 43446 objects, 24329760 bytes
|
19.2% linked_list 43446 objects, 24329760 bytes
|
||||||
11.1% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
|
11.1% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
|
||||||
10.4% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
|
10.4% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
|
||||||
8.2% parse_node 129721 objects, 10377680 bytes
|
8.2% parse_node 129720 objects, 10377600 bytes
|
||||||
5.8% verb_conjugation 160 objects, 7425280 bytes
|
5.8% verb_conjugation 160 objects, 7425280 bytes
|
||||||
4.3% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
|
4.3% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
|
||||||
2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
|
2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
|
||||||
|
@ -255,5 +255,5 @@ Total memory consumption was 123345K = 120 MB
|
||||||
---- code generation workspace for objects 1336 bytes in 4 claims
|
---- code generation workspace for objects 1336 bytes in 4 claims
|
||||||
0.2% emitter array storage 280032 bytes in 1997 claims
|
0.2% emitter array storage 280032 bytes in 1997 claims
|
||||||
|
|
||||||
-146.-1% was overhead - -184624928 bytes = -180297K = -176 MB
|
-146.-1% was overhead - -184624848 bytes = -180297K = -176 MB
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
100.0% in inform7 run
|
100.0% in inform7 run
|
||||||
70.8% in compilation to Inter
|
70.9% in compilation to Inter
|
||||||
50.8% in //Sequence::undertake_queued_tasks//
|
50.6% in //Sequence::undertake_queued_tasks//
|
||||||
4.6% in //MajorNodes::pre_pass//
|
4.6% in //MajorNodes::pre_pass//
|
||||||
3.2% in //MajorNodes::pass_1//
|
3.3% in //MajorNodes::pass_1//
|
||||||
1.9% in //ImperativeDefinitions::assess_all//
|
1.9% in //ImperativeDefinitions::assess_all//
|
||||||
1.7% in //RTPhrasebook::compile_entries//
|
1.8% in //RTPhrasebook::compile_entries//
|
||||||
1.5% in //RTKindConstructors::compile//
|
1.4% in //RTKindConstructors::compile//
|
||||||
1.1% in //Sequence::lint_inter//
|
1.0% in //Sequence::lint_inter//
|
||||||
0.5% in //MajorNodes::pass_2//
|
0.6% in //MajorNodes::pass_2//
|
||||||
0.5% in //Sequence::undertake_queued_tasks//
|
0.6% in //Sequence::undertake_queued_tasks//
|
||||||
0.5% in //World::stage_V//
|
0.6% in //World::stage_V//
|
||||||
0.4% in //ImperativeDefinitions::compile_first_block//
|
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 //CompletionModule::compile//
|
||||||
|
@ -18,20 +18,20 @@
|
||||||
0.1% in //Task::make_built_in_kind_constructors//
|
0.1% in //Task::make_built_in_kind_constructors//
|
||||||
0.1% in //Understand::traverse//
|
0.1% in //Understand::traverse//
|
||||||
0.1% in //World::stages_II_and_III//
|
0.1% in //World::stages_II_and_III//
|
||||||
2.0% not specifically accounted for
|
2.3% not specifically accounted for
|
||||||
26.4% in running Inter pipeline
|
26.4% in running Inter pipeline
|
||||||
10.2% in step 14/15: generate inform6 -> auto.inf
|
9.8% in step 14/15: generate inform6 -> auto.inf
|
||||||
5.8% in step 6/15: make-synoptic-module
|
6.1% in step 6/15: make-synoptic-module
|
||||||
5.7% in step 5/15: load-binary-kits
|
5.7% in step 5/15: load-binary-kits
|
||||||
1.6% in step 9/15: make-identifiers-unique
|
1.6% in step 9/15: make-identifiers-unique
|
||||||
0.5% in step 4/15: compile-splats
|
|
||||||
0.4% in step 12/15: eliminate-redundant-operations
|
0.4% in step 12/15: eliminate-redundant-operations
|
||||||
0.4% in step 7/15: shorten-wiring
|
0.4% in step 4/15: compile-splats
|
||||||
|
0.3% in step 7/15: shorten-wiring
|
||||||
0.3% in step 8/15: detect-indirect-calls
|
0.3% in step 8/15: detect-indirect-calls
|
||||||
0.2% in step 11/15: eliminate-redundant-labels
|
0.2% in step 11/15: eliminate-redundant-labels
|
||||||
0.1% in step 10/15: reconcile-verbs
|
0.1% in step 10/15: reconcile-verbs
|
||||||
0.1% in step 2/15: parse-insertions
|
0.1% in step 2/15: parse-insertions
|
||||||
0.1% in step 3/15: resolve-conditional-compilation
|
0.1% in step 3/15: resolve-conditional-compilation
|
||||||
0.5% not specifically accounted for
|
0.8% not specifically accounted for
|
||||||
2.3% in supervisor
|
2.2% in supervisor
|
||||||
0.4% not specifically accounted for
|
0.4% not specifically accounted for
|
||||||
|
|
|
@ -72,7 +72,7 @@ Section 2 - Current action
|
||||||
The noun -- documented at var_noun -- is an object that varies.
|
The noun -- documented at var_noun -- is an object that varies.
|
||||||
The second noun is an object that varies.
|
The second noun is an object that varies.
|
||||||
The person asked -- documented at var_person_asked -- is an object that varies.
|
The person asked -- documented at var_person_asked -- is an object that varies.
|
||||||
The reason the action failed -- documented at var_reason -- is an action name
|
The reason the action failed -- documented at var_reason -- is an action
|
||||||
based rule producing nothing that varies.
|
based rule producing nothing that varies.
|
||||||
The item described is an object that varies.
|
The item described is an object that varies.
|
||||||
|
|
||||||
|
|
|
@ -615,7 +615,6 @@ int Kinds::compatible(kind *from, kind *to) {
|
||||||
if (Kinds::eq(from, to)) return ALWAYS_MATCH;
|
if (Kinds::eq(from, to)) return ALWAYS_MATCH;
|
||||||
|
|
||||||
LOGIF(KIND_CHECKING, "(Is the kind %u compatible with %u?", from, to);
|
LOGIF(KIND_CHECKING, "(Is the kind %u compatible with %u?", from, to);
|
||||||
|
|
||||||
switch(Latticework::order_relation(from, to, TRUE)) {
|
switch(Latticework::order_relation(from, to, TRUE)) {
|
||||||
case NEVER_MATCH: LOGIF(KIND_CHECKING, " No)\n"); return NEVER_MATCH;
|
case NEVER_MATCH: LOGIF(KIND_CHECKING, " No)\n"); return NEVER_MATCH;
|
||||||
case ALWAYS_MATCH: LOGIF(KIND_CHECKING, " Yes)\n"); return ALWAYS_MATCH;
|
case ALWAYS_MATCH: LOGIF(KIND_CHECKING, " Yes)\n"); return ALWAYS_MATCH;
|
||||||
|
|
|
@ -331,6 +331,8 @@ and, of course, "value".
|
||||||
o = Latticework::construct_compatible(from, to, allow_casts);
|
o = Latticework::construct_compatible(from, to, allow_casts);
|
||||||
int i, this_o = NEVER_MATCH, fallen = FALSE;
|
int i, this_o = NEVER_MATCH, fallen = FALSE;
|
||||||
for (i=0; i<arity; i++) {
|
for (i=0; i<arity; i++) {
|
||||||
|
if ((Latticework::vacuous(from->kc_args[i])) && (Latticework::vacuous(to->kc_args[i])))
|
||||||
|
continue;
|
||||||
if (KindConstructors::variance(from->construct, i) == COVARIANT)
|
if (KindConstructors::variance(from->construct, i) == COVARIANT)
|
||||||
this_o = Latticework::order_relation(from->kc_args[i], to->kc_args[i], allow_casts);
|
this_o = Latticework::order_relation(from->kc_args[i], to->kc_args[i], allow_casts);
|
||||||
else {
|
else {
|
||||||
|
@ -341,9 +343,15 @@ and, of course, "value".
|
||||||
case SOMETIMES_MATCH: if (o != NEVER_MATCH) { o = this_o; fallen = TRUE; } break;
|
case SOMETIMES_MATCH: if (o != NEVER_MATCH) { o = this_o; fallen = TRUE; } break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((o == fallen) && (to->construct != CON_list_of)) return NEVER_MATCH;
|
if ((fallen) && (to->construct != CON_list_of)) return NEVER_MATCH;
|
||||||
return o;
|
return o;
|
||||||
|
|
||||||
|
@ =
|
||||||
|
int Latticework::vacuous(kind *K) {
|
||||||
|
if ((Kinds::eq(K, K_nil)) || (Kinds::eq(K, K_void))) return TRUE;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
@ =
|
@ =
|
||||||
int Latticework::construct_compatible(kind *from, kind *to, int allow_casts) {
|
int Latticework::construct_compatible(kind *from, kind *to, int allow_casts) {
|
||||||
kind *K = from;
|
kind *K = from;
|
||||||
|
|
|
@ -36,23 +36,22 @@ void Kinds::Behaviour::set_range_number(kind *K, int r) {
|
||||||
|
|
||||||
=
|
=
|
||||||
int Kinds::Behaviour::is_object(kind *K) {
|
int Kinds::Behaviour::is_object(kind *K) {
|
||||||
if ((Kinds::conforms_to(K, K_object)) && (Kinds::eq(K, K_nil) == FALSE) && (Kinds::eq(K, K_void) == FALSE))
|
if ((Kinds::conforms_to(K, K_object)) &&
|
||||||
|
(Kinds::eq(K, K_nil) == FALSE) && (Kinds::eq(K, K_void) == FALSE))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Kinds::Behaviour::is_subkind_of_object(kind *K) {
|
int Kinds::Behaviour::is_subkind_of_object(kind *K) {
|
||||||
if ((Kinds::conforms_to(K, K_object)) && (Kinds::eq(K, K_object) == FALSE) &&
|
if ((Kinds::conforms_to(K, K_object)) && (Kinds::eq(K, K_object) == FALSE) &&
|
||||||
(Kinds::eq(K, K_nil) == FALSE) &&
|
(Kinds::eq(K, K_nil) == FALSE) && (Kinds::eq(K, K_void) == FALSE))
|
||||||
(Kinds::eq(K, K_void) == FALSE))
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Kinds::Behaviour::is_object_of_kind(kind *K, kind *L) {
|
int Kinds::Behaviour::is_object_of_kind(kind *K, kind *L) {
|
||||||
if ((Kinds::conforms_to(K, K_object)) && (Kinds::conforms_to(K, L)) &&
|
if ((Kinds::conforms_to(K, K_object)) && (Kinds::conforms_to(K, L)) &&
|
||||||
(Kinds::eq(K, K_nil) == FALSE) &&
|
(Kinds::eq(K, K_nil) == FALSE) && (Kinds::eq(K, K_void) == FALSE))
|
||||||
(Kinds::eq(K, K_void) == FALSE))
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue