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:
parent
f6077903dc
commit
40d642fa6b
|
@ -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
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 4 June 2022
|
||||
Build Number: 6V21
|
||||
Build Date: 6 June 2022
|
||||
Build Number: 6V22
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">❮</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">❯</a></li></ul></div>
|
||||
|
|
|
@ -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">§7</a><br/>Kit Manager - <a href="4-km.html#SP6">§6</a><br/>Language Manager - <a href="4-lm.html#SP6">§6</a><br/>Pipeline Manager - <a href="4-pm.html#SP6">§6</a><br/>Template Manager - <a href="4-tm.html#SP6">§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">§7</a><br/>Kit Manager - <a href="4-km.html#SP8">§8</a><br/>Language Manager - <a href="4-lm.html#SP6">§6</a><br/>Pipeline Manager - <a href="4-pm.html#SP6">§6</a><br/>Template Manager - <a href="4-tm.html#SP6">§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">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">);</span>
|
||||
<span class="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>
|
||||
|
|
|
@ -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">§7</a><br/>Kit Manager - <a href="4-km.html#SP6">§6</a><br/>Language Manager - <a href="4-lm.html#SP6">§6</a><br/>Pipeline Manager - <a href="4-pm.html#SP6">§6</a><br/>Template Manager - <a href="4-tm.html#SP6">§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">§7</a><br/>Kit Manager - <a href="4-km.html#SP8">§8</a><br/>Language Manager - <a href="4-lm.html#SP6">§6</a><br/>Pipeline Manager - <a href="4-pm.html#SP6">§6</a><br/>Template Manager - <a href="4-tm.html#SP6">§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">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">-></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">) &&</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">-></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">, &(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></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>
|
||||
|
|
|
@ -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">§6</a><br/>Kit Manager - <a href="4-km.html#SP5">§5</a><br/>Language Manager - <a href="4-lm.html#SP5">§5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">§5</a><br/>Template Manager - <a href="4-tm.html#SP5">§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">§6</a><br/>Kit Manager - <a href="4-km.html#SP7">§7</a><br/>Language Manager - <a href="4-lm.html#SP5">§5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">§5</a><br/>Template Manager - <a href="4-tm.html#SP5">§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">-></span><span class="element-syntax">nest</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -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">§6</a><br/>Kit Manager - <a href="4-km.html#SP5">§5</a><br/>Language Manager - <a href="4-lm.html#SP5">§5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">§5</a><br/>Template Manager - <a href="4-tm.html#SP5">§5</a><br/>Extension Services - <a href="5-es.html#SP16">§16</a><br/>Kit Services - <a href="5-ks.html#SP14">§14</a><br/>Inclusions - <a href="6-inc.html#SP5">§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">§6</a><br/>Kit Manager - <a href="4-km.html#SP7">§7</a><br/>Language Manager - <a href="4-lm.html#SP5">§5</a><br/>Pipeline Manager - <a href="4-pm.html#SP5">§5</a><br/>Template Manager - <a href="4-tm.html#SP5">§5</a><br/>Extension Services - <a href="5-es.html#SP16">§16</a><br/>Kit Services - <a href="5-ks.html#SP14">§14</a><br/>Inclusions - <a href="6-inc.html#SP5">§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">-></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">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -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">§1. Genre definition</a></li><li><a href="4-km.html#SP4">§4. Claiming</a></li><li><a href="4-km.html#SP5">§5. Searching</a></li><li><a href="4-km.html#SP6">§6. Copying</a></li><li><a href="4-km.html#SP7">§7. Build graph</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="4-km.html#SP1">§1. Genre definition</a></li><li><a href="4-km.html#SP4">§4. Claiming</a></li><li><a href="4-km.html#SP7">§7. Searching</a></li><li><a href="4-km.html#SP8">§8. Copying</a></li><li><a href="4-km.html#SP9">§9. Build graph</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§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">§5</a>, <a href="4-km.html#SP6">§6</a><br/>Kit Services - <a href="5-ks.html#SP12">§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">§7</a>, <a href="4-km.html#SP8">§8</a><br/>Kit Services - <a href="5-ks.html#SP12">§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">-></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">§7</a><br/>Kit Services - <a href="5-ks.html#SP7">§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">§9</a><br/>Kit Services - <a href="5-ks.html#SP7">§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">) && (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></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">-></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">§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">§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">§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"> >= </span><span class="constant-syntax">0</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">) == </span><span class="character-syntax">'K'</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">kitpos</span><span class="plain-syntax">+1) == </span><span class="character-syntax">'i'</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">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">) > </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>§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">§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">§4</a>, <a href="4-km.html#SP6">§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"><</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">) &&</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">) &&</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">) &&</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">) &&</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>§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">§4</a>, <a href="4-km.html#SP7">§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"> > </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>§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>§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">§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">§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">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">req</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></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">) && (</span><a href="2-rqr.html#SP7" class="function-link"><span class="function-syntax">Requirements::meets</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP6" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -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>§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>§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">§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">§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">-></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">-></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>§7. Build graph. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§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">§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">§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">-></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">§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">§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>
|
||||
|
|
|
@ -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">§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">§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">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue