1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-06-16 23:30:44 +03:00

Fix for bug causing kit integration into the apps to fail

This commit is contained in:
Graham Nelson 2022-06-06 22:06:31 +01:00
parent f6077903dc
commit 40d642fa6b
18 changed files with 255 additions and 183 deletions

View file

@ -1,6 +1,6 @@
# Inform 7
v10.1.0-beta+6V21 'Krypton' (4 June 2022)
v10.1.0-beta+6V22 'Krypton' (6 June 2022)
## About Inform 7

View file

@ -1,3 +1,3 @@
Prerelease: beta
Build Date: 4 June 2022
Build Number: 6V21
Build Date: 6 June 2022
Build Number: 6V22

View file

@ -394,6 +394,7 @@ other options to the selection defined here.
<span class="definition-keyword">enum</span> <span class="constant-syntax">MATCHING_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COPY_TO_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SYNC_TO_CLSW</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERSIONS_IN_FILENAMES_CLSW</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Read the command line</span><span class="named-paragraph-number">2.8</span></span><span class="comment-syntax"> =</span>
</p>
@ -406,6 +407,8 @@ other options to the selection defined here.
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"copy target(s) to nest X"</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_TO_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"sync-to"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"forcibly copy target(s) to nest X, even if prior version already there"</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">VERSIONS_IN_FILENAMES_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"versions-in-filenames"</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">L</span><span class="string-syntax">"append _v number to destination filenames on -copy-to or -sync-to"</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</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">BUILD_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"build"</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">L</span><span class="string-syntax">"incrementally build target(s)"</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">REBUILD_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"rebuild"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
@ -480,6 +483,8 @@ other options to the selection defined here.
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SYNC_TO_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_task</span><span class="plain-syntax"> = </span><span class="constant-syntax">SYNC_TO_TTASK</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">destination_nest</span><span class="plain-syntax"> = </span><a href="../supervisor-module/2-nst.html#SP1" class="function-link"><span class="function-syntax">Nests::new</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">arg</span><span class="plain-syntax">));</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">VERSIONS_IN_FILENAMES_CLSW:</span>
<span class="plain-syntax"> </span><a href="../supervisor-module/2-edt.html#SP2" class="function-link"><span class="function-syntax">Editions::set_canonical_leaves_have_versions</span></a><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="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP7" class="function-link"><span class="function-syntax">Supervisor::option</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">state</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

View file

@ -61,57 +61,58 @@ and those not documented in this manual are covered in that one.
<span class="plain-syntax">usage: inbuild [-TASK] TARGET1 TARGET2 ...</span>
<span class="plain-syntax">-archive sync copies of all extensions, kits and so on needed for -project into Materials</span>
<span class="plain-syntax">-archive-to X sync copies of all extensions, kits and so on needed into nest X</span>
<span class="plain-syntax">-build incrementally build target(s)</span>
<span class="plain-syntax">-build-locate show file paths of all the extensions, kits and so on needed to build</span>
<span class="plain-syntax">-build-missing show the extensions, kits and so on which are needed to build but missing</span>
<span class="plain-syntax">-build-needs show all the extensions, kits and so on needed to build</span>
<span class="plain-syntax">-build-trace show verbose reasoning during -build (default is -no-build-trace)</span>
<span class="plain-syntax">-contents-of X apply to all targets in the directory X</span>
<span class="plain-syntax">-copy-to X copy target(s) to nest X</span>
<span class="plain-syntax">-dry make this a dry run (print but do not execute shell commands) (default is -no-dry)</span>
<span class="plain-syntax">-graph show dependency graph of target(s) but take no action</span>
<span class="plain-syntax">-inspect show target(s) but take no action</span>
<span class="plain-syntax">-matching X apply to all works in nest(s) matching requirement X</span>
<span class="plain-syntax">-rebuild completely rebuild target(s)</span>
<span class="plain-syntax">-sync-to X forcibly copy target(s) to nest X, even if prior version already there</span>
<span class="plain-syntax">-tools X make X the directory of intools executables, and exit developer mode</span>
<span class="plain-syntax">-use-locate show file paths of all the extensions, kits and so on needed to use</span>
<span class="plain-syntax">-use-missing show the extensions, kits and so on which are needed to use but missing</span>
<span class="plain-syntax">-use-needs show all the extensions, kits and so on needed to use</span>
<span class="plain-syntax">-archive sync copies of all extensions, kits and so on needed for -project into Materials</span>
<span class="plain-syntax">-archive-to X sync copies of all extensions, kits and so on needed into nest X</span>
<span class="plain-syntax">-build incrementally build target(s)</span>
<span class="plain-syntax">-build-locate show file paths of all the extensions, kits and so on needed to build</span>
<span class="plain-syntax">-build-missing show the extensions, kits and so on which are needed to build but missing</span>
<span class="plain-syntax">-build-needs show all the extensions, kits and so on needed to build</span>
<span class="plain-syntax">-build-trace show verbose reasoning during -build (default is -no-build-trace)</span>
<span class="plain-syntax">-contents-of X apply to all targets in the directory X</span>
<span class="plain-syntax">-copy-to X copy target(s) to nest X</span>
<span class="plain-syntax">-dry make this a dry run (print but do not execute shell commands) (default is -no-dry)</span>
<span class="plain-syntax">-graph show dependency graph of target(s) but take no action</span>
<span class="plain-syntax">-inspect show target(s) but take no action</span>
<span class="plain-syntax">-matching X apply to all works in nest(s) matching requirement X</span>
<span class="plain-syntax">-rebuild completely rebuild target(s)</span>
<span class="plain-syntax">-sync-to X forcibly copy target(s) to nest X, even if prior version already there</span>
<span class="plain-syntax">-tools X make X the directory of intools executables, and exit developer mode</span>
<span class="plain-syntax">-use-locate show file paths of all the extensions, kits and so on needed to use</span>
<span class="plain-syntax">-use-missing show the extensions, kits and so on which are needed to use but missing</span>
<span class="plain-syntax">-use-needs show all the extensions, kits and so on needed to use</span>
<span class="plain-syntax">-no-versions-in-filenames don't append _v number to destination filenames on -copy-to or -sync-to (default is -versions-in-filenames)</span>
<span class="plain-syntax">for translating Inform source text to Inter:</span>
<span class="plain-syntax"> -basic use Basic Inform language (same as -kit BasicInformKit)</span>
<span class="plain-syntax"> -case X make any source links refer to the source in extension example X</span>
<span class="plain-syntax"> -census perform an extensions census (default is -no-census)</span>
<span class="plain-syntax"> -debug compile with debugging features even on a Release (default is -no-debug)</span>
<span class="plain-syntax"> -format=X compile to the format X (default is Inform6/32)</span>
<span class="plain-syntax"> -o X use file X as the compiled output (not for use with -project)</span>
<span class="plain-syntax"> -project X work within the Inform project X</span>
<span class="plain-syntax"> -release compile a version suitable for a Release build (default is -no-release)</span>
<span class="plain-syntax"> -rng fix the random number generator of the story file (for testing) (default is -no-rng)</span>
<span class="plain-syntax"> -source X use file X as the Inform source text</span>
<span class="plain-syntax"> -basic use Basic Inform language (same as -kit BasicInformKit)</span>
<span class="plain-syntax"> -case X make any source links refer to the source in extension example X</span>
<span class="plain-syntax"> -census perform an extensions census (default is -no-census)</span>
<span class="plain-syntax"> -debug compile with debugging features even on a Release (default is -no-debug)</span>
<span class="plain-syntax"> -format=X compile to the format X (default is Inform6/32)</span>
<span class="plain-syntax"> -o X use file X as the compiled output (not for use with -project)</span>
<span class="plain-syntax"> -project X work within the Inform project X</span>
<span class="plain-syntax"> -release compile a version suitable for a Release build (default is -no-release)</span>
<span class="plain-syntax"> -rng fix the random number generator of the story file (for testing) (default is -no-rng)</span>
<span class="plain-syntax"> -source X use file X as the Inform source text</span>
<span class="plain-syntax">for locating resources in the file system:</span>
<span class="plain-syntax"> -external X use X as the user's home for installed material such as extensions</span>
<span class="plain-syntax"> -internal X use X as the location of built-in material such as the Standard Rules</span>
<span class="plain-syntax"> -nest X add the nest at pathname X to the search list</span>
<span class="plain-syntax"> -transient X use X for transient data such as the extensions census</span>
<span class="plain-syntax"> -external X use X as the user's home for installed material such as extensions</span>
<span class="plain-syntax"> -internal X use X as the location of built-in material such as the Standard Rules</span>
<span class="plain-syntax"> -nest X add the nest at pathname X to the search list</span>
<span class="plain-syntax"> -transient X use X for transient data such as the extensions census</span>
<span class="plain-syntax">for tweaking code generation from Inter:</span>
<span class="plain-syntax"> -kit X include Inter code from the kit called X</span>
<span class="plain-syntax"> -pipeline X specify code-generation pipeline by name (default is "compile")</span>
<span class="plain-syntax"> -pipeline-file X specify code-generation pipeline as file X</span>
<span class="plain-syntax"> -variable X set pipeline variable X (in form name=value)</span>
<span class="plain-syntax"> -kit X include Inter code from the kit called X</span>
<span class="plain-syntax"> -pipeline X specify code-generation pipeline by name (default is "compile")</span>
<span class="plain-syntax"> -pipeline-file X specify code-generation pipeline as file X</span>
<span class="plain-syntax"> -variable X set pipeline variable X (in form name=value)</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-agtk.html">&#10094;</a></li><li class="progresscurrentchapter">M</li><li class="progresssection"><a href="M-ui.html">ui</a></li><li class="progresssection"><a href="M-agtk.html">agtk</a></li><li class="progresscurrent">rc</li><li class="progresschapter"><a href="1-mn.html">1</a></li><li class="progressnext"><a href="1-mn.html">&#10095;</a></li></ul></div>

View file

@ -302,7 +302,7 @@ its main task: building an Inform project.
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">destination_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">syncing</span><span class="plain-syntax">, </span><span class="identifier-syntax">meth</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">Copies::overwrite_error</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Copies::overwrite_error</span></span>:<br/>Extension Manager - <a href="4-em.html#SP7">&#167;7</a><br/>Kit Manager - <a href="4-km.html#SP6">&#167;6</a><br/>Language Manager - <a href="4-lm.html#SP6">&#167;6</a><br/>Pipeline Manager - <a href="4-pm.html#SP6">&#167;6</a><br/>Template Manager - <a href="4-tm.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Copies::overwrite_error</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Copies::overwrite_error</span></span>:<br/>Extension Manager - <a href="4-em.html#SP7">&#167;7</a><br/>Kit Manager - <a href="4-km.html#SP8">&#167;8</a><br/>Language Manager - <a href="4-lm.html#SP6">&#167;6</a><br/>Pipeline Manager - <a href="4-pm.html#SP6">&#167;6</a><br/>Template Manager - <a href="4-tm.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ext</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">ext</span><span class="plain-syntax">, </span><span class="string-syntax">"%X"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::with_text</span><span class="plain-syntax">(</span><span class="string-syntax">"already present (to overwrite, use -sync-to not -copy-to): '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ext</span><span class="plain-syntax">);</span>

View file

@ -103,9 +103,16 @@ contributes only the un-filename-extended leafname <span class="extract"><span c
</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">Editions::write_canonical_leaf</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">Editions::write_canonical_leaf</span></span>:<br/>Extension Manager - <a href="4-em.html#SP7">&#167;7</a><br/>Kit Manager - <a href="4-km.html#SP6">&#167;6</a><br/>Language Manager - <a href="4-lm.html#SP6">&#167;6</a><br/>Pipeline Manager - <a href="4-pm.html#SP6">&#167;6</a><br/>Template Manager - <a href="4-tm.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_edition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">canonical_leaves_have_versions</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Editions::set_canonical_leaves_have_versions</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">which</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">canonical_leaves_have_versions</span><span class="plain-syntax"> = </span><span class="identifier-syntax">which</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">Editions::write_canonical_leaf</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">Editions::write_canonical_leaf</span></span>:<br/>Extension Manager - <a href="4-em.html#SP7">&#167;7</a><br/>Kit Manager - <a href="4-km.html#SP8">&#167;8</a><br/>Language Manager - <a href="4-lm.html#SP6">&#167;6</a><br/>Pipeline Manager - <a href="4-pm.html#SP6">&#167;6</a><br/>Template Manager - <a href="4-tm.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_edition</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">title</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">VersionNumbers::is_null</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">version</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">canonical_leaves_have_versions</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">VersionNumbers::is_null</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">version</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">vn</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">vn</span><span class="plain-syntax">, </span><span class="string-syntax">"-v%v"</span><span class="plain-syntax">, &amp;(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">version</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">vn</span><span class="plain-syntax">)</span>

View file

@ -156,7 +156,7 @@ we create one of these for each hit:
</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">Nests::add_search_result</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">Nests::add_search_result</span></span>:<br/>Extension Manager - <a href="4-em.html#SP6">&#167;6</a><br/>Kit Manager - <a href="4-km.html#SP5">&#167;5</a><br/>Language Manager - <a href="4-lm.html#SP5">&#167;5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">&#167;5</a><br/>Template Manager - <a href="4-tm.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::add_search_result</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">Nests::add_search_result</span></span>:<br/>Extension Manager - <a href="4-em.html#SP6">&#167;6</a><br/>Kit Manager - <a href="4-km.html#SP7">&#167;7</a><br/>Language Manager - <a href="4-lm.html#SP5">&#167;5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">&#167;5</a><br/>Template Manager - <a href="4-tm.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</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="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">nest</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>

View file

@ -243,7 +243,7 @@ a requirement, then so will all other copies of it.
</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">Requirements::meets</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Requirements::meets</span></span>:<br/>Extension Manager - <a href="4-em.html#SP6">&#167;6</a><br/>Kit Manager - <a href="4-km.html#SP5">&#167;5</a><br/>Language Manager - <a href="4-lm.html#SP5">&#167;5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">&#167;5</a><br/>Template Manager - <a href="4-tm.html#SP5">&#167;5</a><br/>Extension Services - <a href="5-es.html#SP16">&#167;16</a><br/>Kit Services - <a href="5-ks.html#SP14">&#167;14</a><br/>Inclusions - <a href="6-inc.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_edition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">edition</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Requirements::meets</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Requirements::meets</span></span>:<br/>Extension Manager - <a href="4-em.html#SP6">&#167;6</a><br/>Kit Manager - <a href="4-km.html#SP7">&#167;7</a><br/>Language Manager - <a href="4-lm.html#SP5">&#167;5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">&#167;5</a><br/>Template Manager - <a href="4-tm.html#SP5">&#167;5</a><br/>Extension Services - <a href="5-es.html#SP16">&#167;16</a><br/>Kit Services - <a href="5-ks.html#SP14">&#167;14</a><br/>Inclusions - <a href="6-inc.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_edition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">edition</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="plain-syntax"> </span><span class="reserved-syntax">if</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="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><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</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">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax">)</span>

View file

@ -59,7 +59,7 @@ function togglePopup(material_id) {
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inbuildn.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#4">Chapter 4: Genre Management</a></li><li><b>Kit Manager</b></li></ul></div>
<p class="purpose">Claiming and creating copies of the kit genre: used for kits of precompiled Inter code.</p>
<ul class="toc"><li><a href="4-km.html#SP1">&#167;1. Genre definition</a></li><li><a href="4-km.html#SP4">&#167;4. Claiming</a></li><li><a href="4-km.html#SP5">&#167;5. Searching</a></li><li><a href="4-km.html#SP6">&#167;6. Copying</a></li><li><a href="4-km.html#SP7">&#167;7. Build graph</a></li></ul><hr class="tocbar">
<ul class="toc"><li><a href="4-km.html#SP1">&#167;1. Genre definition</a></li><li><a href="4-km.html#SP4">&#167;4. Claiming</a></li><li><a href="4-km.html#SP7">&#167;7. Searching</a></li><li><a href="4-km.html#SP8">&#167;8. Copying</a></li><li><a href="4-km.html#SP9">&#167;9. Build graph</a></li></ul><hr class="tocbar">
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Genre definition. </b>The <span class="extract"><span class="extract-syntax">kit_genre</span></span> can be summarised as follows. Kits consist of directories,
containing metadata in <span class="extract"><span class="extract-syntax">D/kit_metadata.json</span></span>, but which are also valid Inweb
@ -76,10 +76,10 @@ the metadata file.
<span class="plain-syntax"> </span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax"> = </span><a href="2-gnr.html#SP1" class="function-link"><span class="function-syntax">Genres::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"kit"</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">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP1" class="function-link"><span class="function-syntax">KitManager::write_work</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_CLAIM_AS_COPY_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP4" class="function-link"><span class="function-syntax">KitManager::claim_as_copy</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_SEARCH_NEST_FOR_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP5" class="function-link"><span class="function-syntax">KitManager::search_nest_for</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_COPY_TO_NEST_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP6" class="function-link"><span class="function-syntax">KitManager::copy_to_nest</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_CONSTRUCT_GRAPH_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP7" class="function-link"><span class="function-syntax">KitManager::construct_graph</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_BUILDING_SOON_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP7" class="function-link"><span class="function-syntax">KitManager::building_soon</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_SEARCH_NEST_FOR_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP7" class="function-link"><span class="function-syntax">KitManager::search_nest_for</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_COPY_TO_NEST_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP8" class="function-link"><span class="function-syntax">KitManager::copy_to_nest</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_CONSTRUCT_GRAPH_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP9" class="function-link"><span class="function-syntax">KitManager::construct_graph</span></a><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_BUILDING_SOON_MTID</span><span class="plain-syntax">, </span><a href="4-km.html#SP9" class="function-link"><span class="function-syntax">KitManager::building_soon</span></a><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">KitManager::write_work</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">gen</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUTPUT_STREAM</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>
@ -90,7 +90,7 @@ the metadata file.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::path_within_nest</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">KitManager::path_within_nest</span></span>:<br/><a href="4-km.html#SP5">&#167;5</a>, <a href="4-km.html#SP6">&#167;6</a><br/>Kit Services - <a href="5-ks.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::path_within_nest</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">KitManager::path_within_nest</span></span>:<br/><a href="4-km.html#SP7">&#167;7</a>, <a href="4-km.html#SP8">&#167;8</a><br/>Kit Services - <a href="5-ks.html#SP12">&#167;12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">N</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 nest"</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">Pathnames::down</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">location</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>
@ -100,7 +100,7 @@ which stores data about extensions used by the Inform compiler.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::from_copy</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">KitManager::from_copy</span></span>:<br/><a href="4-km.html#SP7">&#167;7</a><br/>Kit Services - <a href="5-ks.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::from_copy</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">KitManager::from_copy</span></span>:<br/><a href="4-km.html#SP9">&#167;9</a><br/>Kit Services - <a href="5-ks.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">C</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">kit_genre</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">RETRIEVE_POINTER_inform_kit</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">metadata</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -108,7 +108,7 @@ which stores data about extensions used by the Inform compiler.
<span class="plain-syntax">}</span>
<span class="identifier-syntax">dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit_copy_cache</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::new_copy</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">KitManager::new_copy</span></span>:<br/><a href="4-km.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</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="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::new_copy</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">KitManager::new_copy</span></span>:<br/><a href="4-km.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kit_copy_cache</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">kit_copy_cache</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Dictionaries::new</span><span class="plain-syntax">(16, </span><span class="identifier-syntax">FALSE</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">key</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">key</span><span class="plain-syntax">, </span><span class="string-syntax">"%p"</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
@ -134,36 +134,60 @@ supplied at the command line; <span class="extract"><span class="extract-syntax"
not a file, false if we know the reverse, and otherwise not applicable.
</p>
<p class="commentary">A kit needs to be a directory whose name ends in <span class="extract"><span class="extract-syntax">Kit</span></span>, and which contains
a valid metadata file.
<p class="commentary">A kit needs to be a directory whose name ends in <span class="extract"><span class="extract-syntax">Kit</span></span>, perhaps with a semver
appended to it, and which contains a valid metadata file.
</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">KitManager::claim_as_copy</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">KitManager::claim_as_copy</span></span>:<br/><a href="4-km.html#SP1">&#167;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">gen</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> **</span><span class="identifier-syntax">C</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ext</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">directory_status</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">directory_status</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</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">kitpos</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">) - </span><span class="constant-syntax">3</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">kitpos</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">0</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">kitpos</span><span class="plain-syntax">) == </span><span class="character-syntax">'K'</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">kitpos</span><span class="plain-syntax">+1) == </span><span class="character-syntax">'i'</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">kitpos</span><span class="plain-syntax">+2) == </span><span class="character-syntax">'t'</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-km.html#SP5" class="function-link"><span class="function-syntax">KitManager::name_len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">) &gt; </span><span class="constant-syntax">0</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">Pathnames::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-km.html#SP4" class="function-link"><span class="function-syntax">KitManager::claim_folder_as_copy</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="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-km.html#SP6" class="function-link"><span class="function-syntax">KitManager::claim_folder_as_copy</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="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>So, for example, given <span class="extract"><span class="extract-syntax">BasicInformExtrasKit-v10_1_0-beta+6V20</span></span> this returns
20, the length of the actual name part <span class="extract"><span class="extract-syntax">BasicInformExtrasKit</span></span>.
</p>
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::claim_folder_as_copy</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">KitManager::claim_folder_as_copy</span></span>:<br/><a href="4-km.html#SP5">&#167;5</a></span></button><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>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KitManager::name_len</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">KitManager::name_len</span></span>:<br/><a href="4-km.html#SP4">&#167;4</a>, <a href="4-km.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">arg</span><span class="plain-syntax">) {</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">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</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::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="character-syntax">'K'</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1) == </span><span class="character-syntax">'i'</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) == </span><span class="character-syntax">'t'</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::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+3) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) ||</span>
<span class="plain-syntax"> ((</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+3) == </span><span class="character-syntax">'-'</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+4) == </span><span class="character-syntax">'v'</span><span class="plain-syntax">) &amp;&amp;</span>
<span class="plain-syntax"> (</span><span class="identifier-syntax">Characters::isdigit</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+5)))))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">+3;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. </b>And so we truncate to that length when turning the directory name into the
copy name.
</p>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">KitManager::claim_folder_as_copy</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">KitManager::claim_folder_as_copy</span></span>:<br/><a href="4-km.html#SP4">&#167;4</a>, <a href="4-km.html#SP7">&#167;7</a></span></button><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="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">canary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><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">"kit_metadata.json"</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary</span><span class="plain-syntax">))</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-km.html#SP3" class="function-link"><span class="function-syntax">KitManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">canary</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">name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">Pathnames::directory_name</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="4-km.html#SP5" class="function-link"><span class="function-syntax">KitManager::name_len</span></a><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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> &gt; </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">Str::truncate</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</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">return</span><span class="plain-syntax"> </span><a href="4-km.html#SP3" class="function-link"><span class="function-syntax">KitManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</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">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. Searching. </b>Here we look through a nest to find all kits matching the supplied
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Searching. </b>Here we look through a nest to find all kits matching the supplied
requirements.
</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">KitManager::search_nest_for</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">KitManager::search_nest_for</span></span>:<br/><a href="4-km.html#SP1">&#167;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">gen</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitManager::search_nest_for</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">KitManager::search_nest_for</span></span>:<br/><a href="4-km.html#SP1">&#167;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">gen</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax">) &amp;&amp; (</span><span class="identifier-syntax">req</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">work</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">genre</span><span class="plain-syntax"> != </span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</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><a href="4-km.html#SP2" class="function-link"><span class="function-syntax">KitManager::path_within_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
@ -173,7 +197,7 @@ requirements.
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Platform::is_folder_separator</span><span class="plain-syntax">(</span><span class="identifier-syntax">Str::get_last_char</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">Str::delete_last_character</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">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Q</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::down</span><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">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-km.html#SP4" class="function-link"><span class="function-syntax">KitManager::claim_folder_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-km.html#SP6" class="function-link"><span class="function-syntax">KitManager::claim_folder_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">C</span><span class="plain-syntax">) &amp;&amp; (</span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">))) {</span>
<span class="plain-syntax"> </span><a href="2-nst.html#SP6" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> }</span>
@ -181,7 +205,7 @@ requirements.
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. Copying. </b>Now the task is to copy a kit into place in a nest. Since a kit is a directory,
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. Copying. </b>Now the task is to copy a kit into place in a nest. Since a kit is a directory,
we need to <span class="extract"><span class="extract-syntax">rsync</span></span> it.
</p>
@ -194,9 +218,9 @@ we need to <span class="extract"><span class="extract-syntax">rsync</span></span
<span class="plain-syntax"> </span><span class="reserved-syntax">return</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitManager::copy_to_nest</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">KitManager::copy_to_nest</span></span>:<br/><a href="4-km.html#SP1">&#167;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">gen</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">,</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitManager::copy_to_nest</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">KitManager::copy_to_nest</span></span>:<br/><a href="4-km.html#SP1">&#167;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">gen</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax">,</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">syncing</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_methodology</span><span class="plain-syntax"> *</span><span class="identifier-syntax">meth</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">dest_kit</span><span class="plain-syntax"> = </span><a href="4-km.html#SP6" class="function-link"><span class="function-syntax">KitManager::pathname_in_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</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">dest_kit</span><span class="plain-syntax"> = </span><a href="4-km.html#SP8" class="function-link"><span class="function-syntax">KitManager::pathname_in_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">edition</span><span class="plain-syntax">);</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dest_kit_metadata</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">dest_kit</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"kit_metadata.json"</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">TextFiles::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">dest_kit_metadata</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">syncing</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) { </span><a href="2-cps.html#SP14" class="function-link"><span class="function-syntax">Copies::overwrite_error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
@ -225,14 +249,14 @@ we need to <span class="extract"><span class="extract-syntax">rsync</span></span
<span class="plain-syntax"> }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. Build graph. </b></p>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. Build graph. </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">KitManager::building_soon</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">KitManager::building_soon</span></span>:<br/><a href="4-km.html#SP1">&#167;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">gen</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> **</span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitManager::building_soon</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">KitManager::building_soon</span></span>:<br/><a href="4-km.html#SP1">&#167;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">gen</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> **</span><span class="identifier-syntax">V</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">C</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">vertex</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">KitManager::construct_graph</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">KitManager::construct_graph</span></span>:<br/><a href="4-km.html#SP1">&#167;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">G</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitManager::construct_graph</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">KitManager::construct_graph</span></span>:<br/><a href="4-km.html#SP1">&#167;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">G</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><a href="5-ks.html#SP13" class="function-link"><span class="function-syntax">Kits::construct_graph</span></a><span class="plain-syntax">(</span><a href="4-km.html#SP3" class="function-link"><span class="function-syntax">KitManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
</pre>

View file

@ -556,7 +556,7 @@ not ours.
</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">Kits::construct_graph</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Kits::construct_graph</span></span>:<br/>Kit Manager - <a href="4-km.html#SP7">&#167;7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kits::construct_graph</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Kits::construct_graph</span></span>:<br/>Kit Manager - <a href="4-km.html#SP9">&#167;9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">GRAPH_CONSTRUCTION_INBUILD_PHASE</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">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K</span><span class="plain-syntax">-&gt;</span><span class="element-syntax">as_copy</span><span class="plain-syntax">;</span>

View file

@ -223,7 +223,7 @@ right where the user said it would be, or by a search.
<p class="commentary">When the search engine wants to look for, say, kits in a given nest, it will
ask the kit genre how to do this, by a method call: and this will be handled
by <a href="4-km.html#SP5" class="internal">KitManager::search_nest_for</a>. That enables kits to be looked for in
by <a href="4-km.html#SP7" class="internal">KitManager::search_nest_for</a>. That enables kits to be looked for in
a different part of a nest than extensions, for example. Similarly, each
genre scans and generally vets a copy differently, attaching copy errors
for different reasons. But in general, a function like <a href="4-km.html#SP3" class="internal">KitManager::new_copy</a>

View file

@ -310,6 +310,7 @@ other options to the selection defined here.
@e MATCHING_CLSW
@e COPY_TO_CLSW
@e SYNC_TO_CLSW
@e VERSIONS_IN_FILENAMES_CLSW
@<Read the command line@> =
CommandLine::declare_heading(
@ -319,6 +320,8 @@ other options to the selection defined here.
L"copy target(s) to nest X");
CommandLine::declare_switch(SYNC_TO_CLSW, L"sync-to", 2,
L"forcibly copy target(s) to nest X, even if prior version already there");
CommandLine::declare_boolean_switch(VERSIONS_IN_FILENAMES_CLSW, L"versions-in-filenames", 1,
L"append _v number to destination filenames on -copy-to or -sync-to", TRUE);
CommandLine::declare_switch(BUILD_CLSW, L"build", 1,
L"incrementally build target(s)");
CommandLine::declare_switch(REBUILD_CLSW, L"rebuild", 1,
@ -391,6 +394,8 @@ void Main::option(int id, int val, text_stream *arg, void *state) {
case SYNC_TO_CLSW: inbuild_task = SYNC_TO_TTASK;
destination_nest = Nests::new(Pathnames::from_text(arg));
break;
case VERSIONS_IN_FILENAMES_CLSW:
Editions::set_canonical_leaves_have_versions(val); break;
}
Supervisor::option(id, val, arg, state);
}

View file

@ -2,54 +2,55 @@ A simple build and package manager for the Inform tools.
usage: inbuild [-TASK] TARGET1 TARGET2 ...
-archive sync copies of all extensions, kits and so on needed for -project into Materials
-archive-to X sync copies of all extensions, kits and so on needed into nest X
-build incrementally build target(s)
-build-locate show file paths of all the extensions, kits and so on needed to build
-build-missing show the extensions, kits and so on which are needed to build but missing
-build-needs show all the extensions, kits and so on needed to build
-build-trace show verbose reasoning during -build (default is -no-build-trace)
-contents-of X apply to all targets in the directory X
-copy-to X copy target(s) to nest X
-dry make this a dry run (print but do not execute shell commands) (default is -no-dry)
-graph show dependency graph of target(s) but take no action
-inspect show target(s) but take no action
-matching X apply to all works in nest(s) matching requirement X
-rebuild completely rebuild target(s)
-sync-to X forcibly copy target(s) to nest X, even if prior version already there
-tools X make X the directory of intools executables, and exit developer mode
-use-locate show file paths of all the extensions, kits and so on needed to use
-use-missing show the extensions, kits and so on which are needed to use but missing
-use-needs show all the extensions, kits and so on needed to use
-archive sync copies of all extensions, kits and so on needed for -project into Materials
-archive-to X sync copies of all extensions, kits and so on needed into nest X
-build incrementally build target(s)
-build-locate show file paths of all the extensions, kits and so on needed to build
-build-missing show the extensions, kits and so on which are needed to build but missing
-build-needs show all the extensions, kits and so on needed to build
-build-trace show verbose reasoning during -build (default is -no-build-trace)
-contents-of X apply to all targets in the directory X
-copy-to X copy target(s) to nest X
-dry make this a dry run (print but do not execute shell commands) (default is -no-dry)
-graph show dependency graph of target(s) but take no action
-inspect show target(s) but take no action
-matching X apply to all works in nest(s) matching requirement X
-rebuild completely rebuild target(s)
-sync-to X forcibly copy target(s) to nest X, even if prior version already there
-tools X make X the directory of intools executables, and exit developer mode
-use-locate show file paths of all the extensions, kits and so on needed to use
-use-missing show the extensions, kits and so on which are needed to use but missing
-use-needs show all the extensions, kits and so on needed to use
-no-versions-in-filenames don't append _v number to destination filenames on -copy-to or -sync-to (default is -versions-in-filenames)
for translating Inform source text to Inter:
-basic use Basic Inform language (same as -kit BasicInformKit)
-case X make any source links refer to the source in extension example X
-census perform an extensions census (default is -no-census)
-debug compile with debugging features even on a Release (default is -no-debug)
-format=X compile to the format X (default is Inform6/32)
-o X use file X as the compiled output (not for use with -project)
-project X work within the Inform project X
-release compile a version suitable for a Release build (default is -no-release)
-rng fix the random number generator of the story file (for testing) (default is -no-rng)
-source X use file X as the Inform source text
-basic use Basic Inform language (same as -kit BasicInformKit)
-case X make any source links refer to the source in extension example X
-census perform an extensions census (default is -no-census)
-debug compile with debugging features even on a Release (default is -no-debug)
-format=X compile to the format X (default is Inform6/32)
-o X use file X as the compiled output (not for use with -project)
-project X work within the Inform project X
-release compile a version suitable for a Release build (default is -no-release)
-rng fix the random number generator of the story file (for testing) (default is -no-rng)
-source X use file X as the Inform source text
for locating resources in the file system:
-external X use X as the user's home for installed material such as extensions
-internal X use X as the location of built-in material such as the Standard Rules
-nest X add the nest at pathname X to the search list
-transient X use X for transient data such as the extensions census
-external X use X as the user's home for installed material such as extensions
-internal X use X as the location of built-in material such as the Standard Rules
-nest X add the nest at pathname X to the search list
-transient X use X for transient data such as the extensions census
for tweaking code generation from Inter:
-kit X include Inter code from the kit called X
-pipeline X specify code-generation pipeline by name (default is "compile")
-pipeline-file X specify code-generation pipeline as file X
-variable X set pipeline variable X (in form name=value)
-kit X include Inter code from the kit called X
-pipeline X specify code-generation pipeline by name (default is "compile")
-pipeline-file X specify code-generation pipeline as file X
-variable X set pipeline variable X (in form name=value)
-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

View file

@ -41,9 +41,16 @@ would go into |N/Extensions/Steve Hogarth/Marbles-v2_1.i7x|. The following
contributes only the un-filename-extended leafname |Marbles-v2_1|.
=
int canonical_leaves_have_versions = TRUE;
void Editions::set_canonical_leaves_have_versions(int which) {
canonical_leaves_have_versions = which;
}
void Editions::write_canonical_leaf(OUTPUT_STREAM, inbuild_edition *E) {
WRITE("%S", E->work->title);
if (VersionNumbers::is_null(E->version) == FALSE) {
if ((canonical_leaves_have_versions) &&
(VersionNumbers::is_null(E->version) == FALSE)) {
TEMPORARY_TEXT(vn)
WRITE_TO(vn, "-v%v", &(E->version));
LOOP_THROUGH_TEXT(pos, vn)

View file

@ -74,26 +74,48 @@ supplied at the command line; |ext| is a substring of it, and is its extension
|directory_status| is true if we know for some reason that this is a directory
not a file, false if we know the reverse, and otherwise not applicable.
A kit needs to be a directory whose name ends in |Kit|, and which contains
a valid metadata file.
A kit needs to be a directory whose name ends in |Kit|, perhaps with a semver
appended to it, and which contains a valid metadata file.
=
void KitManager::claim_as_copy(inbuild_genre *gen, inbuild_copy **C,
text_stream *arg, text_stream *ext, int directory_status) {
if (directory_status == FALSE) return;
int kitpos = Str::len(arg) - 3;
if ((kitpos >= 0) && (Str::get_at(arg, kitpos) == 'K') &&
(Str::get_at(arg, kitpos+1) == 'i') &&
(Str::get_at(arg, kitpos+2) == 't')) {
if (KitManager::name_len(arg) > 0) {
pathname *P = Pathnames::from_text(arg);
*C = KitManager::claim_folder_as_copy(P);
}
}
@ So, for example, given |BasicInformExtrasKit-v10_1_0-beta+6V20| this returns
20, the length of the actual name part |BasicInformExtrasKit|.
=
int KitManager::name_len(text_stream *arg) {
for (int i=0; i<Str::len(arg); i++)
if ((Str::get_at(arg, i) == 'K') &&
(Str::get_at(arg, i+1) == 'i') &&
(Str::get_at(arg, i+2) == 't'))
if ((Str::get_at(arg, i+3) == 0) ||
((Str::get_at(arg, i+3) == '-') &&
(Str::get_at(arg, i+4) == 'v') &&
(Characters::isdigit(Str::get_at(arg, i+5)))))
return i+3;
return -1;
}
@ And so we truncate to that length when turning the directory name into the
copy name.
=
inbuild_copy *KitManager::claim_folder_as_copy(pathname *P) {
filename *canary = Filenames::in(P, I"kit_metadata.json");
if (TextFiles::exists(canary))
return KitManager::new_copy(Pathnames::directory_name(P), P);
if (TextFiles::exists(canary)) {
text_stream *name = Str::duplicate(Pathnames::directory_name(P));
int L = KitManager::name_len(name);
if (L > 0) Str::truncate(name, L);
return KitManager::new_copy(name, P);
}
return NULL;
}

View file

@ -1,47 +1,47 @@
Total memory consumption was 123446K = 121 MB
Total memory consumption was 129505K = 126 MB
---- was used for 2045718 objects, in 363245 frames in 0 x 800K = 0K = 0 MB:
33.0% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
20.5% text_stream_array 4609 x 100 = 460900 objects, 25957888 bytes
19.2% linked_list 43564 objects, 24395840 bytes
11.1% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
10.4% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
8.2% parse_node 129706 objects, 10376480 bytes
5.8% verb_conjugation 160 objects, 7425280 bytes
4.3% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
2.5% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
2.0% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
1.6% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
31.5% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
19.5% text_stream_array 4609 x 100 = 460900 objects, 25957888 bytes
18.3% linked_list 43564 objects, 24395840 bytes
10.6% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes
9.9% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
7.8% parse_node 129706 objects, 10376480 bytes
5.5% verb_conjugation 160 objects, 7425280 bytes
4.1% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
2.5% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
2.4% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
1.9% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
1.5% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
1.5% inter_schema_token 13964 objects, 2010816 bytes
1.4% package_request 21153 objects, 1861464 bytes
1.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
1.2% dict_entry_array 470 x 100 = 47000 objects, 1519040 bytes
1.3% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
1.1% dict_entry_array 470 x 100 = 47000 objects, 1519040 bytes
1.1% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
1.1% inter_symbols_table 26592 objects, 1489152 bytes
1.0% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
1.0% scan_directory 314 objects, 1296192 bytes
1.0% inter_package 26592 objects, 1276416 bytes
0.9% scan_directory 314 objects, 1296192 bytes
0.9% inter_package 26592 objects, 1276416 bytes
0.8% map_data 671 objects, 1127280 bytes
0.8% id_body 942 objects, 1077648 bytes
0.7% adjective_meaning 202 objects, 1000304 bytes
0.7% excerpt_meaning 3102 objects, 967824 bytes
0.7% production 3882 objects, 900624 bytes
0.6% production 3882 objects, 900624 bytes
0.6% ptoken 8414 objects, 875056 bytes
0.6% grammatical_usage 3613 objects, 867120 bytes
0.6% individual_form 2563 objects, 861168 bytes
0.6% inter_schema_node 8917 objects, 856032 bytes
0.5% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
0.4% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes
0.3% verb_usage 1128 objects, 388032 bytes
0.2% verb_usage 1128 objects, 388032 bytes
0.2% rule 470 objects, 368480 bytes
0.2% dictionary 7557 objects, 362736 bytes
0.2% verb_form 386 objects, 348944 bytes
0.2% noun 2382 objects, 285840 bytes
0.2% compilation_subtask 3355 objects, 268400 bytes
0.2% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
0.2% inference_subject 666 objects, 261072 bytes
0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
0.1% inference_subject 666 objects, 261072 bytes
0.1% vanilla_function 3683 objects, 235712 bytes
0.1% binary_predicate 322 objects, 170016 bytes
0.1% hierarchy_location 1122 objects, 161568 bytes
@ -242,23 +242,23 @@ Total memory consumption was 123446K = 121 MB
100.0% was used for memory not allocated for objects:
57.7% text stream storage 72987552 bytes in 478411 claims
4.1% dictionary storage 5248000 bytes in 7557 claims
59.7% text stream storage 79192192 bytes in 478879 claims
3.9% dictionary storage 5248000 bytes in 7557 claims
---- sorting 1448 bytes in 149 claims
5.6% source text 7200000 bytes in 3 claims
8.5% source text details 10800000 bytes in 2 claims
0.2% documentation fragments 262144 bytes in 1 claim
5.4% source text 7200000 bytes in 3 claims
8.1% source text details 10800000 bytes in 2 claims
0.1% documentation fragments 262144 bytes in 1 claim
---- linguistic stock array 81920 bytes in 2 claims
---- small word set array 105600 bytes in 22 claims
3.5% inter symbols storage 4520768 bytes in 27950 claims
13.2% inter bytecode storage 16767568 bytes in 14 claims
4.9% inter links storage 6222976 bytes in 11 claims
3.4% inter symbols storage 4520768 bytes in 27950 claims
12.6% inter bytecode storage 16767568 bytes in 14 claims
4.6% inter links storage 6222976 bytes in 11 claims
0.1% inter tree location list storage 191232 bytes in 32 claims
1.3% instance-of-kind counting 1700416 bytes in 1 claim
1.2% instance-of-kind counting 1700416 bytes in 1 claim
---- compilation workspace for objects 21896 bytes in 25 claims
---- lists for type-checking invocations 16000 bytes in 1 claim
---- code generation workspace for objects 1336 bytes in 4 claims
0.2% emitter array storage 280288 bytes in 1999 claims
-146.-1% was overhead - -184754088 bytes = -180423K = -176 MB
-139.-3% was overhead - -184754088 bytes = -180423K = -176 MB

View file

@ -1,11 +1,11 @@
100.0% in inform7 run
71.0% in compilation to Inter
50.0% in //Sequence::undertake_queued_tasks//
4.8% in //MajorNodes::pre_pass//
3.5% in //MajorNodes::pass_1//
1.9% in //RTPhrasebook::compile_entries//
1.7% in //ImperativeDefinitions::assess_all//
1.3% in //RTKindConstructors::compile//
71.5% in compilation to Inter
50.4% in //Sequence::undertake_queued_tasks//
4.6% in //MajorNodes::pre_pass//
3.3% in //MajorNodes::pass_1//
2.3% in //RTPhrasebook::compile_entries//
1.9% in //ImperativeDefinitions::assess_all//
1.5% in //RTKindConstructors::compile//
1.1% in //Sequence::lint_inter//
0.5% in //MajorNodes::pass_2//
0.5% in //Sequence::undertake_queued_tasks//
@ -17,17 +17,17 @@
0.1% in //RTKindConstructors::compile_permissions//
0.1% in //Task::make_built_in_kind_constructors//
0.1% in //World::stages_II_and_III//
2.8% not specifically accounted for
26.2% in running Inter pipeline
9.9% in step 14/15: generate inform6 -> auto.inf
5.8% in step 5/15: load-binary-kits
5.6% in step 6/15: make-synoptic-module
2.5% not specifically accounted for
25.7% in running Inter pipeline
10.1% in step 14/15: generate inform6 -> auto.inf
5.6% in step 5/15: load-binary-kits
5.4% in step 6/15: make-synoptic-module
1.3% in step 9/15: make-identifiers-unique
0.3% in step 12/15: eliminate-redundant-operations
0.3% in step 4/15: compile-splats
0.3% in step 7/15: shorten-wiring
0.3% in step 8/15: detect-indirect-calls
0.1% in step 11/15: eliminate-redundant-labels
1.6% not specifically accounted for
2.5% in supervisor
0.2% not specifically accounted for
1.4% not specifically accounted for
2.3% in supervisor
0.4% not specifically accounted for

View file

@ -720,8 +720,8 @@ transferkits: forcetransferkits
.PHONY: forcetransferkits
forcetransferkits:
$(INBUILDX) -sync-to $(INTERNAL) -contents-of $(INFORM7WEB)/Internal/Inter
$(INBUILDX) -sync-to $(INTERNAL) -contents-of $(INFORM7WEB)/Internal/Pipelines
$(INBUILDX) -no-versions-in-filenames -sync-to $(INTERNAL) -contents-of $(INFORM7WEB)/Internal/Inter
$(INBUILDX) -no-versions-in-filenames -sync-to $(INTERNAL) -contents-of $(INFORM7WEB)/Internal/Pipelines
# -----------------------------------------------------------------------------
# Copying extensions into the app