mirror of
https://github.com/ganelson/inform.git
synced 2024-06-26 04:00:43 +03:00
Reconstructed English Language as a directory-format extension and improved release blurbs
This commit is contained in:
parent
3f985594bd
commit
b37d193634
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6X62 'Krypton' (14 May 2024)
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6X63 'Krypton' (19 May 2024)
|
||||
|
||||
## About Inform
|
||||
|
||||
|
@ -135,10 +135,6 @@ The following webs are the source for the two most important extensions shipped
|
|||
* [Basic Inform by Graham Nelson](inform7/extensions/basic_inform) - __v2__ - [★ Web](https://ganelson.github.io/inform/basic_inform/index.html)
|
||||
* [Standard Rules by Graham Nelson](inform7/extensions/standard_rules) - __v7__ - [★ Web](https://ganelson.github.io/inform/standard_rules/index.html)
|
||||
|
||||
Other extensions shipped with Inform are not presented as webs, but as single files:
|
||||
|
||||
* [English Language by Graham Nelson](<inform7/Internal/Extensions/Graham Nelson/English Language.i7x>) - __v2__
|
||||
|
||||
### Website templates and interpreters shipped with Inform
|
||||
|
||||
These are templates used by Inform to release story files within a website:
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 14 May 2024
|
||||
Build Number: 6X62
|
||||
Build Date: 19 May 2024
|
||||
Build Number: 6X63
|
||||
|
|
|
@ -554,12 +554,6 @@ command, to be re-entered later on when actions are processed.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dialogue_selection_value</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_OF_TY_GetItem</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_SetLength</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="comment-syntax"> style bold;</span>
|
||||
<span class="comment-syntax"> TEXT_TY_Say(DirectorChoiceRawContent(dc));</span>
|
||||
<span class="comment-syntax"> style roman;</span>
|
||||
<span class="comment-syntax"> print "^";</span>
|
||||
<span class="comment-syntax"> say__p = 1;</span>
|
||||
<span class="comment-syntax"> DivideParagraphPoint();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorExerciseChoice</span><span class="plain-syntax">(</span><span class="identifier-syntax">dc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PARSED_COMMAND_DCODEDT</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">director_is_paused_for_command</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -357,11 +357,21 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">LicenceDeclaration::anything_to_declare</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_licence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="identifier-syntax">licence</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">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_from_JSON</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">discussed_in_source</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-ldr.html#SP5" class="function-link"><span class="function-syntax">LicenceDeclaration::to_be_declared</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">extensions_included</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="identifier-syntax">licence</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">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_from_JSON</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">discussed_in_source</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-ldr.html#SP5" class="function-link"><span class="function-syntax">LicenceDeclaration::to_be_declared</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">LicenceDeclaration::to_be_declared</span><span class="plain-syntax">(</span><span class="identifier-syntax">inbuild_licence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</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">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">read_from_JSON</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">discussed_in_source</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">rights_history</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"This extension is basic to Inform and requires no acknowledgement."</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -139,6 +139,7 @@ the Blorb-file's filename won't be too long for the file system.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n! Other material to release\n\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tbf.html#SP1_2_6" class="named-paragraph-link"><span class="named-paragraph">Give instructions about source text, solution and library card</span><span class="named-paragraph-number">1.2.6</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tbf.html#SP1_2_7" class="named-paragraph-link"><span class="named-paragraph">Give instructions about auxiliary files</span><span class="named-paragraph-number">1.2.7</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">templates_declared</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</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">rel</span><span class="plain-syntax">-></span><span class="element-syntax">release_interpreter</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-tbf.html#SP1_2_8" class="named-paragraph-link"><span class="named-paragraph">Give instructions to release with an interpreter for Web play</span><span class="named-paragraph-number">1.2.8</span></a></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">rel</span><span class="plain-syntax">-></span><span class="element-syntax">release_website</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="2-tbf.html#SP1_2_9" class="named-paragraph-link"><span class="named-paragraph">Give instructions to construct a website around the release</span><span class="named-paragraph-number">1.2.9</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tbf.html#SP1_2_10" class="named-paragraph-link"><span class="named-paragraph">Give hints to Inblorb for its HTML status page</span><span class="named-paragraph-number">1.2.10</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -148,7 +149,7 @@ the Blorb-file's filename won't be too long for the file system.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"status \"%f\" \"%f\"\n\n"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"status \"%f\" \"%f\"\n"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InstalledFiles::filename</span><span class="plain-syntax">(</span><span class="identifier-syntax">CBLORB_REPORT_MODEL_IRES</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Task::cblorb_report_file</span><span class="plain-syntax">());</span>
|
||||
</pre>
|
||||
|
@ -312,7 +313,7 @@ file online.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n! Website instructions\n\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n! Interpreter instructions\n\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"placeholder [ENCODEDSTORYFILE] = \""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STREAM_COPY</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">".js\"\n"</span><span class="plain-syntax">);</span>
|
||||
|
@ -373,22 +374,48 @@ included by the project, and then the external area, and finally the internal.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-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="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Projects::nest_list</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"template path \"%p\"\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TemplateManager::path_within_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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Nests::get_tag</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">) == </span><span class="identifier-syntax">MATERIALS_NEST_TAG</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">()-></span><span class="identifier-syntax">extensions_included</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Extensions::materials_path</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</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">P</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"template path \"%p\"\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TemplateManager::path_within_nest</span><span class="plain-syntax">(</span><span class="identifier-syntax">Nests::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</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">templates_declared</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-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="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Projects::nest_list</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">declared</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tbf.html#SP1_2_8_1_1" class="named-paragraph-link"><span class="named-paragraph">Declare one template path</span><span class="named-paragraph-number">1.2.8.1.1</span></a></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">Nests::get_tag</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">) == </span><span class="identifier-syntax">MATERIALS_NEST_TAG</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax">, </span><span class="identifier-syntax">Task::project</span><span class="plain-syntax">()-></span><span class="identifier-syntax">extensions_included</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Extensions::materials_path</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</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">P</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Nests::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-tbf.html#SP1_2_8_1_1" class="named-paragraph-link"><span class="named-paragraph">Declare one template path</span><span class="named-paragraph-number">1.2.8.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</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">templates_declared</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-tbf.html#SP1_2_8">§1.2.8</a>, <a href="2-tbf.html#SP1_2_9">§1.2.9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2_8_1_1" class="paragraph-anchor"></a><b>§1.2.8.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Declare one template path</span><span class="named-paragraph-number">1.2.8.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">TP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TemplateManager::path_within_nest</span><span class="plain-syntax">(</span><span class="identifier-syntax">M</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">Directories::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">TP</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">declaration</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">declaration</span><span class="plain-syntax">, </span><span class="string-syntax">"template path \"%p\"\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">already</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">done</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">done</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">declared</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</span><span class="plain-syntax">(</span><span class="identifier-syntax">done</span><span class="plain-syntax">, </span><span class="identifier-syntax">declaration</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">already</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</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">already</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">declaration</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">declaration</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">declared</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-tbf.html#SP1_2_8_1">§1.2.8.1</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2_10" class="paragraph-anchor"></a><b>§1.2.10. </b>Inblorb reports its progress, or lack of it, with an HTML page, just as we do.
|
||||
This page however includes some hints on what the user might have chosen
|
||||
instead of what he actually did choose, and we'll write those hints now, for
|
||||
|
|
|
@ -67,6 +67,8 @@ function togglePopup(material_id) {
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROBLEMS_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIT_VERSIONS_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">SYNC_KIT_VERSIONS_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXTENSION_VERSIONS_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">SYNC_EXTENSION_VERSIONS_CLSW</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">path_to_inpolicy</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> where we are installed</span>
|
||||
|
@ -86,6 +88,10 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="string-syntax">"show version numbers of the built-in kits"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SYNC_KIT_VERSIONS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">U</span><span class="string-syntax">"sync-kit-versions"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="string-syntax">"fix version numbers of the built-in kits to match core inform7 version"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">EXTENSION_VERSIONS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">U</span><span class="string-syntax">"extension-versions"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="string-syntax">"show version numbers of the built-in extensions"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SYNC_EXTENSION_VERSIONS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">U</span><span class="string-syntax">"sync-extension-versions"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="string-syntax">"fix version numbers of the built-in extensions to match core inform7 version"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP6" class="function-link"><span class="function-syntax">CommandLine::declare_boolean_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SILENCE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">U</span><span class="string-syntax">"silence"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">U</span><span class="string-syntax">"print nothing unless there's something wrong"</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
|
@ -123,6 +129,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROBLEMS_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">RUNTEST</span><span class="plain-syntax">(</span><a href="2-pc.html#SP7" class="function-link"><span class="function-syntax">Coverage::check</span></a><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">KIT_VERSIONS_CLSW:</span><span class="plain-syntax"> </span><a href="2-kv.html#SP1" class="function-link"><span class="function-syntax">KitVersioning::show_versions</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SYNC_KIT_VERSIONS_CLSW:</span><span class="plain-syntax"> </span><a href="2-kv.html#SP2" class="function-link"><span class="function-syntax">KitVersioning::sync_versions</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXTENSION_VERSIONS_CLSW:</span><span class="plain-syntax"> </span><a href="2-ev.html#SP1" class="function-link"><span class="function-syntax">ExtensionVersioning::show_versions</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SYNC_EXTENSION_VERSIONS_CLSW:</span><span class="plain-syntax"> </span><a href="2-ev.html#SP2" class="function-link"><span class="function-syntax">ExtensionVersioning::sync_versions</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SILENCE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">silence_mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERBOSE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">verbose_mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
289
docs/inpolicy/2-ev.html
Normal file
289
docs/inpolicy/2-ev.html
Normal file
|
@ -0,0 +1,289 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Extension Versioning</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../index.html">home</a></li>
|
||||
</ul><h2>Compiler</h2><ul>
|
||||
<li><a href="../structure.html">structure</a></li>
|
||||
<li><a href="../inbuildn.html">inbuild</a></li>
|
||||
<li><a href="../inform7n.html">inform7</a></li>
|
||||
<li><a href="../intern.html">inter</a></li>
|
||||
<li><a href="../services.html">services</a></li>
|
||||
<li><a href="../secrets.html">secrets</a></li>
|
||||
</ul><h2>Other Tools</h2><ul>
|
||||
<li><a href="../inblorbn.html">inblorb</a></li>
|
||||
<li><a href="../indocn.html">indoc</a></li>
|
||||
<li><a href="../inform6.html">inform6</a></li>
|
||||
<li><a href="../inpolicyn.html">inpolicy</a></li>
|
||||
</ul><h2>Resources</h2><ul>
|
||||
<li><a href="../extensions.html">extensions</a></li>
|
||||
<li><a href="../kits.html">kits</a></li>
|
||||
</ul><h2>Repository</h2><ul>
|
||||
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=18> github</a></li>
|
||||
</ul><h2>Related Projects</h2><ul>
|
||||
<li><a href="../../../inweb/index.html">inweb</a></li>
|
||||
<li><a href="../../../intest/index.html">intest</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Extension Versioning' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="index.html">inpolicy</a></li><li><a href="index.html#2">Chapter 2: Policies</a></li><li><b>Extension Versioning</b></li></ul></div>
|
||||
<p class="purpose">To ensure that the built-in extensions share version numbers with the core compiler.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>This implements <span class="extract"><span class="extract-syntax">-extension-versions</span></span>:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionVersioning::show_versions</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionVersioning::show_versions</span></span>:<br/>Main - <a href="1-mn.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">core_V</span><span class="plain-syntax"> = </span><a href="2-ev.html#SP2" class="function-link"><span class="function-syntax">ExtensionVersioning::simplified_core_version</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Simplified core version is %v\n"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">core_V</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ev.html#SP3" class="function-link"><span class="function-syntax">ExtensionVersioning::iterate</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/7-vn.html#SP4" class="function-link"><span class="function-syntax">VersionNumbers::null</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>And <span class="extract"><span class="extract-syntax">-sync-extension-versions</span></span>:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionVersioning::sync_versions</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">ExtensionVersioning::sync_versions</span></span>:<br/>Main - <a href="1-mn.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">core_V</span><span class="plain-syntax"> = </span><a href="2-ev.html#SP2" class="function-link"><span class="function-syntax">ExtensionVersioning::simplified_core_version</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Simplified core version is %v\n"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">core_V</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ev.html#SP3" class="function-link"><span class="function-syntax">ExtensionVersioning::iterate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">core_V</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionVersioning::simplified_core_version</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">ExtensionVersioning::simplified_core_version</span></span>:<br/><a href="2-ev.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">web_md</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inform7_web</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/8-ws.html#SP5" class="function-link"><span class="function-syntax">WebMetadata::get_without_modules</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7"</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">inform7_web</span><span class="plain-syntax">-></span><span class="element-syntax">version_number</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">prerelease_segments</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">.</span><span class="element-syntax">build_metadata</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>Both use the following to work through the built-in kits:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionVersioning::iterate</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">ExtensionVersioning::iterate</span></span>:<br/><a href="2-ev.html#SP1">§1</a>, <a href="2-ev.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7/Internal/Extensions/Graham Nelson"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-drc.html#SP4" class="function-link"><span class="function-syntax">Directories::listing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">entry</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/1-wp.html#SP3" class="function-link"><span class="function-syntax">Platform::is_folder_separator</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_last_char</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-sm.html#SP25" class="function-link"><span class="function-syntax">Str::delete_last_character</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">entry</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::create_mr</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">U</span><span class="string-syntax">"(%c+)-v(%d%c*).i7xd"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">raw_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">claimed</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/7-vn.html#SP7" class="function-link"><span class="function-syntax">VersionNumbers::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ev.html#SP3" class="function-link"><span class="function-syntax">ExtensionVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">raw_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">claimed</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::dispose_of</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionVersioning::show_version</span><span class="plain-syntax">(</span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">claimed</span><span class="plain-syntax">, </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="2-ev.html#SP4" class="function-link"><span class="function-syntax">ExtensionVersioning::read_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">claimed</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Extension %S has version %v\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, &</span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>The actual work, then, is done by this function, which returns the version
|
||||
number of the kit stored at the path <span class="extract"><span class="extract-syntax">kit</span></span>; if <span class="extract"><span class="extract-syntax">set_to</span></span> is other than null,
|
||||
the kit's version is changed to <span class="extract"><span class="extract-syntax">set_to</span></span>, and this value returned. In both
|
||||
cases, the kit's JSON metadata file is read in; in the second case, it is
|
||||
then written back out, modified to include the new version number. (Note
|
||||
that no file write occurs unless an actual change is needed: if <span class="extract"><span class="extract-syntax">set_to</span></span>
|
||||
is the same as the version it already has, there's no need to rewrite.)
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionVersioning::read_version</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">ExtensionVersioning::read_version</span></span>:<br/><a href="2-ev.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">claimed</span><span class="plain-syntax">, </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"extension_metadata.json"</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">contents</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-tf.html#SP5" class="function-link"><span class="function-syntax">TextFiles::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="string-syntax">"unable to read file of JSON metadata"</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><a href="2-ev.html#SP5" class="function-link"><span class="function-syntax">ExtensionVersioning::read_metadata_file_helper</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">contents</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_file_position</span><span class="plain-syntax"> </span><span class="identifier-syntax">tfp</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-tf.html#SP4" class="function-link"><span class="function-syntax">TextFiles::at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">JSON_value</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-jsn.html#SP11" class="function-link"><span class="function-syntax">JSON::decode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">contents</span><span class="plain-syntax">, &</span><span class="identifier-syntax">tfp</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">value</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">value</span><span class="plain-syntax">-></span><span class="element-syntax">JSON_type</span><span class="plain-syntax"> == </span><span class="constant-syntax">ERROR_JSONTYPE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP6" class="function-link"><span class="function-syntax">Errors::at_position</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Syntax error in metadata file for extension"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/7-vn.html#SP4" class="function-link"><span class="function-syntax">VersionNumbers::null</span></a><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">contents</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">JSON_value</span><span class="plain-syntax"> *</span><span class="identifier-syntax">is</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-jsn.html#SP7" class="function-link"><span class="function-syntax">JSON::look_up_object</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"is"</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">is</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP6" class="function-link"><span class="function-syntax">Errors::at_position</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Semantic error in metadata file for extension"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/7-vn.html#SP4" class="function-link"><span class="function-syntax">VersionNumbers::null</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">JSON_value</span><span class="plain-syntax"> *</span><span class="identifier-syntax">version</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-jsn.html#SP7" class="function-link"><span class="function-syntax">JSON::look_up_object</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">is</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"version"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/7-vn.html#SP4" class="function-link"><span class="function-syntax">VersionNumbers::null</span></a><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">version</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/7-vn.html#SP7" class="function-link"><span class="function-syntax">VersionNumbers::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">version</span><span class="plain-syntax">-></span><span class="element-syntax">if_string</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/7-vn.html#SP4" class="function-link"><span class="function-syntax">VersionNumbers::is_null</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP6" class="function-link"><span class="function-syntax">Errors::at_position</span></a><span class="plain-syntax">(</span><span class="string-syntax">"Malformed version number in metadata file for extension"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/7-vn.html#SP4" class="function-link"><span class="function-syntax">VersionNumbers::null</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/7-vn.html#SP4" class="function-link"><span class="function-syntax">VersionNumbers::is_null</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">set_to</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ev.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">If necessary impose the new version in metadata file</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ev.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">If necessary impose the new version in directory name</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ev.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">If necessary impose the new version in extension header</span><span class="named-paragraph-number">4.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>§4.1. </b>The following test used to be just <span class="extract"><span class="extract-syntax">VersionNumbers::ne(set_to, V)</span></span>, but this,
|
||||
because it properly followed the semver standard, regarded them as equal if they
|
||||
differed only in the build code — so <span class="extract"><span class="extract-syntax">10.1.0-beta+6V20</span></span> would not be updated to
|
||||
<span class="extract"><span class="extract-syntax">10.1.0-beta+6V44</span></span>, for example. We now force a sync if there is any textual
|
||||
difference at all.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">If necessary impose the new version in metadata file</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">a</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">b</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">a</span><span class="plain-syntax">, </span><span class="string-syntax">"%v"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">b</span><span class="plain-syntax">, </span><span class="string-syntax">"%v"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::ne</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">a</span><span class="plain-syntax">, </span><span class="identifier-syntax">b</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ev.html#SP4_1_1" class="named-paragraph-link"><span class="named-paragraph">Change the version to set_to</span><span class="named-paragraph-number">4.1.1</span></a></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">a</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">b</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ev.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1_1" class="paragraph-anchor"></a><b>§4.1.1. </b>We change the JSON object for the kit's metadata (at object.is.version), and
|
||||
then encode the object out as a new version of the file:
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Change the version to set_to</span><span class="named-paragraph-number">4.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">version</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">version</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-jsn.html#SP4" class="function-link"><span class="function-syntax">JSON::new_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-jsn.html#SP6" class="function-link"><span class="function-syntax">JSON::add_to_object</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">is</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"version"</span><span class="plain-syntax">, </span><span class="identifier-syntax">version</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Rewriting %f to impose version number %v (was %v)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, &</span><span class="identifier-syntax">set_to</span><span class="plain-syntax">, &</span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">version</span><span class="plain-syntax">-></span><span class="element-syntax">if_string</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">version</span><span class="plain-syntax">-></span><span class="element-syntax">if_string</span><span class="plain-syntax">, </span><span class="string-syntax">"%v"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> </span><span class="identifier-syntax">JSON_struct</span><span class="plain-syntax">; </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = &</span><span class="identifier-syntax">JSON_struct</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">STREAM_OPEN_TO_FILE</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">UTF8_ENC</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_file</span></a><span class="plain-syntax">(</span><span class="string-syntax">"unable to open metadata file for output: %f"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-jsn.html#SP18" class="function-link"><span class="function-syntax">JSON::encode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STREAM_CLOSE</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ev.html#SP4_1">§4.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_2" class="paragraph-anchor"></a><b>§4.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">If necessary impose the new version in directory name</span><span class="named-paragraph-number">4.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">correct_name</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">flattened</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">flattened</span><span class="plain-syntax">, </span><span class="string-syntax">"%v"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">, </span><span class="identifier-syntax">flattened</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">) == </span><span class="character-syntax">'.'</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-sm.html#SP14" class="function-link"><span class="function-syntax">Str::put</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">, </span><span class="character-syntax">'_'</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">correct_name</span><span class="plain-syntax">, </span><span class="string-syntax">"%S-v%S.i7xd"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">flattened</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">flattened</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::ne</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/3-pth.html#SP7" class="function-link"><span class="function-syntax">Pathnames::directory_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">), </span><span class="identifier-syntax">correct_name</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">XC</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/3-pth.html#SP7" class="function-link"><span class="function-syntax">Pathnames::up</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">), </span><span class="identifier-syntax">correct_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-pth.html#SP11" class="function-link"><span class="function-syntax">Pathnames::move_directory</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">XC</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><span class="identifier-syntax">XC</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Renaming directory to %p\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">X</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">correct_name</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ev.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_3" class="paragraph-anchor"></a><b>§4.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">If necessary impose the new version in extension header</span><span class="named-paragraph-number">4.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="string-syntax">"%S.i7x"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Source"</span><span class="plain-syntax">), </span><span class="identifier-syntax">leaf</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">leaf</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">source</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-tf.html#SP5" class="function-link"><span class="function-syntax">TextFiles::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="string-syntax">"unable to read file of extension source"</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><a href="2-ev.html#SP5" class="function-link"><span class="function-syntax">ExtensionVersioning::read_metadata_file_helper</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">source</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::create_mr</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">source</span><span class="plain-syntax">, </span><span class="identifier-syntax">U</span><span class="string-syntax">"(Version )(%d%C*?)( of %c*)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">sourced</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/7-vn.html#SP7" class="function-link"><span class="function-syntax">VersionNumbers::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">a</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">b</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">a</span><span class="plain-syntax">, </span><span class="string-syntax">"%v"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">b</span><span class="plain-syntax">, </span><span class="string-syntax">"%v"</span><span class="plain-syntax">, &</span><span class="identifier-syntax">sourced</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::ne</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">a</span><span class="plain-syntax">, </span><span class="identifier-syntax">b</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ev.html#SP4_3_1" class="named-paragraph-link"><span class="named-paragraph">Change the version in the extension to set_to</span><span class="named-paragraph-number">4.3.1</span></a></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">a</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">b</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::dispose_of</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</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">source</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ev.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_3_1" class="paragraph-anchor"></a><b>§4.3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Change the version in the extension to set_to</span><span class="named-paragraph-number">4.3.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Rewriting opening line of %f\n"</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">text_stream</span><span class="plain-syntax"> </span><span class="identifier-syntax">S_struct</span><span class="plain-syntax">; </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = &</span><span class="identifier-syntax">S_struct</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">STREAM_OPEN_TO_FILE</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">UTF8_ENC</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_file</span></a><span class="plain-syntax">(</span><span class="string-syntax">"unable to open extension source for output: %f"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S%v"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], &</span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">pos</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0]) + </span><a href="../../../inweb/foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">pos</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><a href="../../../inweb/foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">source</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">source</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STREAM_CLOSE</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ev.html#SP4_3">§4.3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionVersioning::read_metadata_file_helper</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">ExtensionVersioning::read_metadata_file_helper</span></span>:<br/><a href="2-ev.html#SP4">§4</a>, <a href="2-ev.html#SP4_3">§4.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v_state</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">contents</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">v_state</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">contents</span><span class="plain-syntax">, </span><span class="string-syntax">"%S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-kv.html">❮</a></li><li class="progresschapter"><a href="M-ui.html">M</a></li><li class="progresschapter"><a href="1-bsc.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-pc.html">pc</a></li><li class="progresssection"><a href="2-kv.html">kv</a></li><li class="progresscurrent">ev</li><li class="progressnextoff">❯</li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -87,16 +87,39 @@ function togglePopup(material_id) {
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitVersioning::iterate</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">KitVersioning::iterate</span></span>:<br/><a href="2-kv.html#SP1">§1</a>, <a href="2-kv.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"WorldModelKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"EnglishLanguageKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"CommandParserKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"BasicInformKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"Architecture16Kit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"Architecture32Kit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7/Internal/Inter"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WorldModelKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CommandParserKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"BasicInformKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DialogueKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Architecture16Kit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Architecture32Kit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7/Internal/Extensions/Graham Nelson"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::iterate_through</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitVersioning::show_version</span><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7/Internal/Inter"</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitVersioning::iterate_through</span><span class="plain-syntax">(</span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-drc.html#SP4" class="function-link"><span class="function-syntax">Directories::listing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">entry</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/1-wp.html#SP3" class="function-link"><span class="function-syntax">Platform::is_folder_separator</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_last_char</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-sm.html#SP25" class="function-link"><span class="function-syntax">Str::delete_last_character</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">entry</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Materials"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">X</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Inter"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L2</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-drc.html#SP4" class="function-link"><span class="function-syntax">Directories::listing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">L2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/1-wp.html#SP3" class="function-link"><span class="function-syntax">Platform::is_folder_separator</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_last_char</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/4-sm.html#SP25" class="function-link"><span class="function-syntax">Str::delete_last_character</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-kv.html#SP3" class="function-link"><span class="function-syntax">KitVersioning::show_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitVersioning::show_version</span><span class="plain-syntax">(</span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">semantic_version_number</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="2-kv.html#SP4" class="function-link"><span class="function-syntax">KitVersioning::read_version</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Kit %S has version %v\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, &</span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
|
||||
|
@ -198,7 +221,7 @@ then encode the object out as a new version of the file:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-pc.html">❮</a></li><li class="progresschapter"><a href="M-ui.html">M</a></li><li class="progresschapter"><a href="1-bsc.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-pc.html">pc</a></li><li class="progresscurrent">kv</li><li class="progressnextoff">❯</li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-pc.html">❮</a></li><li class="progresschapter"><a href="M-ui.html">M</a></li><li class="progresschapter"><a href="1-bsc.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresssection"><a href="2-pc.html">pc</a></li><li class="progresscurrent">kv</li><li class="progresssection"><a href="2-ev.html">ev</a></li><li class="progressnext"><a href="2-ev.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -84,7 +84,7 @@ set of Inform test cases.
|
|||
<span class="plain-syntax"> </span><span class="constant-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">known_problem</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure known_problem is accessed in 2/trs, 4/prp, 4/jsn, 5/mrk, 5/mv, 5/im and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure known_problem is accessed in 2/trs, 4/prp, 4/jsn, 5/mrk, 5/mv, 5/im, 7/ld and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>When a problem is observed, we create a dictionary entry for it, if necessary,
|
||||
and augment its bitmap of known contexts:
|
||||
</p>
|
||||
|
@ -321,7 +321,7 @@ messages:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="1-mn.html">❮</a></li><li class="progresschapter"><a href="M-ui.html">M</a></li><li class="progresschapter"><a href="1-bsc.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">pc</li><li class="progresssection"><a href="2-kv.html">kv</a></li><li class="progressnext"><a href="2-kv.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="1-mn.html">❮</a></li><li class="progresschapter"><a href="M-ui.html">M</a></li><li class="progresschapter"><a href="1-bsc.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">pc</li><li class="progresssection"><a href="2-kv.html">kv</a></li><li class="progresssection"><a href="2-ev.html">ev</a></li><li class="progressnext"><a href="2-kv.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -58,19 +58,21 @@
|
|||
|
||||
<span class="plain-syntax">usage: inpolicy [options]</span>
|
||||
|
||||
<span class="plain-syntax">-check-problems check problem test case coverage</span>
|
||||
<span class="plain-syntax">-kit-versions show version numbers of the built-in kits</span>
|
||||
<span class="plain-syntax">-silence print nothing unless there's something wrong (default is -no-silence)</span>
|
||||
<span class="plain-syntax">-sync-kit-versions fix version numbers of the built-in kits to match core inform7 version</span>
|
||||
<span class="plain-syntax">-verbose explain what inpolicy is doing (default is -no-verbose)</span>
|
||||
<span class="plain-syntax">-check-problems check problem test case coverage</span>
|
||||
<span class="plain-syntax">-extension-versions show version numbers of the built-in extensions</span>
|
||||
<span class="plain-syntax">-kit-versions show version numbers of the built-in kits</span>
|
||||
<span class="plain-syntax">-silence print nothing unless there's something wrong (default is -no-silence)</span>
|
||||
<span class="plain-syntax">-sync-extension-versions fix version numbers of the built-in extensions to match core inform7 version</span>
|
||||
<span class="plain-syntax">-sync-kit-versions fix version numbers of the built-in kits to match core inform7 version</span>
|
||||
<span class="plain-syntax">-verbose explain what inpolicy is doing (default is -no-verbose)</span>
|
||||
|
||||
<span class="plain-syntax">-at X specify that this tool is installed at X</span>
|
||||
<span class="plain-syntax">-crash intentionally crash on internal errors, for backtracing (default is -no-crash)</span>
|
||||
<span class="plain-syntax">-fixtime pretend the time is 11 a.m. on 28 March 2016 for testing (default is -no-fixtime)</span>
|
||||
<span class="plain-syntax">-help print this help information</span>
|
||||
<span class="plain-syntax">-locale X set locales as 'L=E', L being shell or console, E platform, utf-8 or iso-latin1</span>
|
||||
<span class="plain-syntax">-log X write the debugging log to include diagnostics on X</span>
|
||||
<span class="plain-syntax">-version print out version number</span>
|
||||
<span class="plain-syntax">-at X specify that this tool is installed at X</span>
|
||||
<span class="plain-syntax">-crash intentionally crash on internal errors, for backtracing (default is -no-crash)</span>
|
||||
<span class="plain-syntax">-fixtime pretend the time is 11 a.m. on 28 March 2016 for testing (default is -no-fixtime)</span>
|
||||
<span class="plain-syntax">-help print this help information</span>
|
||||
<span class="plain-syntax">-locale X set locales as 'L=E', L being shell or console, E platform, utf-8 or iso-latin1</span>
|
||||
<span class="plain-syntax">-log X write the debugging log to include diagnostics on X</span>
|
||||
<span class="plain-syntax">-version print out version number</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="M-ui.html">❮</a></li><li class="progresscurrentchapter">M</li><li class="progresssection"><a href="M-ui.html">ui</a></li><li class="progresscurrent">rc</li><li class="progresschapter"><a href="1-bsc.html">1</a></li><li class="progresschapter"><a href="2-pc.html">2</a></li><li class="progressnext"><a href="1-bsc.html">❯</a></li></ul></div>
|
||||
|
|
|
@ -94,6 +94,11 @@
|
|||
<spon class="sectiontitle">Kit Versioning</span></a> -
|
||||
<span class="sectionpurpose">To ensure that the built-in kits share version numbers with the core compiler.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="2-ev.html">
|
||||
<spon class="sectiontitle">Extension Versioning</span></a> -
|
||||
<span class="sectionpurpose">To ensure that the built-in extensions share version numbers with the core compiler.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
@ -181,7 +181,7 @@ number of successes.
|
|||
</li></ul>
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">Size of lexicon: 3223 excerpt meanings</span>
|
||||
<span class="plain-syntax"> Stored among 860 words out of total vocabulary of 10707</span>
|
||||
<span class="plain-syntax"> Stored among 860 words out of total vocabulary of 10708</span>
|
||||
<span class="plain-syntax"> 724 words have a start list: longest belongs to report (with 296 meanings)</span>
|
||||
<span class="plain-syntax"> 21 words have an end list: longest belongs to digits (with 7 meanings)</span>
|
||||
<span class="plain-syntax"> 29 words have a middle list: longest belongs to matches (with 6 meanings)</span>
|
||||
|
|
|
@ -85,7 +85,7 @@ we can give a semantic version number range:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">req</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="function-syntax">Requirements::any_version_of</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Requirements::any_version_of</span></span>:<br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Extension Services - <a href="5-es.html#SP2_4_3_1_2">§2.4.3.1.2</a>, <a href="5-es.html#SP2_4_3_2_2">§2.4.3.2.2</a>, <a href="5-es.html#SP2_6">§2.6</a><br/>Kit Services - <a href="5-ks.html#SP5_3_1_2">§5.3.1.2</a>, <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP7">§7</a>, <a href="5-ls.html#SP10">§10</a><br/>Project Services - <a href="5-ps2.html#SP18">§18</a>, <a href="5-ps2.html#SP21">§21</a>, <a href="5-ps2.html#SP23_1">§23.1</a><br/>Inclusions - <a href="6-inc.html#SP6_1_2">§6.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="function-syntax">Requirements::any_version_of</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Requirements::any_version_of</span></span>:<br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Extension Services - <a href="5-es.html#SP2_4_3_1_2">§2.4.3.1.2</a>, <a href="5-es.html#SP2_4_3_2_2">§2.4.3.2.2</a>, <a href="5-es.html#SP2_6">§2.6</a><br/>Kit Services - <a href="5-ks.html#SP5_3_1_2">§5.3.1.2</a>, <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Project Services - <a href="5-ps2.html#SP18">§18</a>, <a href="5-ps2.html#SP21">§21</a>, <a href="5-ps2.html#SP23_1">§23.1</a><br/>Inclusions - <a href="6-inc.html#SP6_1_2">§6.1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">, </span><span class="identifier-syntax">VersionNumberRanges::any_range</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
|
|
@ -94,7 +94,7 @@ not subsequently altered.
|
|||
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="function-syntax">Works::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Works::new</span></span>:<br/><a href="2-wrk.html#SP11">§11</a><br/>Requirements - <a href="2-rqr.html#SP2">§2</a><br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Extension Manager - <a href="4-em.html#SP4">§4</a><br/>Language Manager - <a href="4-lm.html#SP3">§3</a><br/>Project Bundle Manager - <a href="4-pbm.html#SP2">§2</a><br/>Project File Manager - <a href="4-pfm.html#SP2">§2</a><br/>Template Manager - <a href="4-tm.html#SP3">§3</a><br/>Extension Services - <a href="5-es.html#SP2_4_3_1">§2.4.3.1</a>, <a href="5-es.html#SP2_4_3_2">§2.4.3.2</a>, <a href="5-es.html#SP2_6">§2.6</a><br/>Kit Services - <a href="5-ks.html#SP5_3_1">§5.3.1</a>, <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Project Services - <a href="5-ps2.html#SP18">§18</a><br/>Headings - <a href="6-hdn.html#SP12_3">§12.3</a><br/>Inclusions - <a href="6-inc.html#SP5_1">§5.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP3" class="function-link"><span class="function-syntax">Works::new_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="function-syntax">Works::new_raw</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Works::new_raw</span></span>:<br/>Extension Bundle Manager - <a href="4-ebm.html#SP3">§3</a><br/>Kit Manager - <a href="4-km.html#SP3">§3</a><br/>Pipeline Manager - <a href="4-pm.html#SP4">§4</a><br/>Extension Services - <a href="5-es.html#SP2_3">§2.3</a><br/>Language Services - <a href="5-ls.html#SP7">§7</a><br/>Project Services - <a href="5-ps2.html#SP21">§21</a>, <a href="5-ps2.html#SP23_1">§23.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="function-syntax">Works::new_raw</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Works::new_raw</span></span>:<br/>Extension Bundle Manager - <a href="4-ebm.html#SP3">§3</a><br/>Kit Manager - <a href="4-km.html#SP3">§3</a><br/>Pipeline Manager - <a href="4-pm.html#SP4">§4</a><br/>Extension Services - <a href="5-es.html#SP2_3">§2.3</a><br/>Project Services - <a href="5-ps2.html#SP21">§21</a>, <a href="5-ps2.html#SP23_1">§23.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-wrk.html#SP3" class="function-link"><span class="function-syntax">Works::new_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">ti</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -216,20 +216,13 @@ detect the language of play for a story file without actually running it.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">supports</span><span class="plain-syntax">[</span><span class="identifier-syntax">S</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. Kit. </b>Each language needs its own kit of Inter code, if it is going to be used as
|
||||
a language of play. The following is called only when `L` is the language of
|
||||
play for `project`:
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Kit. </b>At one time, the language of play added a kit dependency here. That's now
|
||||
handled differently, in that the kit in question (`FrenchLanguageKit`, say)
|
||||
should now be included in the `French Language` extension.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Languages::add_kit_dependencies_to_project</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Languages::add_kit_dependencies_to_project</span></span>:<br/>Project Services - <a href="5-ps2.html#SP23_1">§23.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</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">L</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no language"</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">kitname</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">kitname</span><span class="plain-syntax">, </span><span class="string-syntax">"%SLanguageKit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_work</span><span class="plain-syntax"> *</span><span class="identifier-syntax">work</span><span class="plain-syntax"> = </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new_raw</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">kitname</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">""</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><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">work</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ps2.html#SP21" class="function-link"><span class="function-syntax">Projects::add_kit_dependency</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">, </span><span class="identifier-syntax">kitname</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</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">kitname</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Finding by name. </b>Given the name of a natural language (e.g., "German") we find the
|
||||
|
|
|
@ -634,7 +634,7 @@ at least one kit, and probably several.
|
|||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::add_kit_dependency</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Projects::add_kit_dependency</span></span>:<br/><a href="5-ps2.html#SP23_1">§23.1</a>, <a href="5-ps2.html#SP33">§33</a><br/>Extension Services - <a href="5-es.html#SP9">§9</a><br/>Kit Services - <a href="5-ks.html#SP9">§9</a><br/>Language Services - <a href="5-ls.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit_name</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::add_kit_dependency</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Projects::add_kit_dependency</span></span>:<br/><a href="5-ps2.html#SP23_1">§23.1</a>, <a href="5-ps2.html#SP33">§33</a><br/>Extension Services - <a href="5-es.html#SP9">§9</a><br/>Kit Services - <a href="5-ks.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit_name</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">because_of_language</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">because_of_kit</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">nests</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-ps2.html#SP22" class="function-link"><span class="function-syntax">Projects::uses_kit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">, </span><span class="identifier-syntax">kit_name</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T1/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T1/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T2/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T2/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T5/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T5/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T3/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T3/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T4/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T4/Example.inform"
|
||||
|
|
|
@ -151,19 +151,12 @@ int Languages::supports(inform_language *L, int S) {
|
|||
}
|
||||
|
||||
@h Kit.
|
||||
Each language needs its own kit of Inter code, if it is going to be used as
|
||||
a language of play. The following is called only when `L` is the language of
|
||||
play for `project`:
|
||||
At one time, the language of play added a kit dependency here. That's now
|
||||
handled differently, in that the kit in question (`FrenchLanguageKit`, say)
|
||||
should now be included in the `French Language` extension.
|
||||
|
||||
=
|
||||
void Languages::add_kit_dependencies_to_project(inform_language *L, inform_project *project) {
|
||||
if (L == NULL) internal_error("no language");
|
||||
TEMPORARY_TEXT(kitname)
|
||||
WRITE_TO(kitname, "%SLanguageKit", L->as_copy->edition->work->title);
|
||||
inbuild_work *work = Works::new_raw(kit_genre, kitname, I"");
|
||||
inbuild_requirement *req = Requirements::any_version_of(work);
|
||||
Projects::add_kit_dependency(project, kitname, L, NULL, req, NULL);
|
||||
DISCARD_TEXT(kitname)
|
||||
}
|
||||
|
||||
@h Finding by name.
|
||||
|
|
2
inform7/.gitignore
vendored
2
inform7/.gitignore
vendored
|
@ -44,6 +44,6 @@ Internal/Inter/Architecture32Kit/*.interb
|
|||
Internal/Inter/BasicInformKit/*.interb
|
||||
Internal/Inter/CommandParserKit/*.interb
|
||||
Internal/Inter/DialogueKit/*.interb
|
||||
Internal/Inter/EnglishLanguageKit/*.interb
|
||||
Internal/Extensions/Graham Nelson/English*/Materials/Inter/EnglishLanguageKit/*.interb
|
||||
Internal/Inter/WorldModelKit/*.interb
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Size of lexicon: 3223 excerpt meanings
|
||||
Stored among 860 words out of total vocabulary of 10707
|
||||
Stored among 860 words out of total vocabulary of 10708
|
||||
724 words have a start list: longest belongs to report (with 296 meanings)
|
||||
21 words have an end list: longest belongs to digits (with 7 meanings)
|
||||
29 words have a middle list: longest belongs to matches (with 6 meanings)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<preform-nonterminal> internal nti 30 constraint (none) extremes [1, 1]
|
||||
|
||||
<if-start-of-paragraph> internal hits 1386/8922 nti 6 constraint (none) extremes [0, 0]
|
||||
<if-start-of-paragraph> internal hits 1385/8920 nti 6 constraint (none) extremes [0, 0]
|
||||
|
||||
<if-not-cap> internal hits 4088/8336 nti 7 constraint (none) extremes [0, 0]
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
|||
|
||||
<any-integer> internal nti 9 constraint (none) extremes [1, 1]
|
||||
|
||||
<quoted-text> internal hits 3001/26280 nti 10 constraint (none) extremes [1, 1]
|
||||
<quoted-text> internal hits 3001/26278 nti 10 constraint (none) extremes [1, 1]
|
||||
|
||||
<quoted-text-with-subs> internal nti 11 constraint (none) extremes [1, 1]
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
|||
|
||||
<empty-text> internal nti 13 constraint (none) extremes [1, 1]
|
||||
|
||||
<if-start-of-source-text> internal hits 2/13936 nti 14 constraint (none) extremes [0, 0]
|
||||
<if-start-of-source-text> internal hits 2/13930 nti 14 constraint (none) extremes [0, 0]
|
||||
|
||||
<list-or-division> hits 0/18 nti 16 constraint DS = {16} extremes [3, infinity)
|
||||
English:
|
||||
|
@ -4743,7 +4743,7 @@
|
|||
|
||||
<article> internal hits 16904/103322 nti r2 constraint (none) extremes [1, 1]
|
||||
|
||||
<definite-article> internal hits 20830/245360 nti r2 constraint (none) extremes [1, 1]
|
||||
<definite-article> internal hits 20830/245358 nti r2 constraint (none) extremes [1, 1]
|
||||
|
||||
<indefinite-article> internal hits 2481/44294 nti r2 constraint (none) extremes [1, 1]
|
||||
|
||||
|
@ -5446,33 +5446,33 @@
|
|||
|
||||
<natural-language> internal nti 20 constraint (none) extremes [1, infinity)
|
||||
|
||||
<dividing-sentence> hits 221/11016 nti 21 constraint DW = {12, 13} extremes [2, infinity)
|
||||
<dividing-sentence> hits 221/11014 nti 21 constraint DW = {12, 13} extremes [2, infinity)
|
||||
English:
|
||||
<if-start-of-paragraph> <heading>
|
||||
(hits 213/4447) (matched long text) constraint DS = {12} extremes [2, infinity)
|
||||
(hits 213/4446) (matched long text) constraint DS = {12} extremes [2, infinity)
|
||||
<extension-end-marker-sentence>
|
||||
(hits 8/4112) (matched long text) constraint DS = {13} extremes [3, infinity)
|
||||
|
||||
<heading> hits 213/2744 nti 12 constraint DS = {12} extremes [2, infinity)
|
||||
<heading> hits 213/2742 nti 12 constraint DS = {12} extremes [2, infinity)
|
||||
English:
|
||||
volume {...}
|
||||
(hits 6/1372) (matched long text) constraint DS = {12} extremes [2, infinity)
|
||||
(hits 6/1371) (matched long text) constraint DS = {12} extremes [2, infinity)
|
||||
book {...}
|
||||
(hits 0/1366) constraint DS = {12} extremes [2, infinity)
|
||||
(hits 0/1365) constraint DS = {12} extremes [2, infinity)
|
||||
part {...}
|
||||
(hits 15/1366) (matched: 'part two - the physical world model') constraint DS = {12} extremes [2, infinity)
|
||||
(hits 15/1365) (matched: 'part two - the physical world model') constraint DS = {12} extremes [2, infinity)
|
||||
chapter {...}
|
||||
(hits 25/1351) (matched long text) constraint DS = {12} extremes [2, infinity)
|
||||
(hits 25/1350) (matched long text) constraint DS = {12} extremes [2, infinity)
|
||||
section {...} ( dialog )
|
||||
(hits 0/1211) constraint DS = {12} extremes [5, infinity)
|
||||
(hits 0/1210) constraint DS = {12} extremes [5, infinity)
|
||||
section {...} ( dialogue )
|
||||
(hits 0/1211) constraint DS = {12} extremes [5, infinity)
|
||||
(hits 0/1210) constraint DS = {12} extremes [5, infinity)
|
||||
section {...} ( dialog during {...} )
|
||||
(hits 0/1025) constraint DS = {12} extremes [7, infinity)
|
||||
section {...} ( dialogue during {...} )
|
||||
(hits 0/1025) constraint DS = {12} extremes [7, infinity)
|
||||
section {...}
|
||||
(hits 167/1326) (matched long text) constraint DS = {12} extremes [2, infinity)
|
||||
(hits 167/1325) (matched long text) constraint DS = {12} extremes [2, infinity)
|
||||
|
||||
<extension-end-marker-sentence> hits 8/8224 nti 13 constraint DS = {13} extremes [3, infinity)
|
||||
English:
|
||||
|
@ -5481,30 +5481,30 @@
|
|||
{...} end/ends here
|
||||
(hits 4/4108) (matched: 'the standard rules end here') constraint DS = {13} extremes [3, infinity)
|
||||
|
||||
<structural-sentence> hits 32/13936 nti 15 constraint (none) extremes [1, infinity)
|
||||
<structural-sentence> hits 29/13930 nti 15 constraint (none) extremes [1, infinity)
|
||||
English:
|
||||
<if-start-of-source-text> <quoted-text>
|
||||
(hits 0/20) constraint (none) extremes [1, 1]
|
||||
<if-start-of-source-text> <quoted-text> {...}
|
||||
(hits 0/6948) constraint (none) extremes [2, infinity)
|
||||
(hits 0/6945) constraint (none) extremes [2, infinity)
|
||||
<language-modifying-sentence>
|
||||
(hits 0/6769) constraint DS = {14} extremes [4, infinity)
|
||||
(hits 0/6766) constraint DS = {14} extremes [4, infinity)
|
||||
*
|
||||
constraint CS = {15} extremes [1, 1]
|
||||
* <quoted-text-without-subs>
|
||||
constraint DS = {15} extremes [2, 2]
|
||||
<if-start-of-paragraph> table {...}
|
||||
(hits 14/6768) (matched long text) constraint DS = {15} extremes [2, infinity)
|
||||
(hits 14/6766) (matched long text) constraint DS = {15} extremes [2, infinity)
|
||||
<if-start-of-paragraph> equation {...}
|
||||
(hits 0/6754) constraint DS = {15} extremes [2, infinity)
|
||||
(hits 0/6752) constraint DS = {15} extremes [2, infinity)
|
||||
include the {...} by {...}
|
||||
(hits 0/6747) constraint DS = {15} extremes [5, infinity)
|
||||
(hits 0/6745) constraint DS = {15} extremes [5, infinity)
|
||||
include {...} by {...}
|
||||
(hits 18/6754) (matched long text) constraint DS = {15} extremes [4, infinity)
|
||||
(hits 15/6752) (matched long text) constraint DS = {15} extremes [4, infinity)
|
||||
include (- {...}
|
||||
(hits 0/6736) constraint DS = {15} extremes [3, infinity)
|
||||
(hits 0/6737) constraint DS = {15} extremes [3, infinity)
|
||||
|
||||
<comma-divisible-sentence> hits 9/2942 nti 16 constraint DS = {16} extremes [2, infinity)
|
||||
<comma-divisible-sentence> hits 9/2940 nti 16 constraint DS = {16} extremes [2, infinity)
|
||||
English:
|
||||
instead of {...}
|
||||
(hits 0/1429) constraint DS = {16} extremes [3, infinity)
|
||||
|
@ -5517,12 +5517,12 @@
|
|||
when {...}
|
||||
(hits 4/1424) (matched: 'when scene begins is a scene based rulebook') constraint DS = {16} extremes [2, infinity)
|
||||
|
||||
<language-modifying-sentence> hits 0/13538 nti 14 constraint DS = {14} extremes [4, infinity)
|
||||
<language-modifying-sentence> hits 0/13532 nti 14 constraint DS = {14} extremes [4, infinity)
|
||||
English:
|
||||
include (- {###} in the preform grammar
|
||||
(hits 0/126) constraint DS = {14} extremes [7, 7]
|
||||
use {...} language element/elements
|
||||
(hits 0/6769) constraint DS = {14} extremes [4, infinity)
|
||||
(hits 0/6766) constraint DS = {14} extremes [4, infinity)
|
||||
|
||||
<heading-qualifier> hits 36/480 nti 22 constraint DS = {22} extremes [2, infinity)
|
||||
English:
|
||||
|
@ -5624,30 +5624,30 @@
|
|||
{......}
|
||||
constraint (none) extremes [1, infinity)
|
||||
|
||||
<extension-title-and-version> hits 10/20 nti 27 constraint (none) extremes [1, infinity)
|
||||
<extension-title-and-version> hits 9/18 nti 27 constraint (none) extremes [1, infinity)
|
||||
English:
|
||||
version <extension-version> of <definite-article> <extension-unversioned>
|
||||
(hits 1/3) (matched: 'version 7 of the standard rules') constraint DS = {27} extremes [5, infinity)
|
||||
version <extension-version> of <extension-unversioned>
|
||||
(hits 3/3) (matched: 'version 2 of basic inform') constraint DS = {27} extremes [4, infinity)
|
||||
<definite-article> <extension-unversioned>
|
||||
(hits 0/5) constraint (none) extremes [2, infinity)
|
||||
(hits 0/4) constraint (none) extremes [2, infinity)
|
||||
<extension-unversioned>
|
||||
(hits 6/6) (matched: 'basic inform') constraint (none) extremes [1, infinity)
|
||||
(hits 5/5) (matched: 'basic inform') constraint (none) extremes [1, infinity)
|
||||
|
||||
<extension-unversioned> hits 10/20 nti 26 constraint (none) extremes [1, infinity)
|
||||
<extension-unversioned> hits 9/18 nti 26 constraint (none) extremes [1, infinity)
|
||||
English:
|
||||
<extension-unversioned-inner> ( {...} )
|
||||
constraint DS = {26} extremes [4, infinity)
|
||||
<extension-unversioned-inner>
|
||||
(hits 10/10) (matched: 'basic inform') constraint (none) extremes [1, infinity)
|
||||
(hits 9/9) (matched: 'basic inform') constraint (none) extremes [1, infinity)
|
||||
|
||||
<extension-unversioned-inner> hits 10/20 nti 25 constraint (none) extremes [1, infinity)
|
||||
<extension-unversioned-inner> hits 9/18 nti 25 constraint (none) extremes [1, infinity)
|
||||
English:
|
||||
<quoted-text> {***}
|
||||
(hits 0/10) constraint (none) extremes [1, infinity)
|
||||
(hits 0/9) constraint (none) extremes [1, infinity)
|
||||
{...}
|
||||
(hits 10/10) (matched: 'basic inform') constraint (none) extremes [1, infinity)
|
||||
(hits 9/9) (matched: 'basic inform') constraint (none) extremes [1, infinity)
|
||||
|
||||
<extension-version> internal hits 6/12 nti 26 constraint (none) extremes [1, 1]
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
Total memory consumption was 144279K = 141 MB
|
||||
Total memory consumption was 144469K = 141 MB
|
||||
|
||||
---- was used for 2178458 objects, in 383866 frames in 0 x 800K = 0K = 0 MB:
|
||||
---- was used for 2179537 objects, in 384351 frames in 0 x 800K = 0K = 0 MB:
|
||||
|
||||
29.2% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes
|
||||
20.0% text_stream_array 5252 x 100 = 525200 objects, 29579264 bytes
|
||||
18.1% linked_list 47862 objects, 26802720 bytes
|
||||
9.8% inter_symbol_array 136 x 1024 = 139264 objects, 14487808 bytes
|
||||
20.0% text_stream_array 5258 x 100 = 525800 objects, 29613056 bytes
|
||||
18.1% linked_list 47996 objects, 26877760 bytes
|
||||
9.7% inter_symbol_array 136 x 1024 = 139264 objects, 14487808 bytes
|
||||
9.4% inter_error_stash_array 107 x 1024 = 109568 objects, 14028128 bytes
|
||||
7.2% parse_node 134156 objects, 10732480 bytes
|
||||
7.2% scan_directory 2581 objects, 10654368 bytes
|
||||
7.4% scan_directory 2675 objects, 11042400 bytes
|
||||
7.2% parse_node 134155 objects, 10732400 bytes
|
||||
5.1% verb_conjugation 165 objects, 7657320 bytes
|
||||
3.8% parse_node_annotation_array 358 x 500 = 179000 objects, 5739456 bytes
|
||||
2.3% pcalc_prop_array 26 x 1000 = 26000 objects, 3536832 bytes
|
||||
|
@ -35,7 +35,7 @@ Total memory consumption was 144279K = 141 MB
|
|||
0.4% unary_predicate_array 17 x 1000 = 17000 objects, 680544 bytes
|
||||
0.3% local_variable_array 50 x 100 = 5000 objects, 481600 bytes
|
||||
0.2% verb_usage 1148 objects, 394912 bytes
|
||||
0.2% dictionary 7844 objects, 376512 bytes
|
||||
0.2% dictionary 7849 objects, 376752 bytes
|
||||
0.2% rule 480 objects, 376320 bytes
|
||||
0.2% verb_form 388 objects, 350752 bytes
|
||||
0.1% noun 2414 objects, 289680 bytes
|
||||
|
@ -64,10 +64,10 @@ Total memory consumption was 144279K = 141 MB
|
|||
---- lexical_cluster 2556 objects, 81792 bytes
|
||||
---- kind_variable_declaration 1662 objects, 79776 bytes
|
||||
---- rulebook 410 objects, 78720 bytes
|
||||
---- filename 1730 objects, 69200 bytes
|
||||
---- pathname 1691 objects, 67640 bytes
|
||||
---- spatial_data 688 objects, 66048 bytes
|
||||
---- filename 1645 objects, 65800 bytes
|
||||
---- linked_list_item_array 4 x 1000 = 4000 objects, 64128 bytes
|
||||
---- pathname 1575 objects, 63000 bytes
|
||||
---- actions_rcd_data 1966 objects, 62912 bytes
|
||||
---- scenes_rcd_data 1966 objects, 62912 bytes
|
||||
---- booking 872 objects, 62784 bytes
|
||||
|
@ -90,8 +90,8 @@ Total memory consumption was 144279K = 141 MB
|
|||
---- shared_variable_access_list_array 12 x 100 = 1200 objects, 38784 bytes
|
||||
---- parsing_data 688 objects, 38528 bytes
|
||||
---- production_list 630 objects, 35280 bytes
|
||||
---- regions_data 688 objects, 33024 bytes
|
||||
---- counting_data 688 objects, 33024 bytes
|
||||
---- regions_data 688 objects, 33024 bytes
|
||||
---- property_permission 97 objects, 31816 bytes
|
||||
---- stack_frame_box 307 objects, 29472 bytes
|
||||
---- verb_sense 408 objects, 29376 bytes
|
||||
|
@ -99,9 +99,9 @@ Total memory consumption was 144279K = 141 MB
|
|||
---- action_pattern_array 7 x 100 = 700 objects, 28224 bytes
|
||||
---- open_source_licence 648 objects, 25920 bytes
|
||||
---- shared_variable_set_array 6 x 100 = 600 objects, 24192 bytes
|
||||
---- JSON_value 265 objects, 23320 bytes
|
||||
---- property 150 objects, 22800 bytes
|
||||
---- backdrops_data 688 objects, 22016 bytes
|
||||
---- JSON_value 249 objects, 21912 bytes
|
||||
---- nonlocal_variable 99 objects, 21384 bytes
|
||||
---- inter_node_list 656 objects, 20992 bytes
|
||||
---- action_name 91 objects, 20384 bytes
|
||||
|
@ -113,8 +113,8 @@ Total memory consumption was 144279K = 141 MB
|
|||
---- pcalc_prop_deferral 86 objects, 17888 bytes
|
||||
---- to_phrase_request 63 objects, 17136 bytes
|
||||
---- understanding_reference_array 2 x 100 = 200 objects, 16064 bytes
|
||||
---- match_avinue_array 1 x 1000 objects, 16032 bytes
|
||||
---- action_name_list_array 1 x 1000 objects, 16032 bytes
|
||||
---- match_avinue_array 1 x 1000 objects, 16032 bytes
|
||||
---- adjective 142 objects, 15904 bytes
|
||||
---- md_doc_state 3 objects, 15720 bytes
|
||||
---- booking_list 410 objects, 13120 bytes
|
||||
|
@ -125,22 +125,22 @@ Total memory consumption was 144279K = 141 MB
|
|||
---- heading_tree 33 objects, 10296 bytes
|
||||
---- stopwatch_timer 127 objects, 10160 bytes
|
||||
---- understanding_item_array 4 x 100 = 400 objects, 9728 bytes
|
||||
---- inbuild_work 150 objects, 9600 bytes
|
||||
---- inbuild_copy 65 objects, 9360 bytes
|
||||
---- inbuild_work 142 objects, 9088 bytes
|
||||
---- equation_node 68 objects, 7616 bytes
|
||||
---- shared_variable_array 1 x 100 objects, 7232 bytes
|
||||
---- determiner 22 objects, 7216 bytes
|
||||
---- hierarchy_attachment_point 80 objects, 7040 bytes
|
||||
---- inbuild_edition 97 objects, 6984 bytes
|
||||
---- verb 109 objects, 6976 bytes
|
||||
---- text_literal_holder 172 objects, 6880 bytes
|
||||
---- text_literal_holder 173 objects, 6920 bytes
|
||||
---- semver_range 60 objects, 6240 bytes
|
||||
---- inform_extension 32 objects, 6144 bytes
|
||||
---- section_md 63 objects, 6048 bytes
|
||||
---- compatibility_specification 111 objects, 5328 bytes
|
||||
---- build_script 164 objects, 5248 bytes
|
||||
---- inbuild_licence 65 objects, 5200 bytes
|
||||
---- activity 35 objects, 5040 bytes
|
||||
---- semver_range 48 objects, 4992 bytes
|
||||
---- value_property_data 88 objects, 4928 bytes
|
||||
---- explicit_action_array 1 x 100 objects, 4832 bytes
|
||||
---- parsing_pp_data 97 objects, 4656 bytes
|
||||
|
@ -154,19 +154,19 @@ Total memory consumption was 144279K = 141 MB
|
|||
---- submodule_request 86 objects, 3440 bytes
|
||||
---- parsed_use_option_setting 47 objects, 3384 bytes
|
||||
---- JSON_type 46 objects, 3312 bytes
|
||||
---- arithmetic_schema_array 1 x 50 objects, 3232 bytes
|
||||
---- kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
|
||||
---- arithmetic_schema_array 1 x 50 objects, 3232 bytes
|
||||
---- target_vm 21 objects, 3024 bytes
|
||||
---- JSON_single_requirement 63 objects, 3024 bytes
|
||||
---- local_parking_lot 64 objects, 2560 bytes
|
||||
---- part_of_inference_data 79 objects, 2528 bytes
|
||||
---- parentage_inference_data 79 objects, 2528 bytes
|
||||
---- kind_constructor_instance_rule_array 1 x 100 objects, 2432 bytes
|
||||
---- part_of_inference_data 79 objects, 2528 bytes
|
||||
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
|
||||
---- kind_constructor_instance_rule_array 1 x 100 objects, 2432 bytes
|
||||
---- equation_symbol 30 objects, 2400 bytes
|
||||
---- scene 1 object, 2352 bytes
|
||||
---- inbuild_requirement 51 objects, 2040 bytes
|
||||
---- build_step 28 objects, 2016 bytes
|
||||
---- inbuild_requirement 43 objects, 1720 bytes
|
||||
---- compiler_feature 30 objects, 1680 bytes
|
||||
---- pronoun_usage 42 objects, 1680 bytes
|
||||
---- table_column 16 objects, 1664 bytes
|
||||
|
@ -191,68 +191,68 @@ Total memory consumption was 144279K = 141 MB
|
|||
---- named_rulebook_outcome 15 objects, 960 bytes
|
||||
---- pipeline_stage 20 objects, 960 bytes
|
||||
---- control_structure_phrase 12 objects, 864 bytes
|
||||
---- cached_understanding 21 objects, 840 bytes
|
||||
---- kit_configuration 21 objects, 840 bytes
|
||||
---- cached_understanding 21 objects, 840 bytes
|
||||
---- phrase_option_array 1 x 100 objects, 824 bytes
|
||||
---- copy_error 7 objects, 784 bytes
|
||||
---- inform_kit 7 objects, 784 bytes
|
||||
---- copy_error 7 objects, 784 bytes
|
||||
---- internal_test 15 objects, 720 bytes
|
||||
---- relation_guard 5 objects, 640 bytes
|
||||
---- implication 13 objects, 624 bytes
|
||||
---- chapter_md 7 objects, 616 bytes
|
||||
---- code_generation 1 object, 592 bytes
|
||||
---- index_lemma 4 objects, 576 bytes
|
||||
---- module 7 objects, 560 bytes
|
||||
---- inter_warehouse_room 10 objects, 560 bytes
|
||||
---- generated_segment 14 objects, 560 bytes
|
||||
---- inter_annotation_form 14 objects, 560 bytes
|
||||
---- generated_segment 14 objects, 560 bytes
|
||||
---- inter_warehouse_room 10 objects, 560 bytes
|
||||
---- module 7 objects, 560 bytes
|
||||
---- rulebook_outcome 17 objects, 544 bytes
|
||||
---- markdown_variation 3 objects, 528 bytes
|
||||
---- small_word_set 11 objects, 528 bytes
|
||||
---- IFM_example 4 objects, 512 bytes
|
||||
---- equation 4 objects, 480 bytes
|
||||
---- indexing_category 6 objects, 480 bytes
|
||||
---- equation 4 objects, 480 bytes
|
||||
---- inbuild_genre 8 objects, 448 bytes
|
||||
---- bp_family 14 objects, 448 bytes
|
||||
---- inference_family 11 objects, 440 bytes
|
||||
---- source_file 5 objects, 440 bytes
|
||||
---- article_usage 8 objects, 384 bytes
|
||||
---- door_dir_notice 5 objects, 320 bytes
|
||||
---- grammatical_category 8 objects, 320 bytes
|
||||
---- module_request 8 objects, 320 bytes
|
||||
---- pronoun 8 objects, 320 bytes
|
||||
---- tree_inventory 1 object, 320 bytes
|
||||
---- cached_kind_declaration 8 objects, 320 bytes
|
||||
---- pronoun 8 objects, 320 bytes
|
||||
---- module_request 8 objects, 320 bytes
|
||||
---- door_dir_notice 5 objects, 320 bytes
|
||||
---- grammatical_category 8 objects, 320 bytes
|
||||
---- inter_pipeline 1 object, 312 bytes
|
||||
---- up_family 9 objects, 288 bytes
|
||||
---- contents_entry 7 objects, 280 bytes
|
||||
---- door_to_notice 5 objects, 280 bytes
|
||||
---- explicit_bp_data 5 objects, 280 bytes
|
||||
---- door_to_notice 5 objects, 280 bytes
|
||||
---- contents_entry 7 objects, 280 bytes
|
||||
---- compilation_unit 5 objects, 280 bytes
|
||||
---- kit_dependency 5 objects, 240 bytes
|
||||
---- verb_usage_tier 5 objects, 240 bytes
|
||||
---- inform_project 1 object, 232 bytes
|
||||
---- local_block_value 4 objects, 224 bytes
|
||||
---- adjective_meaning_family 7 objects, 224 bytes
|
||||
---- local_block_value 4 objects, 224 bytes
|
||||
---- cd_volume 3 objects, 216 bytes
|
||||
---- test_scenario 1 object, 216 bytes
|
||||
---- release_instructions 1 object, 208 bytes
|
||||
---- attachment_instruction 5 objects, 200 bytes
|
||||
---- code_generator 5 objects, 200 bytes
|
||||
---- build_skill 5 objects, 200 bytes
|
||||
---- plural_dictionary_entry 4 objects, 192 bytes
|
||||
---- element_activation 6 objects, 192 bytes
|
||||
---- code_generator 5 objects, 200 bytes
|
||||
---- attachment_instruction 5 objects, 200 bytes
|
||||
---- index_reference 4 objects, 192 bytes
|
||||
---- element_activation 6 objects, 192 bytes
|
||||
---- plural_dictionary_entry 4 objects, 192 bytes
|
||||
---- inbuild_nest 4 objects, 160 bytes
|
||||
---- inference_subject_family 5 objects, 160 bytes
|
||||
---- imperative_defn_family 4 objects, 160 bytes
|
||||
---- inter_architecture 4 objects, 160 bytes
|
||||
---- inference_subject_family 5 objects, 160 bytes
|
||||
---- cd_pageset 3 objects, 144 bytes
|
||||
---- inbuild_nest 3 objects, 120 bytes
|
||||
---- inform_language 1 object, 104 bytes
|
||||
---- md_links_dictionary 3 objects, 96 bytes
|
||||
---- article 2 objects, 80 bytes
|
||||
---- compile_task_data 1 object, 80 bytes
|
||||
---- group_together_function 2 objects, 80 bytes
|
||||
---- compile_task_data 1 object, 80 bytes
|
||||
---- article 2 objects, 80 bytes
|
||||
---- build_methodology 1 object, 56 bytes
|
||||
---- inter_warehouse 1 object, 56 bytes
|
||||
---- figures_data 1 object, 56 bytes
|
||||
|
@ -265,11 +265,11 @@ Total memory consumption was 144279K = 141 MB
|
|||
---- kind_template_definition 1 object, 40 bytes
|
||||
---- i6_memory_setting 1 object, 32 bytes
|
||||
|
||||
100.0% was used for memory not allocated for objects:
|
||||
99.9% was used for memory not allocated for objects:
|
||||
|
||||
63.1% text stream storage 93323620 bytes in 545783 claims
|
||||
4.0% dictionary storage 5929920 bytes in 7844 claims
|
||||
---- sorting 6424 bytes in 1489 claims
|
||||
63.2% text stream storage 93515392 bytes in 546355 claims
|
||||
4.0% dictionary storage 5932480 bytes in 7849 claims
|
||||
---- sorting 6648 bytes in 1601 claims
|
||||
4.8% source text 7200000 bytes in 3 claims
|
||||
7.3% source text details 10800000 bytes in 2 claims
|
||||
0.1% documentation fragments 262144 bytes in 1 claim
|
||||
|
@ -282,8 +282,8 @@ Total memory consumption was 144279K = 141 MB
|
|||
1.2% instance-of-kind counting 1790244 bytes in 1 claim
|
||||
---- compilation workspace for objects 22216 bytes in 25 claims
|
||||
---- lists for type-checking invocations 16000 bytes in 1 claim
|
||||
---- code generation workspace for objects 3552 bytes in 19 claims
|
||||
---- code generation workspace for objects 3560 bytes in 19 claims
|
||||
0.1% emitter array storage 290944 bytes in 2081 claims
|
||||
|
||||
-139.-2% was overhead - -205675816 bytes = -200855K = -196 MB
|
||||
-139.-3% was overhead - -206184448 bytes = -201352K = -196 MB
|
||||
|
||||
|
|
|
@ -5,10 +5,9 @@ ROOT_NT
|
|||
BEGINHERE_NT'version 2 of basic inform by graham nelson' {unit: 0}
|
||||
...
|
||||
INCLUSION_NT'include english language by graham nelson'
|
||||
HEADING_NT'version 2 of english language by graham nelson begins here' {heading 0} {under: H0'version 2 of english language by graham nelson begins here'} {includes: English Language by Graham Nelson v2 } {unit: 1}
|
||||
BEGINHERE_NT'version 2 of english language by graham nelson' {unit: 1}
|
||||
HEADING_NT'version 10.2.0 of english language by graham nelson begins h' {heading 0} {under: H0'version 10.2.0 of english language by graham nelson begins here'} {includes: English Language v10.2.0 } {unit: 1}
|
||||
BEGINHERE_NT'version 10.2.0 of english language by graham nelson' {unit: 1}
|
||||
...
|
||||
INCLUSION_NT'include english language by graham nelson'
|
||||
INCLUSION_NT'include standard rules by graham nelson'
|
||||
HEADING_NT'version 7 of the standard rules by graham nelson begins here' {heading 0} {under: H0'version 7 of the standard rules by graham nelson begins here'} {includes: Standard Rules by Graham Nelson v7 } {unit: 2}
|
||||
BEGINHERE_NT'version 7 of the standard rules by graham nelson' {unit: 2}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
100.0% in inform7 run
|
||||
67.4% in compilation to Inter
|
||||
45.6% in //Sequence::undertake_queued_tasks//
|
||||
67.0% in compilation to Inter
|
||||
45.3% in //Sequence::undertake_queued_tasks//
|
||||
4.8% in //MajorNodes::pre_pass//
|
||||
3.3% in //MajorNodes::pass_1//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
|
@ -15,7 +15,7 @@
|
|||
0.3% in //World::stage_V//
|
||||
5.3% not specifically accounted for
|
||||
26.9% in running Inter pipeline
|
||||
8.9% in step 14/15: generate inform6 -> auto.inf
|
||||
8.6% in step 14/15: generate inform6 -> auto.inf
|
||||
7.1% in step 5/15: load-binary-kits
|
||||
5.6% in step 6/15: make-synoptic-module
|
||||
1.8% in step 9/15: make-identifiers-unique
|
||||
|
@ -23,6 +23,6 @@
|
|||
0.3% in step 4/15: compile-splats
|
||||
0.3% in step 7/15: shorten-wiring
|
||||
0.3% in step 8/15: detect-indirect-calls
|
||||
1.9% not specifically accounted for
|
||||
2.2% not specifically accounted for
|
||||
5.2% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
0.8% not specifically accounted for
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
`English Language` is an extension built in to Inform which provides definitions
|
||||
needed for adaptive text written in English, and also support for the standard
|
||||
English version of the internal Preform grammar used inside the compiler.
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "EnglishLanguageKit",
|
||||
"version": "10.2.0-beta+6X62"
|
||||
"version": "10.2.0-beta+6X63"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
|
@ -1,4 +1,4 @@
|
|||
Version 2 of English Language by Graham Nelson begins here.
|
||||
Version 10.2.0 of English Language by Graham Nelson begins here.
|
||||
|
||||
"To make English the language of play."
|
||||
|
||||
|
@ -520,3 +520,4 @@ To say Possessive:
|
|||
say "[The item][apostrophe]s".
|
||||
|
||||
English Language ends here.
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"is": {
|
||||
"type": "extension",
|
||||
"title": "English Language",
|
||||
"author": "Graham Nelson",
|
||||
"version": "10.2.0"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
"type": "kit",
|
||||
"title": "EnglishLanguageKit"
|
||||
}
|
||||
} ],
|
||||
"rights": {
|
||||
"licence": "Artistic-2.0",
|
||||
"rights-owner": "Graham Nelson",
|
||||
"date": 2024,
|
||||
"rights-history": "This extension is basic to Inform and requires no acknowledgement."
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "Architecture16Kit",
|
||||
"version": "10.2.0-beta+6X62"
|
||||
"version": "10.2.0-beta+6X63"
|
||||
},
|
||||
"compatibility": "16-bit",
|
||||
"kit-details": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "Architecture32Kit",
|
||||
"version": "10.2.0-beta+6X62"
|
||||
"version": "10.2.0-beta+6X63"
|
||||
},
|
||||
"compatibility": "32-bit",
|
||||
"kit-details": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformKit",
|
||||
"version": "10.2.0-beta+6X62"
|
||||
"version": "10.2.0-beta+6X63"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "CommandParserKit",
|
||||
"version": "10.2.0-beta+6X62"
|
||||
"version": "10.2.0-beta+6X63"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "DialogueKit",
|
||||
"version": "10.2.0-beta+6V51"
|
||||
"version": "10.2.0-beta+6X63"
|
||||
},
|
||||
"activates": [ "dialogue" ],
|
||||
"kit-details": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "WorldModelKit",
|
||||
"version": "10.2.0-beta+6X62"
|
||||
"version": "10.2.0-beta+6X63"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform"
|
||||
|
@ -36,12 +35,9 @@ auxiliary "inform7/Internal/Miscellany/IntroductionToIF.pdf" "Introduction to IF
|
|||
auxiliary "inform7/Internal/Miscellany/Postcard.pdf" "IF Postcard" "--"
|
||||
placeholder [OTHERCREDITS] = "The postcard was written by Andrew Plotkin and designed by Lea Albaugh."
|
||||
|
||||
! Website instructions
|
||||
! Interpreter instructions
|
||||
|
||||
placeholder [ENCODEDSTORYFILE] = "story.gblorb.js"
|
||||
template path "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.materials/Templates"
|
||||
template path "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.materials/Templates"
|
||||
template path "inform7/Tests/Templates"
|
||||
template path "inform7/Internal/Templates"
|
||||
placeholder [INTERPRETERSCRIPTS] = " "
|
||||
interpreter "Quixe" "g"
|
||||
|
@ -49,10 +45,6 @@ base64 "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.materials/Rele
|
|||
|
||||
! Website instructions
|
||||
|
||||
template path "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.materials/Templates"
|
||||
template path "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.materials/Templates"
|
||||
template path "inform7/Tests/Templates"
|
||||
template path "inform7/Internal/Templates"
|
||||
css
|
||||
website "Standard"
|
||||
status instruction || <a href="source:story.ni#line3"><img border=0 src=inform:/doc_images/Reveal.png></a>||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
status "inform7/Internal/HTML/CblorbModel.html" "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform/Build/StatusCblorb.html"
|
||||
|
||||
|
||||
! Identification
|
||||
|
||||
project folder "/Users/gnelson/Natural Inform/intest/Workspace/T0/Example.inform"
|
||||
|
|
|
@ -251,11 +251,21 @@ void LicenceDeclaration::check_licences(void) {
|
|||
int LicenceDeclaration::anything_to_declare(void) {
|
||||
inform_project *proj = Task::project();
|
||||
inbuild_licence *L = proj->as_copy->licence;
|
||||
if ((L->read_from_JSON) || (L->discussed_in_source)) return TRUE;
|
||||
if (LicenceDeclaration::to_be_declared(L)) return TRUE;
|
||||
inform_extension *E;
|
||||
LOOP_OVER_LINKED_LIST(E, inform_extension, proj->extensions_included) {
|
||||
L = E->as_copy->licence;
|
||||
if ((L->read_from_JSON) || (L->discussed_in_source)) return TRUE;
|
||||
if (LicenceDeclaration::to_be_declared(L)) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int LicenceDeclaration::to_be_declared(inbuild_licence *L) {
|
||||
if ((L->read_from_JSON) || (L->discussed_in_source)) {
|
||||
if (Str::eq(L->rights_history,
|
||||
I"This extension is basic to Inform and requires no acknowledgement."))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -71,12 +71,13 @@ the Blorb-file's filename won't be too long for the file system.
|
|||
WRITE("\n! Other material to release\n\n");
|
||||
@<Give instructions about source text, solution and library card@>;
|
||||
@<Give instructions about auxiliary files@>;
|
||||
int templates_declared = FALSE;
|
||||
if (rel->release_interpreter) @<Give instructions to release with an interpreter for Web play@>;
|
||||
if (rel->release_website) @<Give instructions to construct a website around the release@>;
|
||||
@<Give hints to Inblorb for its HTML status page@>;
|
||||
|
||||
@<Tell Inblorb where to write its report to@> =
|
||||
WRITE("status \"%f\" \"%f\"\n\n",
|
||||
WRITE("status \"%f\" \"%f\"\n",
|
||||
InstalledFiles::filename(CBLORB_REPORT_MODEL_IRES),
|
||||
Task::cblorb_report_file());
|
||||
|
||||
|
@ -208,7 +209,7 @@ own credits.
|
|||
file online.
|
||||
|
||||
@<Give instructions to release with an interpreter for Web play@> =
|
||||
WRITE("\n! Website instructions\n\n");
|
||||
WRITE("\n! Interpreter instructions\n\n");
|
||||
WRITE("placeholder [ENCODEDSTORYFILE] = \"");
|
||||
STREAM_COPY(OUT, TEMP);
|
||||
WRITE(".js\"\n");
|
||||
|
@ -260,19 +261,41 @@ a project, then the |Templates| directory in the materials for extensions
|
|||
included by the project, and then the external area, and finally the internal.
|
||||
|
||||
@<Tell Inblorb where to find the website templates@> =
|
||||
inbuild_nest *N;
|
||||
linked_list *L = Projects::nest_list(Task::project());
|
||||
LOOP_OVER_LINKED_LIST(N, inbuild_nest, L) {
|
||||
WRITE("template path \"%p\"\n", TemplateManager::path_within_nest(N));
|
||||
if (Nests::get_tag(N) == MATERIALS_NEST_TAG) {
|
||||
inform_extension *E;
|
||||
LOOP_OVER_LINKED_LIST(E, inform_extension, Task::project()->extensions_included) {
|
||||
pathname *P = Extensions::materials_path(E);
|
||||
if (P) {
|
||||
WRITE("template path \"%p\"\n", TemplateManager::path_within_nest(Nests::new(P)));
|
||||
if (templates_declared == FALSE) {
|
||||
inbuild_nest *N;
|
||||
linked_list *L = Projects::nest_list(Task::project());
|
||||
linked_list *declared = NEW_LINKED_LIST(text_stream);
|
||||
LOOP_OVER_LINKED_LIST(N, inbuild_nest, L) {
|
||||
inbuild_nest *M = N;
|
||||
@<Declare one template path@>;
|
||||
if (Nests::get_tag(N) == MATERIALS_NEST_TAG) {
|
||||
inform_extension *E;
|
||||
LOOP_OVER_LINKED_LIST(E, inform_extension, Task::project()->extensions_included) {
|
||||
pathname *P = Extensions::materials_path(E);
|
||||
if (P) {
|
||||
M = Nests::new(P);
|
||||
@<Declare one template path@>;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
templates_declared = TRUE;
|
||||
}
|
||||
|
||||
@<Declare one template path@> =
|
||||
pathname *TP = TemplateManager::path_within_nest(M);
|
||||
if (Directories::exists(TP)) {
|
||||
text_stream *declaration = Str::new();
|
||||
WRITE_TO(declaration, "template path \"%p\"\n", TP);
|
||||
int already = FALSE;
|
||||
text_stream *done;
|
||||
LOOP_OVER_LINKED_LIST(done, text_stream, declared)
|
||||
if (Str::eq(done, declaration))
|
||||
already = TRUE;
|
||||
if (already == FALSE) {
|
||||
WRITE("%S", declaration);
|
||||
ADD_TO_LINKED_LIST(declaration, text_stream, declared);
|
||||
}
|
||||
}
|
||||
|
||||
@ Inblorb reports its progress, or lack of it, with an HTML page, just as we do.
|
||||
|
|
|
@ -42,5 +42,5 @@ Internal/Inter/Architecture32Kit/*.interb
|
|||
Internal/Inter/BasicInformKit/*.interb
|
||||
Internal/Inter/CommandParserKit/*.interb
|
||||
Internal/Inter/DialogueKit/*.interb
|
||||
Internal/Inter/EnglishLanguageKit/*.interb
|
||||
Internal/Extensions/Graham Nelson/English*/Materials/Inter/EnglishLanguageKit/*.interb
|
||||
Internal/Inter/WorldModelKit/*.interb
|
||||
|
|
|
@ -10,6 +10,8 @@ this plan out.
|
|||
@e PROBLEMS_CLSW
|
||||
@e KIT_VERSIONS_CLSW
|
||||
@e SYNC_KIT_VERSIONS_CLSW
|
||||
@e EXTENSION_VERSIONS_CLSW
|
||||
@e SYNC_EXTENSION_VERSIONS_CLSW
|
||||
|
||||
=
|
||||
pathname *path_to_inpolicy = NULL; /* where we are installed */
|
||||
|
@ -29,6 +31,10 @@ int main(int argc, char **argv) {
|
|||
U"show version numbers of the built-in kits");
|
||||
CommandLine::declare_switch(SYNC_KIT_VERSIONS_CLSW, U"sync-kit-versions", 1,
|
||||
U"fix version numbers of the built-in kits to match core inform7 version");
|
||||
CommandLine::declare_switch(EXTENSION_VERSIONS_CLSW, U"extension-versions", 1,
|
||||
U"show version numbers of the built-in extensions");
|
||||
CommandLine::declare_switch(SYNC_EXTENSION_VERSIONS_CLSW, U"sync-extension-versions", 1,
|
||||
U"fix version numbers of the built-in extensions to match core inform7 version");
|
||||
|
||||
CommandLine::declare_boolean_switch(SILENCE_CLSW, U"silence", 1,
|
||||
U"print nothing unless there's something wrong", FALSE);
|
||||
|
@ -66,6 +72,8 @@ void Main::respond(int id, int val, text_stream *arg, void *state) {
|
|||
case PROBLEMS_CLSW: RUNTEST(Coverage::check); break;
|
||||
case KIT_VERSIONS_CLSW: KitVersioning::show_versions(); break;
|
||||
case SYNC_KIT_VERSIONS_CLSW: KitVersioning::sync_versions(); break;
|
||||
case EXTENSION_VERSIONS_CLSW: ExtensionVersioning::show_versions(); break;
|
||||
case SYNC_EXTENSION_VERSIONS_CLSW: ExtensionVersioning::sync_versions(); break;
|
||||
case SILENCE_CLSW: silence_mode = val; break;
|
||||
case VERBOSE_CLSW: verbose_mode = val; break;
|
||||
}
|
||||
|
|
202
inpolicy/Chapter 2/Extension Versioning.w
Normal file
202
inpolicy/Chapter 2/Extension Versioning.w
Normal file
|
@ -0,0 +1,202 @@
|
|||
[ExtensionVersioning::] Extension Versioning.
|
||||
|
||||
To ensure that the built-in extensions share version numbers with the core compiler.
|
||||
|
||||
@ This implements |-extension-versions|:
|
||||
|
||||
=
|
||||
void ExtensionVersioning::show_versions(void) {
|
||||
semantic_version_number core_V = ExtensionVersioning::simplified_core_version();
|
||||
PRINT("Simplified core version is %v\n", &core_V);
|
||||
ExtensionVersioning::iterate(VersionNumbers::null());
|
||||
}
|
||||
|
||||
@ And |-sync-extension-versions|:
|
||||
|
||||
=
|
||||
void ExtensionVersioning::sync_versions(void) {
|
||||
semantic_version_number core_V = ExtensionVersioning::simplified_core_version();
|
||||
PRINT("Simplified core version is %v\n", &core_V);
|
||||
ExtensionVersioning::iterate(core_V);
|
||||
}
|
||||
|
||||
semantic_version_number ExtensionVersioning::simplified_core_version(void) {
|
||||
web_md *inform7_web =
|
||||
WebMetadata::get_without_modules(Pathnames::from_text(I"inform7"), NULL);
|
||||
semantic_version_number V = inform7_web->version_number;
|
||||
V.prerelease_segments = NULL;
|
||||
V.build_metadata = NULL;
|
||||
return V;
|
||||
}
|
||||
|
||||
@ Both use the following to work through the built-in kits:
|
||||
|
||||
=
|
||||
void ExtensionVersioning::iterate(semantic_version_number set_to) {
|
||||
pathname *P = Pathnames::from_text(I"inform7/Internal/Extensions/Graham Nelson");
|
||||
linked_list *L = Directories::listing(P);
|
||||
text_stream *entry;
|
||||
LOOP_OVER_LINKED_LIST(entry, text_stream, L) {
|
||||
if (Platform::is_folder_separator(Str::get_last_char(entry))) {
|
||||
Str::delete_last_character(entry);
|
||||
pathname *X = Pathnames::down(P, entry);
|
||||
match_results mr = Regexp::create_mr();
|
||||
if (Regexp::match(&mr, entry, U"(%c+)-v(%d%c*).i7xd")) {
|
||||
text_stream *raw_name = mr.exp[0];
|
||||
semantic_version_number claimed = VersionNumbers::from_text(mr.exp[1]);
|
||||
ExtensionVersioning::show_version(X, raw_name, claimed, set_to);
|
||||
}
|
||||
Regexp::dispose_of(&mr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ExtensionVersioning::show_version(pathname *P, text_stream *name,
|
||||
semantic_version_number claimed, semantic_version_number set_to) {
|
||||
semantic_version_number V = ExtensionVersioning::read_version(P, name, claimed, set_to);
|
||||
PRINT("Extension %S has version %v\n", name, &V);
|
||||
}
|
||||
|
||||
@ The actual work, then, is done by this function, which returns the version
|
||||
number of the kit stored at the path |kit|; if |set_to| is other than null,
|
||||
the kit's version is changed to |set_to|, and this value returned. In both
|
||||
cases, the kit's JSON metadata file is read in; in the second case, it is
|
||||
then written back out, modified to include the new version number. (Note
|
||||
that no file write occurs unless an actual change is needed: if |set_to|
|
||||
is the same as the version it already has, there's no need to rewrite.)
|
||||
|
||||
=
|
||||
semantic_version_number ExtensionVersioning::read_version(pathname *X, text_stream *name,
|
||||
semantic_version_number claimed, semantic_version_number set_to) {
|
||||
filename *F = Filenames::in(X, I"extension_metadata.json");
|
||||
TEMPORARY_TEXT(contents)
|
||||
TextFiles::read(F, FALSE, "unable to read file of JSON metadata", TRUE,
|
||||
&ExtensionVersioning::read_metadata_file_helper, NULL, contents);
|
||||
text_file_position tfp = TextFiles::at(F, 1);
|
||||
JSON_value *value = JSON::decode(contents, &tfp);
|
||||
if ((value) && (value->JSON_type == ERROR_JSONTYPE)) {
|
||||
Errors::at_position("Syntax error in metadata file for extension", F, 1);
|
||||
return VersionNumbers::null();
|
||||
}
|
||||
DISCARD_TEXT(contents)
|
||||
|
||||
JSON_value *is = JSON::look_up_object(value, I"is");
|
||||
if (is == NULL) {
|
||||
Errors::at_position("Semantic error in metadata file for extension", F, 1);
|
||||
return VersionNumbers::null();
|
||||
}
|
||||
JSON_value *version = JSON::look_up_object(is, I"version");
|
||||
semantic_version_number V = VersionNumbers::null();
|
||||
if (version) {
|
||||
V = VersionNumbers::from_text(version->if_string);
|
||||
if (VersionNumbers::is_null(V)) {
|
||||
Errors::at_position("Malformed version number in metadata file for extension", F, 1);
|
||||
return VersionNumbers::null();
|
||||
}
|
||||
}
|
||||
if (VersionNumbers::is_null(set_to) == FALSE) {
|
||||
@<If necessary impose the new version in metadata file@>;
|
||||
@<If necessary impose the new version in directory name@>;
|
||||
@<If necessary impose the new version in extension header@>;
|
||||
}
|
||||
return V;
|
||||
}
|
||||
|
||||
@ The following test used to be just |VersionNumbers::ne(set_to, V)|, but this,
|
||||
because it properly followed the semver standard, regarded them as equal if they
|
||||
differed only in the build code -- so |10.1.0-beta+6V20| would not be updated to
|
||||
|10.1.0-beta+6V44|, for example. We now force a sync if there is any textual
|
||||
difference at all.
|
||||
|
||||
@<If necessary impose the new version in metadata file@> =
|
||||
TEMPORARY_TEXT(a)
|
||||
TEMPORARY_TEXT(b)
|
||||
WRITE_TO(a, "%v", &set_to);
|
||||
WRITE_TO(b, "%v", &V);
|
||||
if (Str::ne(a, b))
|
||||
@<Change the version to set_to@>;
|
||||
DISCARD_TEXT(a)
|
||||
DISCARD_TEXT(b)
|
||||
|
||||
@ We change the JSON object for the kit's metadata (at object.is.version), and
|
||||
then encode the object out as a new version of the file:
|
||||
|
||||
@<Change the version to set_to@> =
|
||||
if (version == NULL) {
|
||||
version = JSON::new_string(I"");
|
||||
JSON::add_to_object(is, I"version", version);
|
||||
}
|
||||
PRINT("Rewriting %f to impose version number %v (was %v)\n", F, &set_to, &V);
|
||||
Str::clear(version->if_string);
|
||||
WRITE_TO(version->if_string, "%v", &set_to);
|
||||
text_stream JSON_struct; text_stream *OUT = &JSON_struct;
|
||||
if (STREAM_OPEN_TO_FILE(OUT, F, UTF8_ENC) == FALSE)
|
||||
Errors::fatal_with_file("unable to open metadata file for output: %f", F);
|
||||
JSON::encode(OUT, value);
|
||||
STREAM_CLOSE(OUT);
|
||||
V = set_to;
|
||||
|
||||
@
|
||||
|
||||
@<If necessary impose the new version in directory name@> =
|
||||
TEMPORARY_TEXT(correct_name)
|
||||
TEMPORARY_TEXT(flattened)
|
||||
WRITE_TO(flattened, "%v", &set_to);
|
||||
LOOP_THROUGH_TEXT(pos, flattened)
|
||||
if (Str::get(pos) == '.')
|
||||
Str::put(pos, '_');
|
||||
WRITE_TO(correct_name, "%S-v%S.i7xd", name, flattened);
|
||||
DISCARD_TEXT(flattened)
|
||||
if (Str::ne(Pathnames::directory_name(X), correct_name)) {
|
||||
pathname *XC = Pathnames::down(Pathnames::up(X), correct_name);
|
||||
Pathnames::move_directory(X, XC);
|
||||
X = XC;
|
||||
PRINT("Renaming directory to %p\n", X);
|
||||
}
|
||||
DISCARD_TEXT(correct_name)
|
||||
|
||||
@
|
||||
|
||||
@<If necessary impose the new version in extension header@> =
|
||||
TEMPORARY_TEXT(leaf)
|
||||
WRITE_TO(leaf, "%S.i7x", name);
|
||||
filename *F = Filenames::in(Pathnames::down(X, I"Source"), leaf);
|
||||
DISCARD_TEXT(leaf)
|
||||
TEMPORARY_TEXT(source)
|
||||
TextFiles::read(F, FALSE, "unable to read file of extension source", TRUE,
|
||||
&ExtensionVersioning::read_metadata_file_helper, NULL, source);
|
||||
|
||||
match_results mr = Regexp::create_mr();
|
||||
if (Regexp::match(&mr, source, U"(Version )(%d%C*?)( of %c*)")) {
|
||||
semantic_version_number sourced = VersionNumbers::from_text(mr.exp[1]);
|
||||
TEMPORARY_TEXT(a)
|
||||
TEMPORARY_TEXT(b)
|
||||
WRITE_TO(a, "%v", &set_to);
|
||||
WRITE_TO(b, "%v", &sourced);
|
||||
if (Str::ne(a, b))
|
||||
@<Change the version in the extension to set_to@>;
|
||||
DISCARD_TEXT(a)
|
||||
DISCARD_TEXT(b)
|
||||
}
|
||||
Regexp::dispose_of(&mr);
|
||||
DISCARD_TEXT(source)
|
||||
|
||||
@<Change the version in the extension to set_to@> =
|
||||
PRINT("Rewriting opening line of %f\n", F);
|
||||
text_stream S_struct; text_stream *OUT = &S_struct;
|
||||
if (STREAM_OPEN_TO_FILE(OUT, F, UTF8_ENC) == FALSE)
|
||||
Errors::fatal_with_file("unable to open extension source for output: %f", F);
|
||||
WRITE("%S%v", mr.exp[0], &set_to);
|
||||
int pos = Str::len(mr.exp[0]) + Str::len(mr.exp[1]);
|
||||
for (int i=pos; i<Str::len(source); i++)
|
||||
PUT(Str::get_at(source, i));
|
||||
STREAM_CLOSE(OUT);
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
void ExtensionVersioning::read_metadata_file_helper(text_stream *text, text_file_position *tfp,
|
||||
void *v_state) {
|
||||
text_stream *contents = (text_stream *) v_state;
|
||||
WRITE_TO(contents, "%S\n", text);
|
||||
}
|
|
@ -28,16 +28,39 @@ void KitVersioning::sync_versions(void) {
|
|||
|
||||
=
|
||||
void KitVersioning::iterate(semantic_version_number set_to) {
|
||||
KitVersioning::show_version(I"WorldModelKit", set_to);
|
||||
KitVersioning::show_version(I"EnglishLanguageKit", set_to);
|
||||
KitVersioning::show_version(I"CommandParserKit", set_to);
|
||||
KitVersioning::show_version(I"BasicInformKit", set_to);
|
||||
KitVersioning::show_version(I"Architecture16Kit", set_to);
|
||||
KitVersioning::show_version(I"Architecture32Kit", set_to);
|
||||
pathname *P = Pathnames::from_text(I"inform7/Internal/Inter");
|
||||
KitVersioning::show_version(P, I"WorldModelKit", set_to);
|
||||
KitVersioning::show_version(P, I"CommandParserKit", set_to);
|
||||
KitVersioning::show_version(P, I"BasicInformKit", set_to);
|
||||
KitVersioning::show_version(P, I"DialogueKit", set_to);
|
||||
KitVersioning::show_version(P, I"Architecture16Kit", set_to);
|
||||
KitVersioning::show_version(P, I"Architecture32Kit", set_to);
|
||||
pathname *X = Pathnames::from_text(I"inform7/Internal/Extensions/Graham Nelson");
|
||||
KitVersioning::iterate_through(X, set_to);
|
||||
}
|
||||
|
||||
void KitVersioning::show_version(text_stream *name, semantic_version_number set_to) {
|
||||
pathname *P = Pathnames::from_text(I"inform7/Internal/Inter");
|
||||
void KitVersioning::iterate_through(pathname *P, semantic_version_number set_to) {
|
||||
linked_list *L = Directories::listing(P);
|
||||
text_stream *entry;
|
||||
LOOP_OVER_LINKED_LIST(entry, text_stream, L) {
|
||||
if (Platform::is_folder_separator(Str::get_last_char(entry))) {
|
||||
Str::delete_last_character(entry);
|
||||
pathname *X = Pathnames::down(P, entry);
|
||||
X = Pathnames::down(X, I"Materials");
|
||||
X = Pathnames::down(X, I"Inter");
|
||||
linked_list *L2 = Directories::listing(X);
|
||||
text_stream *kit;
|
||||
LOOP_OVER_LINKED_LIST(kit, text_stream, L2) {
|
||||
if (Platform::is_folder_separator(Str::get_last_char(kit))) {
|
||||
Str::delete_last_character(kit);
|
||||
KitVersioning::show_version(X, kit, set_to);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void KitVersioning::show_version(pathname *P, text_stream *name, semantic_version_number set_to) {
|
||||
P = Pathnames::down(P, name);
|
||||
semantic_version_number V = KitVersioning::read_version(P, set_to);
|
||||
PRINT("Kit %S has version %v\n", name, &V);
|
||||
|
|
|
@ -19,3 +19,4 @@ Chapter 1: Setting Up
|
|||
Chapter 2: Policies
|
||||
Problem Coverage
|
||||
Kit Versioning
|
||||
Extension Versioning
|
||||
|
|
|
@ -2,16 +2,18 @@ A lint-like tool to check up on various policies used in Inform source code.
|
|||
|
||||
usage: inpolicy [options]
|
||||
|
||||
-check-problems check problem test case coverage
|
||||
-kit-versions show version numbers of the built-in kits
|
||||
-silence print nothing unless there's something wrong (default is -no-silence)
|
||||
-sync-kit-versions fix version numbers of the built-in kits to match core inform7 version
|
||||
-verbose explain what inpolicy is doing (default is -no-verbose)
|
||||
-check-problems check problem test case coverage
|
||||
-extension-versions show version numbers of the built-in extensions
|
||||
-kit-versions show version numbers of the built-in kits
|
||||
-silence print nothing unless there's something wrong (default is -no-silence)
|
||||
-sync-extension-versions fix version numbers of the built-in extensions to match core inform7 version
|
||||
-sync-kit-versions fix version numbers of the built-in kits to match core inform7 version
|
||||
-verbose explain what inpolicy is doing (default is -no-verbose)
|
||||
|
||||
-at X specify that this tool is installed at X
|
||||
-crash intentionally crash on internal errors, for backtracing (default is -no-crash)
|
||||
-fixtime pretend the time is 11 a.m. on 28 March 2016 for testing (default is -no-fixtime)
|
||||
-help print this help information
|
||||
-locale X set locales as 'L=E', L being shell or console, E platform, utf-8 or iso-latin1
|
||||
-log X write the debugging log to include diagnostics on X
|
||||
-version print out version number
|
||||
-at X specify that this tool is installed at X
|
||||
-crash intentionally crash on internal errors, for backtracing (default is -no-crash)
|
||||
-fixtime pretend the time is 11 a.m. on 28 March 2016 for testing (default is -no-fixtime)
|
||||
-help print this help information
|
||||
-locale X set locales as 'L=E', L being shell or console, E platform, utf-8 or iso-latin1
|
||||
-log X write the debugging log to include diagnostics on X
|
||||
-version print out version number
|
||||
|
|
|
@ -152,7 +152,7 @@ INFORM6WEB = inform6
|
|||
{component type: web symbol: ARCHITECTURE32KIT webname: Architecture32Kit path: inform7/Internal/Inter/Architecture32Kit set: kits}
|
||||
{component type: web symbol: WORLDMODELKIT webname: WorldModelKit path: inform7/Internal/Inter/WorldModelKit set: kits}
|
||||
{component type: web symbol: COMMANDPARSERKIT webname: CommandParserKit path: inform7/Internal/Inter/CommandParserKit set: kits}
|
||||
{component type: web symbol: ENGLISHLANGUAGEKIT webname: EnglishLanguageKit path: inform7/Internal/Inter/EnglishLanguageKit set: kits}
|
||||
{component type: web symbol: ENGLISHLANGUAGEKIT webname: EnglishLanguageKit path: inform7/Internal/Extensions/Graham Nelson/English Language-v10_2_0.i7xd/Materials/Inter/EnglishLanguageKit set: kits}
|
||||
{component type: web symbol: DIALOGUEKIT webname: DialogueKit path: inform7/Internal/Inter/DialogueKit set: kits}
|
||||
|
||||
{component type: web symbol: STANDARDRULES webname: standard_rules path: inform7/extensions/standard_rules set: extensions}
|
||||
|
@ -371,6 +371,7 @@ check:
|
|||
commit:
|
||||
$(INWEBX) -advance-build-file build.txt
|
||||
$(INPOLICYX) -sync-kit-versions
|
||||
$(INPOLICYX) -sync-extension-versions
|
||||
{update-readme}
|
||||
git commit -a
|
||||
|
||||
|
@ -677,8 +678,6 @@ forcetransferpreform:
|
|||
# -----------------------------------------------------------------------------
|
||||
# Copying the indexing structure and localisation files into the app
|
||||
|
||||
{set name: LOCALISEDINDEXES value: English}
|
||||
|
||||
.PHONY: transferindext
|
||||
transferindext: forcetransferindext
|
||||
|
||||
|
@ -687,10 +686,8 @@ forcetransferindext:
|
|||
mkdir -p "$(INTERNAL)/Miscellany"
|
||||
cp -f "$(INFORM7WEB)/Internal/Miscellany/Standard.indext" "$(INTERNAL)/Miscellany/Standard.indext"
|
||||
cp -f "$(INFORM7WEB)/Internal/Miscellany/Basic.indext" "$(INTERNAL)/Miscellany/Basic.indext"
|
||||
{repeat with: LANGUAGE in: {LOCALISEDINDEXES}}
|
||||
mkdir -p "$(INTERNAL)/Languages/{LANGUAGE}"
|
||||
cp -f "$(INFORM7WEB)/Internal/Languages/{LANGUAGE}/Index.txt" "$(INTERNAL)/Languages/{LANGUAGE}/Index.txt"
|
||||
{end-repeat}
|
||||
mkdir -p "$(INTERNAL)/Languages/English"
|
||||
cp -f "$(INFORM7WEB)/Internal/Languages/English/Index.txt" "$(INTERNAL)/Languages/English/Index.txt"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Copying kits (and Inter pipelines) into the app
|
||||
|
|
|
@ -146,18 +146,10 @@ The following webs are the source for the two most important extensions shipped
|
|||
{set name: PATH value: inform7/Internal/Extensions/{AUTHOR}/{TITLE}.i7x}
|
||||
* [{TITLE} by {AUTHOR}](inform7/extensions/{WEB}) - __v{bibliographic datum: Version Number of: {PATH}}__ - [{WEBICON} Web]({GITHUBPAGESLINK}/{WEB}/index.html)
|
||||
{end-define}
|
||||
{define: extension author: AUTHOR title: TITLE}
|
||||
{set name: PATH value: inform7/Internal/Extensions/{AUTHOR}/{TITLE}.i7x}
|
||||
* [{TITLE} by {AUTHOR}](<{PATH}>) - __v{bibliographic datum: Version Number of: {PATH}}__
|
||||
{end-define}
|
||||
|
||||
{extension-web web: basic_inform author: Graham Nelson title: Basic Inform}
|
||||
{extension-web web: standard_rules author: Graham Nelson title: Standard Rules}
|
||||
|
||||
Other extensions shipped with Inform are not presented as webs, but as single files:
|
||||
|
||||
{extension author: Graham Nelson title: English Language}
|
||||
|
||||
### Website templates and interpreters shipped with Inform
|
||||
|
||||
These are templates used by Inform to release story files within a website:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Size of lexicon: 3223 excerpt meanings
|
||||
Stored among 860 words out of total vocabulary of 10707
|
||||
Stored among 860 words out of total vocabulary of 10708
|
||||
724 words have a start list: longest belongs to report (with 296 meanings)
|
||||
21 words have an end list: longest belongs to digits (with 7 meanings)
|
||||
29 words have a middle list: longest belongs to matches (with 6 meanings)
|
||||
|
|
Loading…
Reference in a new issue