mirror of
https://github.com/ganelson/inform.git
synced 2024-07-02 23:14:57 +03:00
Merge branch 'ganelson:master' into master
This commit is contained in:
commit
147a304e23
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
v10.1.0-beta+6U99 'Krypton' (7 May 2022)
|
||||
v10.1.0-beta+6V01 'Krypton' (8 May 2022)
|
||||
|
||||
## About Inform 7
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 7 May 2022
|
||||
Build Number: 6U99
|
||||
Build Date: 8 May 2022
|
||||
Build Number: 6V01
|
||||
|
|
|
@ -174,8 +174,11 @@ cautiously for the sake of case-sensitive file systems.
|
|||
</p>
|
||||
|
||||
<p class="commentary">Nobody should any longer be storing extension files without the file
|
||||
extension <span class="extract"><span class="extract-syntax">.i7x</span></span>, but this was allowed in the early days of Inform 7,
|
||||
so we'll quietly allow for it.
|
||||
extension <span class="extract"><span class="extract-syntax">.i7x</span></span>. This was allowed in the early days of Inform 7, and early
|
||||
drafts of inblorb allowed it too, but this caused problems with emacs backup
|
||||
files (with filenames ending <span class="extract"><span class="extract-syntax">~</span></span>) being picked up instead of the extension
|
||||
files they were backing up. So inblorb now recognises only <span class="extract"><span class="extract-syntax">.i7x</span></span> files as
|
||||
extensions.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -221,11 +224,16 @@ so we'll quietly allow for it.
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionManager::search_nest_for_single_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">fext</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::write_extension</span><span class="plain-syntax">(</span><span class="identifier-syntax">fext</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">fext</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".i7x"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-em.html#SP5" class="function-link"><span class="function-syntax">ExtensionManager::claim_file_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">C</span><span class="plain-syntax">) && (</span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP6" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">fext</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Copying. </b>Now the task is to copy an extension into place in a nest. This is easy,
|
||||
since an extension is a single file; to sync, we just overwrite.
|
||||
|
|
|
@ -109,8 +109,11 @@ in |req| has the same casing as in the subfolder name, so we go about this
|
|||
cautiously for the sake of case-sensitive file systems.
|
||||
|
||||
Nobody should any longer be storing extension files without the file
|
||||
extension |.i7x|, but this was allowed in the early days of Inform 7,
|
||||
so we'll quietly allow for it.
|
||||
extension |.i7x|. This was allowed in the early days of Inform 7, and early
|
||||
drafts of inblorb allowed it too, but this caused problems with emacs backup
|
||||
files (with filenames ending |~|) being picked up instead of the extension
|
||||
files they were backing up. So inblorb now recognises only |.i7x| files as
|
||||
extensions.
|
||||
|
||||
=
|
||||
void ExtensionManager::search_nest_for(inbuild_genre *gen, inbuild_nest *N,
|
||||
|
@ -155,11 +158,16 @@ void ExtensionManager::search_nest_for_r(pathname *P, inbuild_nest *N,
|
|||
|
||||
void ExtensionManager::search_nest_for_single_file(filename *F, inbuild_nest *N,
|
||||
inbuild_requirement *req, linked_list *search_results) {
|
||||
TEMPORARY_TEXT(fext)
|
||||
Filenames::write_extension(fext, F);
|
||||
if (Str::eq_insensitive(fext, I".i7x")) {
|
||||
inbuild_copy *C = ExtensionManager::claim_file_as_copy(F);
|
||||
if ((C) && (Requirements::meets(C->edition, req))) {
|
||||
Nests::add_search_result(search_results, N, C, req);
|
||||
}
|
||||
}
|
||||
DISCARD_TEXT(fext)
|
||||
}
|
||||
|
||||
@h Copying.
|
||||
Now the task is to copy an extension into place in a nest. This is easy,
|
||||
|
|
|
@ -1,47 +1,47 @@
|
|||
Total memory consumption was 129430K = 126 MB
|
||||
Total memory consumption was 123347K = 120 MB
|
||||
|
||||
---- was used for 2044308 objects, in 362627 frames in 0 x 800K = 0K = 0 MB:
|
||||
|
||||
31.5% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
19.5% text_stream_array 4603 x 100 = 460300 objects, 25924096 bytes
|
||||
18.3% linked_list 43446 objects, 24329760 bytes
|
||||
10.6% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
|
||||
9.9% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
|
||||
7.8% parse_node 129721 objects, 10377680 bytes
|
||||
5.6% verb_conjugation 160 objects, 7425280 bytes
|
||||
4.1% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
|
||||
2.5% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
|
||||
2.4% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
|
||||
1.9% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
|
||||
1.5% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 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
|
||||
19.2% linked_list 43446 objects, 24329760 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
|
||||
8.2% parse_node 129721 objects, 10377680 bytes
|
||||
5.8% verb_conjugation 160 objects, 7425280 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.5% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
|
||||
2.0% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
|
||||
1.6% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
|
||||
1.5% inter_schema_token 13969 objects, 2011536 bytes
|
||||
1.4% package_request 21151 objects, 1861288 bytes
|
||||
1.3% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
|
||||
1.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
|
||||
1.1% dict_entry_array 468 x 100 = 46800 objects, 1512576 bytes
|
||||
1.1% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
|
||||
1.1% inter_symbols_table 26588 objects, 1488928 bytes
|
||||
1.0% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
|
||||
0.9% inter_package 26588 objects, 1276224 bytes
|
||||
1.0% inter_package 26588 objects, 1276224 bytes
|
||||
0.8% map_data 670 objects, 1125600 bytes
|
||||
0.8% id_body 942 objects, 1077648 bytes
|
||||
0.7% adjective_meaning 202 objects, 1000304 bytes
|
||||
0.7% excerpt_meaning 3101 objects, 967512 bytes
|
||||
0.6% production 3877 objects, 899464 bytes
|
||||
0.7% production 3877 objects, 899464 bytes
|
||||
0.6% ptoken 8394 objects, 872976 bytes
|
||||
0.6% grammatical_usage 3612 objects, 866880 bytes
|
||||
0.6% individual_form 2562 objects, 860832 bytes
|
||||
0.6% inter_schema_node 8920 objects, 856320 bytes
|
||||
0.4% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
|
||||
0.5% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
|
||||
0.3% scan_directory 116 objects, 478848 bytes
|
||||
0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes
|
||||
0.2% verb_usage 1128 objects, 388032 bytes
|
||||
0.3% verb_usage 1128 objects, 388032 bytes
|
||||
0.2% rule 470 objects, 368480 bytes
|
||||
0.2% dictionary 7517 objects, 360816 bytes
|
||||
0.2% verb_form 386 objects, 348944 bytes
|
||||
0.2% noun 2381 objects, 285720 bytes
|
||||
0.2% compilation_subtask 3349 objects, 267920 bytes
|
||||
0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
|
||||
0.1% inference_subject 665 objects, 260680 bytes
|
||||
0.2% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
|
||||
0.2% inference_subject 665 objects, 260680 bytes
|
||||
0.1% vanilla_function 3682 objects, 235648 bytes
|
||||
0.1% binary_predicate 321 objects, 169488 bytes
|
||||
0.1% hierarchy_location 1122 objects, 161568 bytes
|
||||
|
@ -237,23 +237,23 @@ Total memory consumption was 129430K = 126 MB
|
|||
|
||||
100.0% was used for memory not allocated for objects:
|
||||
|
||||
59.7% text stream storage 79145104 bytes in 478305 claims
|
||||
3.9% dictionary storage 5227008 bytes in 7517 claims
|
||||
57.7% text stream storage 72916216 bytes in 477857 claims
|
||||
4.1% dictionary storage 5227008 bytes in 7517 claims
|
||||
---- sorting 1448 bytes in 149 claims
|
||||
5.4% source text 7200000 bytes in 3 claims
|
||||
8.1% source text details 10800000 bytes in 2 claims
|
||||
0.1% documentation fragments 262144 bytes in 1 claim
|
||||
5.7% source text 7200000 bytes in 3 claims
|
||||
8.5% source text details 10800000 bytes in 2 claims
|
||||
0.2% documentation fragments 262144 bytes in 1 claim
|
||||
---- linguistic stock array 81920 bytes in 2 claims
|
||||
---- small word set array 105600 bytes in 22 claims
|
||||
3.4% inter symbols storage 4518768 bytes in 27943 claims
|
||||
12.6% inter bytecode storage 16766024 bytes in 14 claims
|
||||
4.6% inter links storage 6222976 bytes in 11 claims
|
||||
3.5% inter symbols storage 4518768 bytes in 27943 claims
|
||||
13.2% inter bytecode storage 16766024 bytes in 14 claims
|
||||
4.9% inter links storage 6222976 bytes in 11 claims
|
||||
0.1% inter tree location list storage 191232 bytes in 32 claims
|
||||
1.2% instance-of-kind counting 1695204 bytes in 1 claim
|
||||
1.3% instance-of-kind counting 1695204 bytes in 1 claim
|
||||
---- compilation workspace for objects 21856 bytes in 25 claims
|
||||
---- lists for type-checking invocations 16000 bytes in 1 claim
|
||||
---- code generation workspace for objects 1336 bytes in 4 claims
|
||||
0.2% emitter array storage 280032 bytes in 1997 claims
|
||||
|
||||
-138.-6% was overhead - -183807336 bytes = -179499K = -175 MB
|
||||
-145.-5% was overhead - -183807336 bytes = -179499K = -175 MB
|
||||
|
||||
|
|
|
@ -1,32 +1,33 @@
|
|||
100.0% in inform7 run
|
||||
71.0% in compilation to Inter
|
||||
50.1% in //Sequence::undertake_queued_tasks//
|
||||
4.2% in //MajorNodes::pre_pass//
|
||||
71.2% in compilation to Inter
|
||||
50.7% in //Sequence::undertake_queued_tasks//
|
||||
4.4% in //MajorNodes::pre_pass//
|
||||
3.4% in //MajorNodes::pass_1//
|
||||
2.4% in //RTPhrasebook::compile_entries//
|
||||
2.0% in //RTPhrasebook::compile_entries//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
1.4% in //RTKindConstructors::compile//
|
||||
1.6% in //RTKindConstructors::compile//
|
||||
1.0% in //Sequence::lint_inter//
|
||||
0.6% in //MajorNodes::pass_2//
|
||||
0.6% in //Sequence::undertake_queued_tasks//
|
||||
0.6% 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 //InferenceSubjects::emit_all//
|
||||
0.2% in //RTKindConstructors::compile_permissions//
|
||||
0.2% in //Task::make_built_in_kind_constructors//
|
||||
3.2% not specifically accounted for
|
||||
26.0% in running Inter pipeline
|
||||
10.1% in step 14/15: generate inform6 -> auto.inf
|
||||
5.9% in step 6/15: make-synoptic-module
|
||||
5.4% in step 5/15: load-binary-kits
|
||||
0.2% in //World::stages_II_and_III//
|
||||
2.6% not specifically accounted for
|
||||
25.9% in running Inter pipeline
|
||||
10.2% in step 14/15: generate inform6 -> auto.inf
|
||||
5.6% in step 5/15: load-binary-kits
|
||||
5.4% in step 6/15: make-synoptic-module
|
||||
1.4% 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.4% in step 7/15: shorten-wiring
|
||||
0.4% in step 8/15: detect-indirect-calls
|
||||
0.2% in step 11/15: eliminate-redundant-labels
|
||||
1.2% not specifically accounted for
|
||||
1.4% not specifically accounted for
|
||||
2.4% in supervisor
|
||||
0.5% not specifically accounted for
|
||||
|
|
Loading…
Reference in a new issue