mirror of
https://github.com/ganelson/inform.git
synced 2024-06-26 04:00:43 +03:00
Added -verbose to inbuild
This commit is contained in:
parent
004ceabc16
commit
28d28618e9
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6W51 'Krypton' (24 May 2023)
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6W52 'Krypton' (27 May 2023)
|
||||
|
||||
## About Inform
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 24 May 2023
|
||||
Build Number: 6W51
|
||||
Build Date: 27 May 2023
|
||||
Build Number: 6W52
|
||||
|
|
|
@ -151,14 +151,17 @@ error in this case.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">others_exist</span><span class="plain-syntax"> = </span><span class="constant-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">others_exist</span><span class="plain-syntax"> == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">D</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">D</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_path</span><span class="plain-syntax">) </span><a href="../supervisor-module/1-ic.html#SP18" class="function-link"><span class="function-syntax">Supervisor::set_I7_bundle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_path</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">D</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</span><span class="plain-syntax">) </span><a href="../supervisor-module/1-ic.html#SP17" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</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">D</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_path</span><span class="plain-syntax">) </span><a href="../supervisor-module/1-ic.html#SP21" class="function-link"><span class="function-syntax">Supervisor::set_I7_bundle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_path</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">D</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</span><span class="plain-syntax">) </span><a href="../supervisor-module/1-ic.html#SP20" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="../../../inweb/foundation-module/2-llas.html#SP7" class="function-link"><span class="function-syntax">LinkedLists::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">unsorted_nest_list</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">others_exist</span><span class="plain-syntax"> == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">D</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP12" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7/Internal"</span><span class="plain-syntax">), </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP8" class="function-link"><span class="function-syntax">Supervisor::optioneering_complete</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, &</span><a href="1-mn.html#SP2_6" class="function-link"><span class="function-syntax">Main::load_preform</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> ((</span><span class="identifier-syntax">others_exist</span><span class="plain-syntax"> == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">D</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(in absence of explicit -internal, inventing -internal %p)\n"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP17" class="function-link"><span class="function-syntax">Supervisor::default_internal_path</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP17" class="function-link"><span class="function-syntax">Supervisor::default_internal_path</span></a><span class="plain-syntax">(), </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP10" class="function-link"><span class="function-syntax">Supervisor::optioneering_complete</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">D</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, &</span><a href="1-mn.html#SP2_6" class="function-link"><span class="function-syntax">Main::load_preform</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="1-mn.html#SP2_7" class="function-link"><span class="function-syntax">Main::add_target</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
||||
|
@ -176,7 +179,7 @@ error in this case.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP10" class="function-link"><span class="function-syntax">Supervisor::go_operational</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP12" class="function-link"><span class="function-syntax">Supervisor::go_operational</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/7-tr.html#SP2" class="function-link"><span class="function-syntax">InbuildReport::install</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">to_install</span><span class="plain-syntax">, </span><span class="identifier-syntax">confirmed</span><span class="plain-syntax">, </span><span class="identifier-syntax">path_to_inbuild</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-mn.html#SP2">§2</a>.</li></ul>
|
||||
|
@ -188,7 +191,7 @@ that we want to start work now.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP10" class="function-link"><span class="function-syntax">Supervisor::go_operational</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP12" class="function-link"><span class="function-syntax">Supervisor::go_operational</span></a><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">use</span><span class="plain-syntax"> = </span><span class="constant-syntax">SHELL_METHODOLOGY</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">dry_run_mode</span><span class="plain-syntax">) </span><span class="identifier-syntax">use</span><span class="plain-syntax"> = </span><span class="constant-syntax">DRY_RUN_METHODOLOGY</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">build_methodology</span><span class="plain-syntax"> *</span><span class="identifier-syntax">BM</span><span class="plain-syntax">;</span>
|
||||
|
@ -286,7 +289,7 @@ following is run, Preform is ready for use.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Main::load_preform</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Main::load_preform</span></span>:<br/><a href="1-mn.html#SP2_2">§2.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../supervisor-module/1-ic.html#SP7" class="function-link"><span class="function-syntax">Supervisor::dash_internal_was_used</span></a><span class="plain-syntax">()) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../supervisor-module/1-ic.html#SP9" class="function-link"><span class="function-syntax">Supervisor::dash_internal_was_used</span></a><span class="plain-syntax">()) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><a href="../supervisor-module/5-ls.html#SP3" class="function-link"><span class="function-syntax">Languages::path_to_bundle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Syntax.preform"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="../words-module/4-lp.html#SP1" class="function-link"><span class="function-syntax">LoadPreform::load</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</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">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -347,7 +350,7 @@ the order in which filenames are read from a directory listing.
|
|||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP7" class="function-link"><span class="function-syntax">Errors::with_text</span></a><span class="plain-syntax">(</span><span class="string-syntax">"requirement malformed: %S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">errors</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><a href="../supervisor-module/1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><a href="../supervisor-module/1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><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">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="1-mn.html#SP2_7" class="function-link"><span class="function-syntax">Main::add_target</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||
|
@ -448,6 +451,8 @@ other options to the selection defined here.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESULTS_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTALL_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONFIRMED_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERBOSE_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERBOSITY_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.9</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
@ -516,7 +521,11 @@ other options to the selection defined here.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"write HTML report file to X (for use within Inform GUI apps)"</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">CONFIRMED_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"confirmed"</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">"confirm installation in the Inform GUI apps"</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::declare_options</span></a><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">VERBOSE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"verbose"</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">"equivalent to -verbosity=1"</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP6" class="function-link"><span class="function-syntax">CommandLine::declare_numerical_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">VERBOSITY_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"verbosity"</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">"how much explanation to print: lowest is 0 (default), highest is 3"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP6" class="function-link"><span class="function-syntax">Supervisor::declare_options</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP8" class="function-link"><span class="function-syntax">CommandLine::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">argc</span><span class="plain-syntax">, </span><span class="identifier-syntax">argv</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, &</span><a href="1-mn.html#SP3" class="function-link"><span class="function-syntax">Main::option</span></a><span class="plain-syntax">, &</span><a href="1-mn.html#SP4" class="function-link"><span class="function-syntax">Main::bareword</span></a><span class="plain-syntax">);</span>
|
||||
|
||||
|
@ -585,8 +594,10 @@ 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">INSTALL_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">to_install</span><span class="plain-syntax"> = </span><a href="1-mn.html#SP2_8" class="function-link"><span class="function-syntax">Main::file_or_path_to_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</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">RESULTS_CLSW:</span><span class="plain-syntax"> </span><a href="../supervisor-module/7-tr.html#SP1" class="function-link"><span class="function-syntax">InbuildReport::set_filename</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</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">CONFIRMED_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">confirmed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERBOSE_CLSW:</span><span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP2" class="function-link"><span class="function-syntax">Supervisor::set_verbosity</span></a><span class="plain-syntax">(1); </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">VERBOSITY_CLSW:</span><span class="plain-syntax"> </span><a href="../supervisor-module/1-ic.html#SP2" class="function-link"><span class="function-syntax">Supervisor::set_verbosity</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><a href="../supervisor-module/1-ic.html#SP9" 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>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>This is called for a command-line argument which doesn't appear as
|
||||
|
|
|
@ -89,6 +89,8 @@ and those not documented in this manual are covered in that one.
|
|||
<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">-verbose equivalent to -verbosity=1 (default is -no-verbose)</span>
|
||||
<span class="plain-syntax">-verbosity=N how much explanation to print: lowest is 0 (default), highest is 3</span>
|
||||
<span class="plain-syntax">-verify-registry X verify roster.json metadata of registry in the directory X</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>
|
||||
|
||||
|
|
|
@ -59,9 +59,30 @@ 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#1">Chapter 1: Setting Up</a></li><li><b>Inbuild Control</b></li></ul></div>
|
||||
<p class="purpose">Who shall supervise the supervisor? This section of code will.</p>
|
||||
|
||||
<ul class="toc"><li><a href="1-ic.html#SP1">§1. Phases</a></li><li><a href="1-ic.html#SP3">§3. Startup phase</a></li><li><a href="1-ic.html#SP4">§4. Configuration phase</a></li><li><a href="1-ic.html#SP8">§8. The Pretinkering, Tinkering, Nested and Projected phases</a></li><li><a href="1-ic.html#SP10">§10. The Graph Construction and Operational phases</a></li><li><a href="1-ic.html#SP11">§11. The nest list</a></li><li><a href="1-ic.html#SP17">§17. The shared project</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="1-ic.html#SP1">§1. Verbosity</a></li><li><a href="1-ic.html#SP3">§3. Phases</a></li><li><a href="1-ic.html#SP5">§5. Startup phase</a></li><li><a href="1-ic.html#SP6">§6. Configuration phase</a></li><li><a href="1-ic.html#SP10">§10. The Pretinkering, Tinkering, Nested and Projected phases</a></li><li><a href="1-ic.html#SP12">§12. The Graph Construction and Operational phases</a></li><li><a href="1-ic.html#SP13">§13. The nest list</a></li><li><a href="1-ic.html#SP20">§20. The shared project</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Phases. </b>The <a href="index.html" class="internal">supervisor</a> module provides services to the parent tool.
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Verbosity. </b>It is both a strength and a source of anxiety that build managers work in
|
||||
an autonomous sort of way, doing "whatever is necessary". Some users want
|
||||
silence while this happens, and others expect detailed explanations.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">supervisor_verbosity</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">define</span><span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="identifier-syntax">args</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">supervisor_verbosity</span><span class="plain-syntax"> >= </span><span class="identifier-syntax">level</span><span class="plain-syntax">) </span><span class="identifier-syntax">Writers::printf</span><span class="plain-syntax">(</span><span class="identifier-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">args</span><span class="plain-syntax">); \</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b></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">Supervisor::set_verbosity</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</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">level</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">level</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</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">level</span><span class="plain-syntax"> > </span><span class="constant-syntax">3</span><span class="plain-syntax">) </span><span class="identifier-syntax">level</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">supervisor_verbosity</span><span class="plain-syntax"> = </span><span class="identifier-syntax">level</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">level</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="string-syntax">"(Verbosity set to %d)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">level</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Phases. </b>The <a href="index.html" class="internal">supervisor</a> module provides services to the parent tool.
|
||||
</p>
|
||||
|
||||
<p class="commentary">This section defines how the parent communicates with us to get everything
|
||||
|
@ -82,7 +103,7 @@ at which time the parent can freely use its facilities.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">GRAPH_CONSTRUCTION_INBUILD_PHASE</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">OPERATIONAL_INBUILD_PHASE</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>We're going to use the following assertions to make sure we don't slip up.
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>We're going to use the following assertions to make sure we don't slip up.
|
||||
Some functions run only in some phases. Phases can be skipped, but not taken
|
||||
out of turn.
|
||||
</p>
|
||||
|
@ -97,12 +118,27 @@ out of turn.
|
|||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax"> = </span><span class="constant-syntax">STARTUP_INBUILD_PHASE</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::enter_phase</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</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">p</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"phases out of sequence"</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::enter_phase</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Supervisor::enter_phase</span></span>:<br/><a href="1-ic.html#SP5">§5</a>, <a href="1-ic.html#SP10">§10</a>, <a href="1-ic.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</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">SVEXPLAIN</span><span class="plain-syntax">(2, </span><span class="string-syntax">"(Supervisor phase %d: %S -> %d: %S)\n"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax">, </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::phase_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax">), </span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::phase_name</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">inbuild_phase</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">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::phase_name</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</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">switch</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">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">STARTUP_INBUILD_PHASE:</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="string-syntax">"startup"</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">CONFIGURATION_INBUILD_PHASE:</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="string-syntax">"configuration"</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">PRETINKERING_INBUILD_PHASE:</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="string-syntax">"pretinkering"</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">TINKERING_INBUILD_PHASE:</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="string-syntax">"tinkering"</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">NESTED_INBUILD_PHASE:</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="string-syntax">"nested"</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">TARGETED_INBUILD_PHASE:</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="string-syntax">"targeted"</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">GRAPH_CONSTRUCTION_INBUILD_PHASE:</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="string-syntax">"graphing"</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">OPERATIONAL_INBUILD_PHASE:</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="string-syntax">"operational"</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">I</span><span class="string-syntax">"<unknown phase>"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Startup phase. </b>The following is called when the <a href="index.html" class="internal">supervisor</a> module starts up.
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. Startup phase. </b>The following is called when the <a href="index.html" class="internal">supervisor</a> module starts up.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -115,7 +151,7 @@ out of turn.
|
|||
<span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project_file_genre</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">inbuild_genre</span><span class="plain-syntax"> *</span><span class="identifier-syntax">template_genre</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Supervisor::start</span></span>:<br/>Supervisor Module - <a href="1-sm.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::start</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">Supervisor::start</span></span>:<br/>Supervisor Module - <a href="1-sm.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="4-em.html#SP2" class="function-link"><span class="function-syntax">ExtensionManager::start</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="4-ebm.html#SP1" class="function-link"><span class="function-syntax">ExtensionBundleManager::start</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="4-km.html#SP1" class="function-link"><span class="function-syntax">KitManager::start</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -132,11 +168,11 @@ out of turn.
|
|||
|
||||
<span class="plain-syntax"> </span><a href="6-cs.html#SP5" class="function-link"><span class="function-syntax">ControlStructures::create_standard</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax"> = </span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP5" class="function-link"><span class="function-syntax">Supervisor::set_defaults</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP7" class="function-link"><span class="function-syntax">Supervisor::set_defaults</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Configuration phase. </b>Initially, then, we are in the configuration phase. When the parent defines
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Configuration phase. </b>Initially, then, we are in the configuration phase. When the parent defines
|
||||
its command-line options, we expect it to call <span class="extract"><span class="extract-syntax">Supervisor::declare_options</span></span>
|
||||
so that we can define further options — this provides the large set of
|
||||
common options found in both <span class="extract"><span class="extract-syntax">inform7</span></span> and <span class="extract"><span class="extract-syntax">inbuild</span></span>, our two possible parents.
|
||||
|
@ -145,12 +181,12 @@ common options found in both <span class="extract"><span class="extract-syntax">
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::declare_options</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Declare Inform-related options</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP4_4" class="named-paragraph-link"><span class="named-paragraph">Declare resource-related options</span><span class="named-paragraph-number">4.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP4_6" class="named-paragraph-link"><span class="named-paragraph">Declare Inter-related options</span><span class="named-paragraph-number">4.6</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Declare Inform-related options</span><span class="named-paragraph-number">6.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP6_4" class="named-paragraph-link"><span class="named-paragraph">Declare resource-related options</span><span class="named-paragraph-number">6.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP6_6" class="named-paragraph-link"><span class="named-paragraph">Declare Inter-related options</span><span class="named-paragraph-number">6.6</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>§4.1. </b>These options all predate the 2015-20 reworking of the compiler, and their
|
||||
<p class="commentary firstcommentary"><a id="SP6_1" class="paragraph-anchor"></a><b>§6.1. </b>These options all predate the 2015-20 reworking of the compiler, and their
|
||||
names are a series of historical accidents. <span class="extract"><span class="extract-syntax">-format</span></span> in particular works in
|
||||
a clunky sort of way and should perhaps be deprecated in favour of some
|
||||
better way to choose a virtual machine to compile to.
|
||||
|
@ -168,7 +204,7 @@ better way to choose a virtual machine to compile to.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">RNG_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">CASE_CLSW</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4_2" class="paragraph-anchor"></a><b>§4.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Declare Inform-related options</span><span class="named-paragraph-number">4.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP6_2" class="paragraph-anchor"></a><b>§6.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Declare Inform-related options</span><span class="named-paragraph-number">6.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -195,8 +231,8 @@ better way to choose a virtual machine to compile to.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"make any source links refer to the source in extension example X"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::end_group</span><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_3" class="paragraph-anchor"></a><b>§4.3. </b>Again, except for <span class="extract"><span class="extract-syntax">-nest</span></span>, these go back to the mid-2010s.
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP6">§6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6_3" class="paragraph-anchor"></a><b>§6.3. </b>Again, except for <span class="extract"><span class="extract-syntax">-nest</span></span>, these go back to the mid-2010s.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">INBUILD_RESOURCES_CLSG</span>
|
||||
|
@ -205,7 +241,7 @@ better way to choose a virtual machine to compile to.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXTERNAL_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">TRANSIENT_CLSW</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4_4" class="paragraph-anchor"></a><b>§4.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Declare resource-related options</span><span class="named-paragraph-number">4.4</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP6_4" class="paragraph-anchor"></a><b>§6.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Declare resource-related options</span><span class="named-paragraph-number">6.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -220,8 +256,8 @@ better way to choose a virtual machine to compile to.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"use X for transient data such as the extensions census"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::end_group</span><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_5" class="paragraph-anchor"></a><b>§4.5. </b>These are all new in 2020. They are not formally shared with the <span class="extract"><span class="extract-syntax">inter</span></span> tool,
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP6">§6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6_5" class="paragraph-anchor"></a><b>§6.5. </b>These are all new in 2020. They are not formally shared with the <span class="extract"><span class="extract-syntax">inter</span></span> tool,
|
||||
but <span class="extract"><span class="extract-syntax">-pipeline-file</span></span> and <span class="extract"><span class="extract-syntax">-variable</span></span> have the same effect as they would there.
|
||||
</p>
|
||||
|
||||
|
@ -231,7 +267,7 @@ but <span class="extract"><span class="extract-syntax">-pipeline-file</span></sp
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PIPELINE_FILE_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PIPELINE_VARIABLE_CLSW</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4_6" class="paragraph-anchor"></a><b>§4.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Declare Inter-related options</span><span class="named-paragraph-number">4.6</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP6_6" class="paragraph-anchor"></a><b>§6.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Declare Inter-related options</span><span class="named-paragraph-number">6.6</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -246,8 +282,8 @@ but <span class="extract"><span class="extract-syntax">-pipeline-file</span></sp
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"set pipeline variable X (in form name=value)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::end_group</span><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>Use of the above options will cause the following global variables to be
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP6">§6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>Use of the above options will cause the following global variables to be
|
||||
set appropriately.
|
||||
</p>
|
||||
|
||||
|
@ -263,15 +299,15 @@ set appropriately.
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">repair_mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">; </span><span class="comment-syntax"> Automatically fix missing or damaged extension metadata</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rng_seed_at_start_of_play</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="comment-syntax"> The seed value, or 0 if not seeded</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_defaults</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">Supervisor::set_defaults</span></span>:<br/><a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_defaults</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">Supervisor::set_defaults</span></span>:<br/><a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_INBUILD_PHASE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">PIPELINE_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pipeline_vars</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ParsingPipelines::basic_dictionary</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"output.ulx"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP6" class="function-link"><span class="function-syntax">Supervisor::set_inter_pipeline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"compile"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP8" class="function-link"><span class="function-syntax">Supervisor::set_inter_pipeline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"compile"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>The pipeline name can be set not only here but also by <span class="extract"><span class="extract-syntax">inform7</span></span> much
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b>The pipeline name can be set not only here but also by <span class="extract"><span class="extract-syntax">inform7</span></span> much
|
||||
later on (way past the configuration stage), if it reads a sentence like:
|
||||
</p>
|
||||
|
||||
|
@ -282,13 +318,14 @@ later on (way past the configuration stage), if it reads a sentence like:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inter_pipeline_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_inter_pipeline</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">Supervisor::set_inter_pipeline</span></span>:<br/><a href="1-ic.html#SP5">§5</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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_inter_pipeline</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">Supervisor::set_inter_pipeline</span></span>:<br/><a href="1-ic.html#SP7">§7</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="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">inter_pipeline_name</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">inter_pipeline_name</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="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">Str::clear</span><span class="plain-syntax">(</span><span class="identifier-syntax">inter_pipeline_name</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">inter_pipeline_name</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(inter pipeline name set to %S)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</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. </b>The <a href="index.html" class="internal">supervisor</a> module itself doesn't parse command-line options: that's for
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b>The <a href="index.html" class="internal">supervisor</a> module itself doesn't parse command-line options: that's for
|
||||
the parent to do, using code from Foundation. When the parent finds an option
|
||||
it doesn't know about, that will be one of ours, so it should call the following:
|
||||
</p>
|
||||
|
@ -303,12 +340,12 @@ it doesn't know about, that will be one of ours, so it should call the following
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">FORMAT_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">output_format</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</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">RELEASE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_is_a_release_compile</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">NEST_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP12" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><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="constant-syntax">GENERIC_NEST_TAG</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><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="constant-syntax">GENERIC_NEST_TAG</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">INTERNAL_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dash_internal_used</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP12" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><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="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><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="constant-syntax">INTERNAL_NEST_TAG</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">EXTERNAL_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP12" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><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="constant-syntax">EXTERNAL_NEST_TAG</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><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="constant-syntax">EXTERNAL_NEST_TAG</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">TRANSIENT_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_transient_resources</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="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">BASIC_CLSW:</span><span class="plain-syntax"> </span><a href="5-ps2.html#SP22" class="function-link"><span class="function-syntax">Projects::enter_forcible_basic_mode</span></a><span class="plain-syntax">(); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
@ -317,13 +354,13 @@ it doesn't know about, that will be one of ours, so it should call the following
|
|||
<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">PROJECT_CLSW:</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-ic.html#SP18" class="function-link"><span class="function-syntax">Supervisor::set_I7_bundle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</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><a href="1-ic.html#SP21" class="function-link"><span class="function-syntax">Supervisor::set_I7_bundle</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</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">Errors::fatal_with_text</span><span class="plain-syntax">(</span><span class="string-syntax">"can't specify the project twice: '%S'"</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">break</span><span class="plain-syntax">;</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">SOURCE_CLSW:</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">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::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="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="1-ic.html#SP17" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</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><a href="1-ic.html#SP20" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</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">Errors::fatal_with_text</span><span class="plain-syntax">(</span><span class="string-syntax">"can't specify the source file twice: '%S'"</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">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -331,8 +368,8 @@ it doesn't know about, that will be one of ours, so it should call the following
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">CENSUS_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">census_mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PIPELINE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_pipeline_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</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">PIPELINE_FILE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_pipeline_file</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</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">PIPELINE_VARIABLE_CLSW:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Set a pipeline variable</span><span class="named-paragraph-number">7.1</span></a></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">RNG_CLSW:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">Seed the random number generator</span><span class="named-paragraph-number">7.2</span></a></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">PIPELINE_VARIABLE_CLSW:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP9_1" class="named-paragraph-link"><span class="named-paragraph">Set a pipeline variable</span><span class="named-paragraph-number">9.1</span></a></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">RNG_CLSW:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP9_2" class="named-paragraph-link"><span class="named-paragraph">Seed the random number generator</span><span class="named-paragraph-number">9.2</span></a></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">CASE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">SourceLinks::set_case</span><span class="plain-syntax">(</span><span class="identifier-syntax">arg</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>
|
||||
|
@ -341,11 +378,11 @@ it doesn't know about, that will be one of ours, so it should call the following
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">dash_internal_used</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>§7.1. </b>Note that the following has no effect unless the <a href="../pipeline-module/index.html" class="internal">pipeline</a> module is part
|
||||
<p class="commentary firstcommentary"><a id="SP9_1" class="paragraph-anchor"></a><b>§9.1. </b>Note that the following has no effect unless the <a href="../pipeline-module/index.html" class="internal">pipeline</a> module is part
|
||||
of the parent. In practice, that will be true for <span class="extract"><span class="extract-syntax">inform7</span></span> but not <span class="extract"><span class="extract-syntax">inbuild</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set a pipeline variable</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set a pipeline variable</span><span class="named-paragraph-number">9.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -363,20 +400,20 @@ of the parent. In practice, that will be true for <span class="extract"><span cl
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Regexp::dispose_of</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP7">§7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>§7.2. </b>16339 is a well-known prime number for use in 16-bit random number algorithms,
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9_2" class="paragraph-anchor"></a><b>§9.2. </b>16339 is a well-known prime number for use in 16-bit random number algorithms,
|
||||
such as the one used in the Z-machine VM. It works fine in 32-bit cases too.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Seed the random number generator</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Seed the random number generator</span><span class="named-paragraph-number">9.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">val</span><span class="plain-syntax">) </span><span class="identifier-syntax">rng_seed_at_start_of_play</span><span class="plain-syntax"> = -16339;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">rng_seed_at_start_of_play</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP7">§7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. The Pretinkering, Tinkering, Nested and Projected phases. </b>Once the tool has finished with the command line, it should call this
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP9">§9</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. The Pretinkering, Tinkering, Nested and Projected phases. </b>Once the tool has finished with the command line, it should call this
|
||||
function. Inbuild rapidly runs through the next few phases as it does so.
|
||||
From the "nested" phase, the final list of nests in the search path for
|
||||
finding kits, extensions and so on exists; from the "targeted" phase,
|
||||
|
@ -398,31 +435,31 @@ which continues until the parent calls <span class="extract"><span class="extrac
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::optioneering_complete</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">compile_only</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">preform_callback</span><span class="plain-syntax">)(</span><span class="reserved-syntax">inform_language</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">CONFIGURATION_INBUILD_PHASE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax"> = </span><span class="constant-syntax">PRETINKERING_INBUILD_PHASE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PRETINKERING_INBUILD_PHASE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_preform_callback</span><span class="plain-syntax"> = </span><span class="identifier-syntax">preform_callback</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Find the virtual machine</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP19" class="function-link"><span class="function-syntax">Supervisor::make_project_from_command_line</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ic.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Find the virtual machine</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP22" class="function-link"><span class="function-syntax">Supervisor::make_project_from_command_line</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP12" class="function-link"><span class="function-syntax">Supervisor::create_default_externals</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax"> = </span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP13" class="function-link"><span class="function-syntax">Supervisor::sort_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::create_default_externals</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP15" class="function-link"><span class="function-syntax">Supervisor::sort_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax"> = </span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ps2.html#SP18" class="function-link"><span class="function-syntax">Projects::set_compilation_options</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">this_is_a_release_compile</span><span class="plain-syntax">, </span><span class="identifier-syntax">compile_only</span><span class="plain-syntax">, </span><span class="identifier-syntax">rng_seed_at_start_of_play</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax"> = </span><span class="constant-syntax">TARGETED_INBUILD_PHASE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">TARGETED_INBUILD_PHASE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8_1" class="paragraph-anchor"></a><b>§8.1. </b>The VM to be used depends on the settings of all three of <span class="extract"><span class="extract-syntax">-format</span></span>,
|
||||
<p class="commentary firstcommentary"><a id="SP10_1" class="paragraph-anchor"></a><b>§10.1. </b>The VM to be used depends on the settings of all three of <span class="extract"><span class="extract-syntax">-format</span></span>,
|
||||
<span class="extract"><span class="extract-syntax">-release</span></span> and <span class="extract"><span class="extract-syntax">-debug</span></span>, and those can be given in any order at the command
|
||||
line, which is why we couldn't work this out earlier:
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Find the virtual machine</span><span class="named-paragraph-number">8.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Find the virtual machine</span><span class="named-paragraph-number">10.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -432,24 +469,25 @@ line, which is why we couldn't work this out earlier:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">with_debugging</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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">ext</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"Inform6"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TargetVMs::find_with_hint</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</span><span class="plain-syntax">, </span><span class="identifier-syntax">with_debugging</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP9" class="function-link"><span class="function-syntax">Supervisor::set_current_vm</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP11" class="function-link"><span class="function-syntax">Supervisor::set_current_vm</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">VM</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">VM</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"unrecognised compilation format"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b></p>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ic.html#SP10">§10</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">current_target_VM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::current_vm</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">Supervisor::current_vm</span></span>:<br/>Project Services - <a href="5-ps2.html#SP31">§31</a>, <a href="5-ps2.html#SP33_1">§33.1</a><br/>Source Text - <a href="6-st.html#SP3">§3</a><br/>Headings - <a href="6-hdn.html#SP13">§13</a><br/>Inclusions - <a href="6-inc.html#SP6_1">§6.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::current_vm</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">Supervisor::current_vm</span></span>:<br/>Project Services - <a href="5-ps2.html#SP31">§31</a>, <a href="5-ps2.html#SP33_1">§33.1</a><br/>Source Text - <a href="6-st.html#SP3">§3</a><br/>Headings - <a href="6-hdn.html#SP13">§13</a><br/>Inclusions - <a href="6-inc.html#SP6_1">§6.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</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">current_target_VM</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">Supervisor::set_current_vm</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">Supervisor::set_current_vm</span></span>:<br/><a href="1-ic.html#SP8_1">§8.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_current_vm</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">Supervisor::set_current_vm</span></span>:<br/><a href="1-ic.html#SP10_1">§10.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</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">PRETINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_target_VM</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VM</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(target VM set to %S)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TargetVMs::get_full_format_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">VM</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. The Graph Construction and Operational phases. </b><span class="extract"><span class="extract-syntax">inbuild</span></span> is now in the Targeted phase, then, meaning that the parent has
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. The Graph Construction and Operational phases. </b><span class="extract"><span class="extract-syntax">inbuild</span></span> is now in the Targeted phase, then, meaning that the parent has
|
||||
called <span class="extract"><span class="extract-syntax">Supervisor::optioneering_complete</span></span> and has been making further
|
||||
preparations of its own. (For example, it could attach further kit
|
||||
dependencies to the shared project.) The parent has one further duty to
|
||||
|
@ -464,13 +502,13 @@ We do that copy by copy.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::go_operational</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TARGETED_INBUILD_PHASE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_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><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">GRAPH_CONSTRUCTION_INBUILD_PHASE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cps.html#SP9" class="function-link"><span class="function-syntax">Copies::graph_everything</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_phase</span><span class="plain-syntax"> = </span><span class="constant-syntax">OPERATIONAL_INBUILD_PHASE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP4" class="function-link"><span class="function-syntax">Supervisor::enter_phase</span></a><span class="plain-syntax">(</span><span class="constant-syntax">OPERATIONAL_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">census_mode</span><span class="plain-syntax">) </span><a href="7-tm.html#SP2" class="function-link"><span class="function-syntax">ExtensionWebsite::handle_census_mode</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. The nest list. </b>Nests are directories which hold resources to be used by the Intools, and
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. The nest list. </b>Nests are directories which hold resources to be used by the Intools, and
|
||||
one of Inbuild's main roles is to search and manage nests. All nests can
|
||||
hold extensions, kits, language definitions, and so on.
|
||||
</p>
|
||||
|
@ -494,7 +532,7 @@ list contains no Materials folders; each individual project has its own
|
|||
search list of nests which contains its own Materials and then the shared
|
||||
list from there on.
|
||||
</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. </b>Inform customarily has exactly one <span class="extract"><span class="extract-syntax">-internal</span></span> and one <span class="extract"><span class="extract-syntax">-external</span></span> nest,
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. </b>Inform customarily has exactly one <span class="extract"><span class="extract-syntax">-internal</span></span> and one <span class="extract"><span class="extract-syntax">-external</span></span> nest,
|
||||
but in fact any number of each is allowed, including none. However, the
|
||||
first to be declared are used by the compiler as "the" internal and external
|
||||
nests, respectively.
|
||||
|
@ -508,22 +546,27 @@ nests, respectively.
|
|||
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::add_nest</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">Supervisor::add_nest</span></span>:<br/><a href="1-ic.html#SP7">§7</a><br/>Project Services - <a href="5-ps2.html#SP2">§2</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tag</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::add_nest</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">Supervisor::add_nest</span></span>:<br/><a href="1-ic.html#SP9">§9</a><br/>Project Services - <a href="5-ps2.html#SP2">§2</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tag</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_BEFORE_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_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">unsorted_nest_list</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">unsorted_nest_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</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><a href="2-nst.html#SP1" class="function-link"><span class="function-syntax">Nests::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::set_tag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">tag</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">set_shared</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">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">unsorted_nest_list</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">tag</span><span class="plain-syntax"> == </span><span class="constant-syntax">EXTERNAL_NEST_TAG</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_external_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">tag</span><span class="plain-syntax"> == </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_internal_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">tag</span><span class="plain-syntax"> == </span><span class="constant-syntax">EXTERNAL_NEST_TAG</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">; </span><span class="identifier-syntax">set_shared</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">tag</span><span class="plain-syntax"> == </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax"> = </span><span class="identifier-syntax">N</span><span class="plain-syntax">; </span><span class="identifier-syntax">set_shared</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tag</span><span class="plain-syntax"> == </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">) </span><a href="2-nst.html#SP3" class="function-link"><span class="function-syntax">Nests::protect</span></a><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">SVEXPLAIN</span><span class="plain-syntax">(2, </span><span class="string-syntax">"(%S%S nest set at %p)\n"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">set_shared</span><span class="plain-syntax">)?</span><span class="identifier-syntax">I</span><span class="string-syntax">"shared "</span><span class="plain-syntax">:</span><span class="identifier-syntax">I</span><span class="string-syntax">""</span><span class="plain-syntax">, </span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::tag_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tag</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">return</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::create_default_externals</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">Supervisor::create_default_externals</span></span>:<br/><a href="1-ic.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::create_default_externals</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">Supervisor::create_default_externals</span></span>:<br/><a href="1-ic.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_BEFORE_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">shared_external_nest</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">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
|
@ -536,16 +579,18 @@ nests, respectively.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">SF</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</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">I</span><span class="string-syntax">"Inform"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP12" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">EXTERNAL_NEST_TAG</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(in absence of explicit -external, inventing -external %p)\n"</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">SVEXPLAIN</span><span class="plain-syntax">(2, </span><span class="string-syntax">"(because home path, according to environment variable HOME, is %p)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">home_path</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="constant-syntax">EXTERNAL_NEST_TAG</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. </b>It is then sorted in tag order:
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. </b>It is then sorted in tag order:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::sort_nest_list</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">Supervisor::sort_nest_list</span></span>:<br/><a href="1-ic.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::sort_nest_list</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">Supervisor::sort_nest_list</span></span>:<br/><a href="1-ic.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_INBUILD_PHASE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</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>
|
||||
|
@ -561,13 +606,27 @@ nests, respectively.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">unsorted_nest_list</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::get_tag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">) == </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP15" class="function-link"><span class="function-syntax">Supervisor::report_nest_list</span></a><span class="plain-syntax">(2, </span><span class="identifier-syntax">I</span><span class="string-syntax">"unsorted"</span><span class="plain-syntax">, </span><span class="identifier-syntax">unsorted_nest_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP15" class="function-link"><span class="function-syntax">Supervisor::report_nest_list</span></a><span class="plain-syntax">(1, </span><span class="identifier-syntax">I</span><span class="string-syntax">"shared"</span><span class="plain-syntax">, </span><span class="identifier-syntax">shared_nest_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(shared internal nest: %p)\n"</span><span class="plain-syntax">, </span><a href="2-nst.html#SP4" class="function-link"><span class="function-syntax">Nests::get_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(shared external nest: %p)\n"</span><span class="plain-syntax">, </span><a href="2-nst.html#SP4" class="function-link"><span class="function-syntax">Nests::get_location</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">shared_external_nest</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">Supervisor::report_nest_list</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="string-syntax">"(%S nest list:"</span><span class="plain-syntax">, </span><span class="identifier-syntax">desc</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">LinkedLists::len</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">SVEXPLAIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="string-syntax">" empty)\n"</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_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">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="string-syntax">"\n %S %p"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::tag_name</span></a><span class="plain-syntax">(</span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::get_tag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">)), </span><a href="2-nst.html#SP4" class="function-link"><span class="function-syntax">Nests::get_location</span></a><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">SVEXPLAIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="string-syntax">")\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. </b>And the rest of Inform or Inbuild can now use:
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. </b>And the rest of Inform or Inbuild can now use:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::shared_nest_list</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">Supervisor::shared_nest_list</span></span>:<br/>Incremental Building - <a href="3-ib.html#SP7">§7</a><br/>Extension Services - <a href="5-es.html#SP7">§7</a><br/>Project Services - <a href="5-ps2.html#SP7">§7</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a><br/>Census - <a href="7-cns.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::shared_nest_list</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">Supervisor::shared_nest_list</span></span>:<br/>Incremental Building - <a href="3-ib.html#SP7">§7</a><br/>Extension Services - <a href="5-es.html#SP7">§7</a><br/>Project Services - <a href="5-ps2.html#SP7">§7</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a><br/>Census - <a href="7-cns.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_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">shared_nest_list</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">"nest list never sorted"</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">shared_nest_list</span><span class="plain-syntax">;</span>
|
||||
|
@ -578,31 +637,40 @@ nests, respectively.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::external</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">Supervisor::external</span></span>:<br/>Project Services - <a href="5-ps2.html#SP36_1">§36.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::external</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">Supervisor::external</span></span>:<br/>Project Services - <a href="5-ps2.html#SP36_1">§36.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_INBUILD_PHASE</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">shared_external_nest</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. </b>This tells the <a href="../html-module/index.html" class="internal">html</a> module where to find, say, CSS files. Those files
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. </b>This is the default location for internal resources, to be used if there is
|
||||
no better indication of where they are.
|
||||
</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">Supervisor::default_internal_path</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">Supervisor::default_internal_path</span></span>:<br/><a href="1-ic.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Pathnames::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7/Internal"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>This tells the <a href="../html-module/index.html" class="internal">html</a> module where to find, say, CSS files. Those files
|
||||
are not managed by <a href="../inbuild/index.html" class="internal">inbuild</a>, have no versions, or anything fancy: they're
|
||||
just plain old files.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">INSTALLED_FILES_HTML_CALLBACK</span><span class="plain-syntax"> </span><a href="1-ic.html#SP15" class="function-link"><span class="function-syntax">Supervisor::installed_files</span></a>
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">INSTALLED_FILES_HTML_CALLBACK</span><span class="plain-syntax"> </span><a href="1-ic.html#SP18" class="function-link"><span class="function-syntax">Supervisor::installed_files</span></a>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::installed_files</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">shared_internal_nest</span><span class="plain-syntax">-></span><span class="element-syntax">location</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::from_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"inform7/Internal"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-ic.html#SP17" class="function-link"><span class="function-syntax">Supervisor::default_internal_path</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. </b>As noted above, the transient area is used for ephemera such as dynamically
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>As noted above, the transient area is used for ephemera such as dynamically
|
||||
written documentation and telemetry files. <span class="extract"><span class="extract-syntax">-transient</span></span> sets it, but otherwise
|
||||
the external nest is used.
|
||||
</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">Supervisor::transient</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">Supervisor::transient</span></span>:<br/>Project Services - <a href="5-ps2.html#SP6">§6</a><br/>The Mini-Website - <a href="7-tm.html#SP3">§3</a><br/>Dictionary - <a href="7-dct.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::transient</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Supervisor::transient</span></span>:<br/>Project Services - <a href="5-ps2.html#SP6">§6</a><br/>The Mini-Website - <a href="7-tm.html#SP3">§3</a><br/>Dictionary - <a href="7-dct.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">TINKERING_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">shared_transient_resources</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">shared_external_nest</span><span class="plain-syntax">)</span>
|
||||
|
@ -610,14 +678,14 @@ the external nest is used.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">shared_transient_resources</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. The shared project. </b>In any single run, each of the Inform tools concerns itself with a single
|
||||
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>§20. The shared project. </b>In any single run, each of the Inform tools concerns itself with a single
|
||||
Inform 7 program. This can be presented to it either in a project bundle
|
||||
(a directory which contains source, settings, space for an index and for
|
||||
temporary build files), or as a single file (just a text file containing
|
||||
source text).
|
||||
</p>
|
||||
|
||||
<p class="commentary">It is also possible o set a folder to be the project bundle, and nevertheless
|
||||
<p class="commentary">It is also possible to set a folder to be the project bundle, and nevertheless
|
||||
specify a file somewhere else to be the source text. What you can't do is
|
||||
specify the bundle twice, or specify the file twice.
|
||||
</p>
|
||||
|
@ -626,14 +694,15 @@ specify the bundle twice, or specify the file twice.
|
|||
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project_bundle_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_source</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">Supervisor::set_I7_source</span></span>:<br/><a href="1-ic.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_source</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_source</span></span>:<br/><a href="1-ic.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_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">project_file_request</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(set project source file to: %f)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">project_file_request</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>If we are given a <span class="extract"><span class="extract-syntax">-project</span></span> on the command line, we can then work out
|
||||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. </b>If we are given a <span class="extract"><span class="extract-syntax">-project</span></span> on the command line, we can then work out
|
||||
where its Materials folder is, and therefore where any expert settings files
|
||||
would be. Note that the name of the expert settings file depends on the name
|
||||
of the parent, i.e., it will be <span class="extract"><span class="extract-syntax">inform7-settings.txt</span></span> or <span class="extract"><span class="extract-syntax">inbuild-settings.txt</span></span>
|
||||
|
@ -641,22 +710,27 @@ depending on who's asking.
|
|||
</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">Supervisor::set_I7_bundle</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_bundle</span></span>:<br/><a href="1-ic.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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::set_I7_bundle</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Supervisor::set_I7_bundle</span></span>:<br/><a href="1-ic.html#SP9">§9</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">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFIGURATION_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">project_bundle_request</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">project_bundle_request</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">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(set project bundle path to: %p)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">project_bundle_request</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">materials</span><span class="plain-syntax"> = </span><a href="5-ps2.html#SP4" class="function-link"><span class="function-syntax">Projects::materialise_pathname</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Pathnames::up</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</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="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="string-syntax">"%s-settings.txt"</span><span class="plain-syntax">, </span><span class="identifier-syntax">PROGRAM_NAME</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">expert_settings</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">materials</span><span class="plain-syntax">, </span><span class="identifier-syntax">leaf</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">expert_settings</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">expert_settings</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(reading further command-line settings from: %f)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">expert_settings</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CommandLine::also_read_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">expert_settings</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(2, </span><span class="string-syntax">"(no command-line settings file is present at %f)\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>This is a deceptively simple-looking function, which took a lot of time
|
||||
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>§22. </b>This is a deceptively simple-looking function, which took a lot of time
|
||||
to get right. The situation is that the parent tool may already have
|
||||
identified a copy <span class="extract"><span class="extract-syntax">C</span></span> to be the main Inform project of this run, or it may not.
|
||||
If it has, we ignore <span class="extract"><span class="extract-syntax">-project</span></span> but apply <span class="extract"><span class="extract-syntax">-source</span></span> to change its source text
|
||||
|
@ -667,21 +741,29 @@ location. If it hasn't, we create a project using <span class="extract"><span cl
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chosen_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::make_project_from_command_line</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Supervisor::make_project_from_command_line</span></span>:<br/><a href="1-ic.html#SP8">§8</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Supervisor::make_project_from_command_line</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Supervisor::make_project_from_command_line</span></span>:<br/><a href="1-ic.html#SP10">§10</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="identifier-syntax">RUN_ONLY_IN_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">PRETINKERING_INBUILD_PHASE</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">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> result of </span><span class="extract"><span class="extract-syntax">-source</span></span><span class="comment-syntax"> at the command line</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">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> result of </span><span class="extract"><span class="extract-syntax">-project</span></span><span class="comment-syntax"> at the command line</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">project_bundle_request</span><span class="plain-syntax">) </span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">project_bundle_request</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">project_file_request</span><span class="plain-syntax">) </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">project_file_request</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">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-pbm.html#SP3" class="function-link"><span class="function-syntax">ProjectBundleManager::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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"No such Inform project directory"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-pfm.html#SP3" class="function-link"><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"No such Inform source file"</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="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="element-syntax">location_if_path</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(project identified by parent tool: %p)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_path</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(project identified by parent tool: %f)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(project identified by -project: %p)\n"</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">C</span><span class="plain-syntax"> = </span><a href="4-pbm.html#SP3" class="function-link"><span class="function-syntax">ProjectBundleManager::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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"No such Inform project directory"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(project identified by -source: %f)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-pfm.html#SP3" class="function-link"><span class="function-syntax">ProjectFileManager::claim_file_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"No such Inform source file"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(no designated project)\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax"> = </span><a href="5-ps2.html#SP8" class="function-link"><span class="function-syntax">Projects::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
|
@ -689,12 +771,14 @@ location. If it hasn't, we create a project using <span class="extract"><span cl
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ps2.html#SP9" class="function-link"><span class="function-syntax">Projects::set_primary_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-ps2.html#SP31" class="function-link"><span class="function-syntax">Projects::set_primary_output</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">transpiled_output_file</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">transpiled_output_file</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SVEXPLAIN</span><span class="plain-syntax">(1, </span><span class="string-syntax">"(transpiled output redirected to: %f)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">transpiled_output_file</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">chosen_project</span><span class="plain-syntax"> = </span><span class="identifier-syntax">proj</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::project_set_at_command_line</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Supervisor::project_set_at_command_line</span></span>:<br/>The Report - <a href="7-tr.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Supervisor::project_set_at_command_line</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Supervisor::project_set_at_command_line</span></span>:<br/>The Report - <a href="7-tr.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">chosen_project</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -151,7 +151,7 @@ which use this module:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Writers::register_writer</span><span class="plain-syntax">(</span><span class="character-syntax">'J'</span><span class="plain-syntax">, &</span><a href="5-ls.html#SP4" class="function-link"><span class="function-syntax">Languages::log</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Log::declare_aspect</span><span class="plain-syntax">(</span><span class="constant-syntax">EXTENSIONS_CENSUS_DA</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"extensions census"</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</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">Log::declare_aspect</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADINGS_DA</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"headings"</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP3" class="function-link"><span class="function-syntax">Supervisor::start</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP5" class="function-link"><span class="function-syntax">Supervisor::start</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-sm.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Declare the tree annotations</span><span class="named-paragraph-number">3.2</span></a></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">SupervisorModule::end</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -91,7 +91,7 @@ stored here.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure inbuild_copy is accessed in 2/ce, 2/nst, 2/jm, 3/bg, 3/ib, 3/bs2, 3/is, 3/is2, 3/is3, 3/is4, 4/em, 4/ebm, 4/km, 4/lm, 4/pm, 4/pbm, 4/pfm, 4/tm, 5/es, 5/ks, 5/ls, 5/ps2, 6/st, 6/hdn, 6/inc, 7/dct, 7/cns, 7/ip, 7/ip2, 7/tr and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure inbuild_copy is accessed in 1/ic, 2/ce, 2/nst, 2/jm, 3/bg, 3/ib, 3/bs2, 3/is, 3/is2, 3/is3, 3/is4, 4/em, 4/ebm, 4/km, 4/lm, 4/pm, 4/pbm, 4/pfm, 4/tm, 5/es, 5/ks, 5/ls, 5/ps2, 6/st, 6/hdn, 6/inc, 7/dct, 7/cns, 7/ip, 7/ip2, 7/tr and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Copies are created by the managers for the respective genres, usually when
|
||||
claiming. If you are a manager, do not call this...
|
||||
</p>
|
||||
|
@ -232,7 +232,7 @@ such newcomers are graphed too.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Copies::graph_everything</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Copies::graph_everything</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Copies::graph_everything</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Copies::graph_everything</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax">) </span><a href="2-cps.html#SP8" class="function-link"><span class="function-syntax">Copies::construct_graph</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</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#2">Chapter 2: Conceptual Framework</a></li><li><b>Nests</b></li></ul></div>
|
||||
<p class="purpose">Nests are repositories of Inform-related resources.</p>
|
||||
|
||||
<ul class="toc"><li><a href="2-nst.html#SP1">§1. Creation</a></li><li><a href="2-nst.html#SP4">§4. Search list</a></li><li><a href="2-nst.html#SP5">§5. Search results</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="2-nst.html#SP1">§1. Creation</a></li><li><a href="2-nst.html#SP5">§5. Search list</a></li><li><a href="2-nst.html#SP6">§6. Search results</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Creation. </b>To "create" a nest here does not mean actually altering the file system, for
|
||||
example by making a directory: nests here are merely notes in memory of
|
||||
|
@ -73,7 +73,7 @@ positions in the file system hierarchy which may or may not exist.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">tag_value</span><span class="plain-syntax">; </span><span class="comment-syntax"> used to indicate whether internal, external, and such</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Nests::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Nests::new</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP12">§12</a><br/>Registries - <a href="2-rgs.html#SP2">§2</a><br/>Extension Services - <a href="5-es.html#SP4">§4</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="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Nests::new</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Nests::new</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP14">§14</a><br/>Registries - <a href="2-rgs.html#SP2">§2</a><br/>Extension Services - <a href="5-es.html#SP4">§4</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="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">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</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">P</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">read_only</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -98,29 +98,48 @@ see below for why. Lower-tag-numbered origins are better than later ones.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXTENSION_NEST_TAG</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::get_tag</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">Nests::get_tag</span></span>:<br/><a href="2-nst.html#SP9">§9</a><br/>Inbuild Control - <a href="1-ic.html#SP13">§13</a><br/>Inform7 Skill - <a href="3-is2.html#SP1">§1</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP5">§5</a><br/>Inclusions - <a href="6-inc.html#SP6_1">§6.1</a><br/>Census - <a href="7-cns.html#SP2">§2</a>, <a href="7-cns.html#SP3">§3</a>, <a href="7-cns.html#SP5">§5</a>, <a href="7-cns.html#SP7_1">§7.1</a><br/>Index Pages - <a href="7-ip.html#SP1_1_1_1">§1.1.1.1</a>, <a href="7-ip.html#SP1_1_2_1_6_4_3">§1.1.2.1.6.4.3</a><br/>The Report - <a href="7-tr.html#SP3">§3</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::get_tag</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">Nests::get_tag</span></span>:<br/><a href="2-nst.html#SP10">§10</a><br/>Inbuild Control - <a href="1-ic.html#SP15">§15</a><br/>Inform7 Skill - <a href="3-is2.html#SP1">§1</a><br/>Extension Bundle Manager - <a href="4-ebm.html#SP5">§5</a><br/>Inclusions - <a href="6-inc.html#SP6_1">§6.1</a><br/>Census - <a href="7-cns.html#SP2">§2</a>, <a href="7-cns.html#SP3">§3</a>, <a href="7-cns.html#SP5">§5</a>, <a href="7-cns.html#SP7_1">§7.1</a><br/>Index Pages - <a href="7-ip.html#SP1_1_1_1">§1.1.1.1</a>, <a href="7-ip.html#SP1_1_2_1_6_4_3">§1.1.2.1.6.4.3</a><br/>The Report - <a href="7-tr.html#SP3">§3</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="reserved-syntax">return</span><span class="plain-syntax"> -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">tag_value</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">Nests::set_tag</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">Nests::set_tag</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP12">§12</a><br/>Extension Services - <a href="5-es.html#SP4">§4</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::set_tag</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">Nests::set_tag</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP14">§14</a><br/>Extension Services - <a href="5-es.html#SP4">§4</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-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">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="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">tag_value</span><span class="plain-syntax"> = </span><span class="identifier-syntax">t</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="function-syntax">Nests::tag_name</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">Nests::tag_name</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP14">§14</a>, <a href="1-ic.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</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">MATERIALS_NEST_TAG:</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="string-syntax">"materials"</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">EXTERNAL_NEST_TAG:</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="string-syntax">"external"</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">GENERIC_NEST_TAG:</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="string-syntax">"generic"</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">INTERNAL_NEST_TAG:</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="string-syntax">"internal"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">EXTENSION_NEST_TAG:</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="string-syntax">"extension"</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">I</span><span class="string-syntax">"<unknown nest tag>"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b></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::protect</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">Nests::protect</span></span>:<br/>Inbuild Control - <a href="1-ic.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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::protect</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::protect</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP14">§14</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="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">read_only</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">int</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::is_protected</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::is_protected</span></span>:<br/>Kit Services - <a href="5-ks.html#SP14_1">§14.1</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::is_protected</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">Nests::is_protected</span></span>:<br/>Kit Services - <a href="5-ks.html#SP14_1">§14.1</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="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">read_only</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Search list. </b>When we search for copies, we do so by looking through nests in a list. The
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b></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">Nests::get_location</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">Nests::get_location</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP15">§15</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="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><span class="reserved-syntax">return</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="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. Search list. </b>When we search for copies, we do so by looking through nests in a list. The
|
||||
following builds such lists, removing duplicates — where duplicates are
|
||||
shown up by having the same textual form of pathname. (This is not foolproof
|
||||
by any means: Unix is replete with ways to describe the same directory, thanks
|
||||
|
@ -146,7 +165,7 @@ would just produce search results which were more copious than needed.)
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</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. Search results. </b>When we search a list of nests for copies satisfying certain requirements,
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Search results. </b>When we search a list of nests for copies satisfying certain requirements,
|
||||
we create one of these for each hit:
|
||||
</p>
|
||||
|
||||
|
@ -158,11 +177,11 @@ we create one of these for each hit:
|
|||
<span class="plain-syntax">} </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure inbuild_search_result is accessed in 2/ce, 2/rgs, 3/is, 5/ks, 5/ls, 6/inc, 7/dct, 7/cns, 7/ip, 7/ip2, 7/tr and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>These can be created only as entries in a list:
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>These can be created only as entries in a list:
|
||||
</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('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">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/>Extension Bundle Manager - <a href="4-ebm.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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::add_search_result</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">Nests::add_search_result</span></span>:<br/>Extension Manager - <a href="4-em.html#SP6">§6</a><br/>Extension Bundle Manager - <a href="4-ebm.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>
|
||||
|
@ -172,12 +191,12 @@ we create one of these for each hit:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">, </span><span class="identifier-syntax">results</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. </b>And here is our search engine, such as it is. For each nest, we ask each
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b>And here is our search engine, such as it is. For each nest, we ask each
|
||||
genre's manager to look for copies of that genre:
|
||||
</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::search_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">Nests::search_for</span></span>:<br/><a href="2-nst.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP11">§11</a><br/>Inclusions - <a href="6-inc.html#SP6_1_2">§6.1.2</a><br/>Census - <a href="7-cns.html#SP7">§7</a><br/>The Report - <a href="7-tr.html#SP2_4_4">§2.4.4</a></span></button><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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::search_for</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">Nests::search_for</span></span>:<br/><a href="2-nst.html#SP9">§9</a><br/>Language Services - <a href="5-ls.html#SP11">§11</a><br/>Inclusions - <a href="6-inc.html#SP6_1_2">§6.1.2</a><br/>Census - <a href="7-cns.html#SP7">§7</a><br/>The Report - <a href="7-tr.html#SP2_4_4">§2.4.4</a></span></button><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="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_list</span><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="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">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</span><span class="plain-syntax">) {</span>
|
||||
|
@ -187,23 +206,23 @@ genre's manager to look for copies of that genre:
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b>Oftentimes, we want only the single best result, and won't even look at the
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b>Oftentimes, we want only the single best result, and won't even look at the
|
||||
others:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="function-syntax">Nests::search_for_best</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">Nests::search_for_best</span></span>:<br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Kit Services - <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Inclusions - <a href="6-inc.html#SP6_1">§6.1</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a></span></button><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">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="function-syntax">Nests::search_for_best</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">Nests::search_for_best</span></span>:<br/>Inter Skill - <a href="3-is.html#SP3">§3</a>, <a href="3-is.html#SP4">§4</a><br/>Kit Services - <a href="5-ks.html#SP8">§8</a><br/>Language Services - <a href="5-ls.html#SP10">§10</a><br/>Inclusions - <a href="6-inc.html#SP6_1">§6.1</a><br/>Dictionary - <a href="7-dct.html#SP9">§9</a></span></button><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="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_list</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</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">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">best</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-nst.html#SP9" class="function-link"><span class="function-syntax">Nests::better_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">, </span><span class="identifier-syntax">best</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-nst.html#SP10" class="function-link"><span class="function-syntax">Nests::better_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">, </span><span class="identifier-syntax">best</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">best</span><span class="plain-syntax"> = </span><span class="identifier-syntax">search_result</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">best</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b>Where "better" is defined as follows. This innocent-looking function is
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b>Where "better" is defined as follows. This innocent-looking function is
|
||||
in fact critical to what Inbuild does. It uses tags on nests to prefer copies
|
||||
in the Materials folder to those in the external nest, and to prefer those in
|
||||
turn to copies in the internal nest; and within nests of equal importance,
|
||||
|
@ -212,7 +231,7 @@ semantic version numbers.
|
|||
</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">Nests::better_result</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">Nests::better_result</span></span>:<br/><a href="2-nst.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R2</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Nests::better_result</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">Nests::better_result</span></span>:<br/><a href="2-nst.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R1</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax"> Something is better than nothing</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R1</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">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">R2</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>
|
||||
|
|
|
@ -191,7 +191,7 @@ for each time we recurse.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">no_build_generations</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">T</span><span class="plain-syntax">, </span><span class="string-syntax">"Incremental build %d:\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">no_build_generations</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">rv</span><span class="plain-syntax"> = </span><a href="3-ib.html#SP7" class="function-link"><span class="function-syntax">IncrementalBuild::recurse</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">gb</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">BM</span><span class="plain-syntax">, &</span><span class="identifier-syntax">changes</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">no_build_generations</span><span class="plain-syntax">, </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">no_build_generations</span><span class="plain-syntax">, </span><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><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">T</span><span class="plain-syntax">, </span><span class="string-syntax">"%d change(s)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">changes</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">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -70,7 +70,7 @@ is being held in memory by <span class="extract"><span class="extract-syntax">in
|
|||
<span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">build_kit_using_inter_skill</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">code_generate_using_inter_skill</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterSkill::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">InterSkill::create</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterSkill::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">InterSkill::create</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">build_kit_using_inter_skill</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bs2.html#SP1" class="function-link"><span class="function-syntax">BuildSteps::new_skill</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"build kit using inter"</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">build_kit_using_inter_skill</span><span class="plain-syntax">, </span><span class="constant-syntax">BUILD_SKILL_COMMAND_MTID</span><span class="plain-syntax">,</span>
|
||||
|
@ -174,7 +174,7 @@ should be, so the effect is the same.
|
|||
<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><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</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><a href="2-nst.html#SP9" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</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">R</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">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -213,7 +213,7 @@ it defaults to <span class="extract"><span class="extract-syntax">compile</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><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_pipeline_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</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><a href="2-nst.html#SP9" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</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">R</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::with_text</span><span class="plain-syntax">(</span><span class="string-syntax">"inter pipeline '%S' could not be found"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_pipeline_name</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -66,7 +66,7 @@ if we are running inside <span class="extract"><span class="extract-syntax">info
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">compile_using_inform7_skill</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inform7Skill::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Inform7Skill::create</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inform7Skill::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Inform7Skill::create</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">compile_using_inform7_skill</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bs2.html#SP1" class="function-link"><span class="function-syntax">BuildSteps::new_skill</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"compile using inform7"</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">compile_using_inform7_skill</span><span class="plain-syntax">, </span><span class="constant-syntax">BUILD_SKILL_COMMAND_MTID</span><span class="plain-syntax">,</span>
|
||||
|
|
|
@ -67,7 +67,7 @@ called as a function.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">compile_using_inform6_skill</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inform6Skill::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Inform6Skill::create</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Inform6Skill::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Inform6Skill::create</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">compile_using_inform6_skill</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bs2.html#SP1" class="function-link"><span class="function-syntax">BuildSteps::new_skill</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"compile using inform6"</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">compile_using_inform6_skill</span><span class="plain-syntax">, </span><span class="constant-syntax">BUILD_SKILL_COMMAND_MTID</span><span class="plain-syntax">,</span>
|
||||
|
|
|
@ -64,7 +64,7 @@ function togglePopup(material_id) {
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">package_using_inblorb_skill</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InblorbSkill::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">InblorbSkill::create</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InblorbSkill::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">InblorbSkill::create</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_using_inblorb_skill</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bs2.html#SP1" class="function-link"><span class="function-syntax">BuildSteps::new_skill</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"package using inblorb"</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">package_using_inblorb_skill</span><span class="plain-syntax">, </span><span class="constant-syntax">BUILD_SKILL_COMMAND_MTID</span><span class="plain-syntax">,</span>
|
||||
|
|
|
@ -65,7 +65,7 @@ function togglePopup(material_id) {
|
|||
</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">ExtensionBundleManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionBundleManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionBundleManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionBundleManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">extension_bundle_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">"extensionbundle"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gnr.html#SP4" class="function-link"><span class="function-syntax">Genres::place_in_class</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</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">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><a href="4-ebm.html#SP1" class="function-link"><span class="function-syntax">ExtensionBundleManager::write_work</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -480,7 +480,7 @@ copy name.
|
|||
<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-ebm.html#SP5" class="function-link"><span class="function-syntax">ExtensionBundleManager::claim_folder_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</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">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><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">recurse</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Str::ne</span><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Reserved"</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">Str::ne</span><span class="plain-syntax">(</span><span class="identifier-syntax">entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Source"</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><a href="4-ebm.html#SP6" class="function-link"><span class="function-syntax">ExtensionBundleManager::search_nest_for_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -78,7 +78,7 @@ later on, as needed, just for extensions of interest: see below.
|
|||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </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">ExtensionManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">extension_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">"extension"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-gnr.html#SP4" class="function-link"><span class="function-syntax">Genres::place_in_class</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</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">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><a href="4-em.html#SP2" class="function-link"><span class="function-syntax">ExtensionManager::write_work</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -233,7 +233,7 @@ with leafnames beginning <span class="extract"><span class="extract-syntax">.</s
|
|||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Str::get_first_char</span><span class="plain-syntax">(</span><span class="identifier-syntax">Filenames::get_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">)) != </span><span class="character-syntax">'.'</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="4-em.html#SP5" class="function-link"><span class="function-syntax">ExtensionManager::claim_file_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="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">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><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">fext</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -72,7 +72,7 @@ the 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::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">KitManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">KitManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">KitManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="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>
|
||||
|
@ -199,7 +199,7 @@ requirements.
|
|||
<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#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="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">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><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -69,7 +69,7 @@ vertices with no build or use edges.
|
|||
</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">LanguageManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">LanguageManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">LanguageManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">LanguageManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">language_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">"language"</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">language_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><a href="4-lm.html#SP1" class="function-link"><span class="function-syntax">LanguageManager::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">language_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-lm.html#SP4" class="function-link"><span class="function-syntax">LanguageManager::claim_as_copy</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -177,7 +177,7 @@ requirements.
|
|||
<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-lm.html#SP4" class="function-link"><span class="function-syntax">LanguageManager::claim_folder_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</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">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><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -77,7 +77,7 @@ However it is stored in the file system, a project is a project.
|
|||
</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">ProjectBundleManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ProjectBundleManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ProjectBundleManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ProjectBundleManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">project_bundle_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">"projectbundle"</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">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">project_bundle_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><a href="4-pbm.html#SP1" class="function-link"><span class="function-syntax">ProjectBundleManager::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">project_bundle_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-pbm.html#SP3" class="function-link"><span class="function-syntax">ProjectBundleManager::claim_as_copy</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -131,7 +131,7 @@ not a file, false if we know the reverse, and otherwise not applicable.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectBundleManager::claim_folder_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">ProjectBundleManager::claim_folder_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP19">§19</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="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectBundleManager::claim_folder_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">ProjectBundleManager::claim_folder_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">§22</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Directories::exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</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="identifier-syntax">NULL</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-pbm.html#SP2" class="function-link"><span class="function-syntax">ProjectBundleManager::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="named-paragraph-container code-font"><a href="4-pbm.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Police extraneous contents</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
@ -301,11 +301,12 @@ not a file, false if we know the reverse, and otherwise not applicable.
|
|||
<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="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">ext</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::write_extension</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</span><span class="plain-syntax">, </span><span class="identifier-syntax">Filenames::from_text</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".html"</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">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".html"</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">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".xml"</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">error_text</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">error_text</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"the 'Index' subdirectory of the project directory '%S' contains a "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"file called '%S', but can only contain HTML files"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"file called '%S', but can only contain HTML and XML files"</span><span class="plain-syntax">,</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="identifier-syntax">entry</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cps.html#SP5" class="function-link"><span class="function-syntax">Copies::attach_error</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><a href="2-ce.html#SP2" class="function-link"><span class="function-syntax">CopyErrors::new_T</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PROJECT_MALFORMED_CE</span><span class="plain-syntax">, -1, </span><span class="identifier-syntax">error_text</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">error_text</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -75,7 +75,7 @@ However it is stored in the file system, a project is a project.
|
|||
</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">ProjectFileManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ProjectFileManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ProjectFileManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ProjectFileManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">project_file_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">"projectfile"</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">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">project_file_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><a href="4-pfm.html#SP1" class="function-link"><span class="function-syntax">ProjectFileManager::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">project_file_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-pfm.html#SP3" class="function-link"><span class="function-syntax">ProjectFileManager::claim_as_copy</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -132,7 +132,7 @@ or <span class="extract"><span class="extract-syntax">.i7</span></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="function-syntax">ProjectFileManager::claim_file_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">ProjectFileManager::claim_file_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">inbuild_copy</span><span class="plain-syntax"> *</span><span class="function-syntax">ProjectFileManager::claim_file_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">ProjectFileManager::claim_file_as_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">§22</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="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">F</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="identifier-syntax">NULL</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-pfm.html#SP2" class="function-link"><span class="function-syntax">ProjectFileManager::new_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Filenames::get_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">), </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax"> = </span><a href="4-pfm.html#SP2" class="function-link"><span class="function-syntax">ProjectFileManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -68,7 +68,7 @@ graphs are single vertices with no build or use edges.
|
|||
</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">PipelineManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">PipelineManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PipelineManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">PipelineManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pipeline_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">"pipeline"</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">pipeline_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><a href="4-pm.html#SP1" class="function-link"><span class="function-syntax">PipelineManager::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">pipeline_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-pm.html#SP4" class="function-link"><span class="function-syntax">PipelineManager::claim_as_copy</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -156,7 +156,7 @@ requirements.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="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">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-pm.html#SP4" class="function-link"><span class="function-syntax">PipelineManager::claim_file_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</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">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><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -69,7 +69,7 @@ vertices with no build or use edges.
|
|||
</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">TemplateManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">TemplateManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TemplateManager::start</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">TemplateManager::start</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">template_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">"template"</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">template_genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_WRITE_WORK_MTID</span><span class="plain-syntax">, </span><a href="4-tm.html#SP1" class="function-link"><span class="function-syntax">TemplateManager::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">template_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-tm.html#SP4" class="function-link"><span class="function-syntax">TemplateManager::claim_as_copy</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -154,7 +154,7 @@ requirements.
|
|||
<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-tm.html#SP4" class="function-link"><span class="function-syntax">TemplateManager::claim_folder_as_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Q</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">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><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::add_search_result</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_results</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">req</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -882,13 +882,13 @@ the Materials folder of the project in question:
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Extensions::nest_list</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Extensions::nest_list</span></span>:<br/><a href="5-es.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</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><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</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><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_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">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">read_into_project</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">proj</span><span class="plain-syntax">) </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">materials_nest</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">);</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">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -374,7 +374,7 @@ a kit, going only on a name such as <span class="extract"><span class="extract-s
|
|||
<span class="reserved-syntax">inform_kit</span><span class="plain-syntax"> *</span><span class="function-syntax">Kits::find_by_name</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">Kits::find_by_name</span></span>:<br/>Project Services - <a href="5-ps2.html#SP20">§20</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">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nest_list</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">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="identifier-syntax">req</span><span class="plain-syntax"> = </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">""</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">nest_list</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><a href="2-nst.html#SP9" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">nest_list</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">R</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">NULL</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">R</span><span class="plain-syntax">-></span><span class="element-syntax">copy</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::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -280,7 +280,7 @@ include the Materials folder for any relevant project.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="string-syntax">"%S Language"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">extension_req</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">author</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">extension_R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search</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">extension_R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP9" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">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">extension_R</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_R</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||
|
@ -290,7 +290,7 @@ include the Materials folder for any relevant project.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">longer</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><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">language_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">""</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">longer</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><a href="2-nst.html#SP9" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">longer</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">R</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="4-lm.html#SP3" class="function-link"><span class="function-syntax">LanguageManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="element-syntax">belongs_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">;</span>
|
||||
|
@ -301,7 +301,7 @@ include the Materials folder for any relevant project.
|
|||
<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><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">language_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">""</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search</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><a href="2-nst.html#SP9" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Regexp::dispose_of</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</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">R</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-lm.html#SP3" class="function-link"><span class="function-syntax">LanguageManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">copy</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>
|
||||
|
@ -315,7 +315,7 @@ so the function is now deprecated:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Languages::find_by_native_cue</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cue</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">results</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::anything_of_genre</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">language_genre</span><span class="plain-syntax">), </span><span class="identifier-syntax">search</span><span class="plain-syntax">, </span><span class="identifier-syntax">results</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::anything_of_genre</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">language_genre</span><span class="plain-syntax">), </span><span class="identifier-syntax">search</span><span class="plain-syntax">, </span><span class="identifier-syntax">results</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">search_result</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">, </span><span class="identifier-syntax">results</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="4-lm.html#SP3" class="function-link"><span class="function-syntax">LanguageManager::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -132,7 +132,7 @@ placeholders.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">M</span><span class="plain-syntax"> = </span><a href="5-ps2.html#SP4" class="function-link"><span class="function-syntax">Projects::materialise_pathname</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">Filenames::get_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_file</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">materials_nest</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP12" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">M</span><span class="plain-syntax">, </span><span class="constant-syntax">MATERIALS_NEST_TAG</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">materials_nest</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::add_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">M</span><span class="plain-syntax">, </span><span class="constant-syntax">MATERIALS_NEST_TAG</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">search_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">primary_source</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">extensions_included</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inform_extension</span><span class="plain-syntax">);</span>
|
||||
|
@ -242,7 +242,7 @@ but ending <span class="extract"><span class="extract-syntax">.materials</span><
|
|||
</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">Projects::materialise_pathname</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">Projects::materialise_pathname</span></span>:<br/><a href="5-ps2.html#SP2">§2</a><br/>Inbuild Control - <a href="1-ic.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">in</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::materialise_pathname</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">Projects::materialise_pathname</span></span>:<br/><a href="5-ps2.html#SP2">§2</a><br/>Inbuild Control - <a href="1-ic.html#SP21">§21</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">in</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leaf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">mf</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">mf</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">leaf</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">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">mf</span><span class="plain-syntax">)-1;</span>
|
||||
|
@ -286,7 +286,7 @@ is small, but one likes to minimise the effect of the CWD.)
|
|||
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::build_path</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">Projects::build_path</span></span>:<br/><a href="5-ps2.html#SP31">§31</a>, <a href="5-ps2.html#SP33_1">§33.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</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">proj</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_path</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><a href="5-ps2.html#SP6" class="function-link"><span class="function-syntax">Projects::path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">), </span><span class="identifier-syntax">I</span><span class="string-syntax">"Build"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::transient</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-ic.html#SP19" class="function-link"><span class="function-syntax">Supervisor::transient</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::materials_nest</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">Projects::materials_nest</span></span>:<br/>The Report - <a href="7-tr.html#SP2_4_4">§2.4.4</a>, <a href="7-tr.html#SP2_5">§2.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">) {</span>
|
||||
|
@ -306,12 +306,12 @@ reasons, this list is created on demand.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::nest_list</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">Projects::nest_list</span></span>:<br/><a href="5-ps2.html#SP17">§17</a>, <a href="5-ps2.html#SP20">§20</a>, <a href="5-ps2.html#SP36">§36</a><br/>Incremental Building - <a href="3-ib.html#SP7_1">§7.1</a><br/>Inform7 Skill - <a href="3-is2.html#SP1">§1</a><br/>Inclusions - <a href="6-inc.html#SP6_1">§6.1</a>, <a href="6-inc.html#SP6_1_2">§6.1.2</a><br/>Census - <a href="7-cns.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</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">proj</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><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">proj</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><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">RUN_ONLY_FROM_PHASE</span><span class="plain-syntax">(</span><span class="constant-syntax">NESTED_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">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</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">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">materials_nest</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">);</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">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -330,7 +330,7 @@ reasons, this list is created on demand.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::from_copy</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">Projects::from_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP19">§19</a><br/>Incremental Building - <a href="3-ib.html#SP7_1">§7.1</a><br/>Inter Skill - <a href="3-is.html#SP4">§4</a><br/>Inform7 Skill - <a href="3-is2.html#SP1">§1</a>, <a href="3-is2.html#SP2">§2</a><br/>Inform6 Skill - <a href="3-is3.html#SP1">§1</a><br/>Inblorb Skill - <a href="3-is4.html#SP1">§1</a><br/>Inclusions - <a href="6-inc.html#SP1">§1</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_project</span><span class="plain-syntax"> *</span><span class="function-syntax">Projects::from_copy</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">Projects::from_copy</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">§22</a><br/>Incremental Building - <a href="3-ib.html#SP7_1">§7.1</a><br/>Inter Skill - <a href="3-is.html#SP4">§4</a><br/>Inform7 Skill - <a href="3-is2.html#SP1">§1</a>, <a href="3-is2.html#SP2">§2</a><br/>Inform6 Skill - <a href="3-is3.html#SP1">§1</a><br/>Inblorb Skill - <a href="3-is4.html#SP1">§1</a><br/>Inclusions - <a href="6-inc.html#SP1">§1</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">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="4-pbm.html#SP2" class="function-link"><span class="function-syntax">ProjectBundleManager::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><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">project</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="4-pfm.html#SP2" class="function-link"><span class="function-syntax">ProjectFileManager::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><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">project</span><span class="plain-syntax">;</span>
|
||||
|
@ -341,7 +341,7 @@ has a single, "primary", one.
|
|||
</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">Projects::set_primary_source</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">Projects::set_primary_source</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::set_primary_source</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">Projects::set_primary_source</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">§22</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">primary_source</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -564,7 +564,7 @@ and that means it's not beneath our notice.)
|
|||
</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">Projects::set_compilation_options</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Projects::set_compilation_options</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">r</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">co</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rng</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::set_compilation_options</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Projects::set_compilation_options</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">r</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">co</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rng</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">compile_for_release</span><span class="plain-syntax"> = </span><span class="identifier-syntax">r</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">compile_only</span><span class="plain-syntax"> = </span><span class="identifier-syntax">co</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">fix_rng</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rng</span><span class="plain-syntax">;</span>
|
||||
|
@ -633,7 +633,7 @@ at least one kit, and probably several.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">forcible_basic_mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::enter_forcible_basic_mode</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Projects::enter_forcible_basic_mode</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::enter_forcible_basic_mode</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Projects::enter_forcible_basic_mode</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">forcible_basic_mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -906,7 +906,7 @@ details instead.
|
|||
<p class="commentary firstcommentary"><a id="SP31" class="paragraph-anchor"></a><b>§31. File to write to. </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">Projects::set_primary_output</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Projects::set_primary_output</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Projects::set_primary_output</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Projects::set_primary_output</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP22">§22</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="identifier-syntax">primary_output</span><span class="plain-syntax"> = </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -915,7 +915,7 @@ details instead.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">stand_alone</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">Filenames::set_extension</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">primary_source</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TargetVMs::get_transpiled_extension</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP9" class="function-link"><span class="function-syntax">Supervisor::current_vm</span></a><span class="plain-syntax">()));</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ic.html#SP11" class="function-link"><span class="function-syntax">Supervisor::current_vm</span></a><span class="plain-syntax">()));</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</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">build_folder</span><span class="plain-syntax"> = </span><a href="5-ps2.html#SP6" class="function-link"><span class="function-syntax">Projects::build_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</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">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">build_folder</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"auto.inf"</span><span class="plain-syntax">);</span>
|
||||
|
@ -1013,7 +1013,7 @@ elaborate use of <a href="../inblorb/index.html" class="internal">inblorb</a> to
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP9" class="function-link"><span class="function-syntax">Supervisor::current_vm</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP11" class="function-link"><span class="function-syntax">Supervisor::current_vm</span></a><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">inf_F</span><span class="plain-syntax"> = </span><a href="5-ps2.html#SP31" class="function-link"><span class="function-syntax">Projects::get_primary_output</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax"> vertex for the inter code put together in memory</span>
|
||||
|
@ -1246,7 +1246,7 @@ like Basic Inform or Standard Rules; and also any sentences in the
|
|||
<span class="plain-syntax"> </span><a href="5-ps2.html#SP29" class="function-link"><span class="function-syntax">Projects::early_source_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">early</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</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::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">early</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">early</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">early</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ext</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::external</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ext</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::external</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ext</span><span class="plain-syntax">) </span><a href="6-tof.html#SP2" class="function-link"><span class="function-syntax">OptionsFile::read</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</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">"Options.txt"</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">early_W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">wc</span><span class="plain-syntax">, </span><span class="identifier-syntax">lexer_wordcount</span><span class="plain-syntax">-1);</span>
|
||||
|
|
|
@ -121,7 +121,7 @@ extensions cannot extend it.
|
|||
</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">ControlStructures::create_standard</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">ControlStructures::create_standard</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ControlStructures::create_standard</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">ControlStructures::create_standard</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">switch_CSP</span><span class="plain-syntax"> = </span><a href="6-cs.html#SP2" class="function-link"><span class="function-syntax">ControlStructures::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"SWI"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">switch_CSP</span><span class="plain-syntax">-></span><span class="element-syntax">body_empty_except_for_subordinates</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">switch_CSP</span><span class="plain-syntax">-></span><span class="element-syntax">indent_subblocks</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -523,7 +523,7 @@ otherwise.
|
|||
<span class="Preform-function-syntax"><current-virtual-machine></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (</span><span class="Preform-function-syntax"><virtual-machine></span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">)) {</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">compatibility_specification</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">vms</span><span class="Preform-plain-syntax"> = (</span><span class="Preform-identifier-syntax">compatibility_specification</span><span class="Preform-plain-syntax"> *) </span><span class="Preform-function-syntax"><<rp>></span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> ==> { </span><span class="Preform-identifier-syntax">Compatibility::test</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">vms</span><span class="Preform-plain-syntax">, </span><a href="1-ic.html#SP9" class="function-link"><span class="Preform-function-syntax">Supervisor::current_vm</span></a><span class="Preform-plain-syntax">()), - };</span>
|
||||
<span class="Preform-plain-syntax"> ==> { </span><span class="Preform-identifier-syntax">Compatibility::test</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">vms</span><span class="Preform-plain-syntax">, </span><a href="1-ic.html#SP11" class="function-link"><span class="Preform-function-syntax">Supervisor::current_vm</span></a><span class="Preform-plain-syntax">()), - };</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">TRUE</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> } </span><span class="Preform-reserved-syntax">else</span><span class="Preform-plain-syntax"> {</span>
|
||||
<span class="Preform-plain-syntax"> ==> { </span><span class="Preform-identifier-syntax">fail</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">nonterminal</span><span class="Preform-plain-syntax"> };</span>
|
||||
|
|
|
@ -340,7 +340,7 @@ Sausages by Mr Punch, and loaded it, but then read the sentence
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_result</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><a href="5-ps2.html#SP7" class="function-link"><span class="function-syntax">Projects::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP9" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><a href="5-ps2.html#SP7" class="function-link"><span class="function-syntax">Projects::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax"> = </span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-es.html#SP17" class="function-link"><span class="function-syntax">Extensions::set_inclusion_sentence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">at</span><span class="plain-syntax">);</span>
|
||||
|
@ -348,7 +348,7 @@ Sausages by Mr Punch, and loaded it, but then read the sentence
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::get_tag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-></span><span class="element-syntax">nest</span><span class="plain-syntax">) == </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">loaded_from_built_in_area</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">compatibility_specification</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">compatibility</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">Compatibility::test</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><a href="1-ic.html#SP9" class="function-link"><span class="function-syntax">Supervisor::current_vm</span></a><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">Compatibility::test</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><a href="1-ic.html#SP11" class="function-link"><span class="function-syntax">Supervisor::current_vm</span></a><span class="plain-syntax">()) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-inc.html#SP6_1_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem message saying that the VM does not meet requirements</span><span class="named-paragraph-number">6.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">search_result</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">-></span><span class="element-syntax">errors_reading_source_text</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
|
@ -388,7 +388,7 @@ report this problem at the inclusion line.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req2</span><span class="plain-syntax"> = </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">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="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req2</span><span class="plain-syntax">, </span><a href="5-ps2.html#SP7" class="function-link"><span class="function-syntax">Projects::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">), </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req2</span><span class="plain-syntax">, </span><a href="5-ps2.html#SP7" class="function-link"><span class="function-syntax">Projects::nest_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">for_project</span><span class="plain-syntax">), </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LinkedLists::len</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="plain-syntax"> </span><span class="reserved-syntax">copy_error</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CE</span><span class="plain-syntax"> = </span><a href="2-ce.html#SP2" class="function-link"><span class="function-syntax">CopyErrors::new</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SYNTAX_CE</span><span class="plain-syntax">, </span><span class="constant-syntax">BogusExtension_SYNERROR</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ce.html#SP3" class="function-link"><span class="function-syntax">CopyErrors::supply_node</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CE</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -108,7 +108,7 @@ perhaps combining our feed with that of others.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leaf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::get_leafname</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">primary</span><span class="plain-syntax">) </span><span class="identifier-syntax">leaf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">I</span><span class="string-syntax">"main source text"</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">mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">UNICODE_UFBHM</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP9" class="function-link"><span class="function-syntax">Supervisor::current_vm</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP11" class="function-link"><span class="function-syntax">Supervisor::current_vm</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TargetVMs::is_16_bit</span><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">)) </span><span class="identifier-syntax">mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ZSCII_UFBHM</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TextFromFiles::feed_open_file_into_lexer</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">handle</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">leaf</span><span class="plain-syntax">, </span><span class="identifier-syntax">documentation_only</span><span class="plain-syntax">, </span><span class="identifier-syntax">ref</span><span class="plain-syntax">, </span><span class="identifier-syntax">mode</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -88,7 +88,7 @@ compiled in case (b).
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">search_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">proj</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">);</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">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-nst.html#SP2" class="function-link"><span class="function-syntax">Nests::get_tag</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">) == </span><span class="constant-syntax">INTERNAL_NEST_TAG</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">);</span>
|
||||
|
@ -134,7 +134,7 @@ is created. (These are called ECDs below.)
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure extension_census_datum is accessed in 6/hdn, 6/inc, 7/dct, 7/ip, 7/ip2 and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>An ECD is actually a wrapper for an <a href="5-es.html#SP1" class="internal">inform_extension</a> object in disguise,
|
||||
since the <a href="2-nst.html#SP5" class="internal">inbuild_search_result</a> found that.
|
||||
since the <a href="2-nst.html#SP6" class="internal">inbuild_search_result</a> found that.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -204,14 +204,14 @@ handed to <span class="extract"><span class="extract-syntax">qsort</span></span>
|
|||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Performing the census. </b>For some reason a census often makes a good story (cf. Luke 2:1-5), but here
|
||||
there's disappointingly little to tell, because the work is all done by a
|
||||
single call to <a href="2-nst.html#SP7" class="internal">Nests::search_for</a>.
|
||||
single call to <a href="2-nst.html#SP8" class="internal">Nests::search_for</a>.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">extension_census</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionCensus::perform</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">ExtensionCensus::perform</span></span>:<br/>The Mini-Website - <a href="7-tm.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">extension_census</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><a href="7-cns.html#SP2" class="function-link"><span class="function-syntax">ExtensionCensus::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax"> = </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::anything_of_genre</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">raw_data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">raw_data</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="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_search_result</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">raw_data</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -85,7 +85,7 @@ loss if this should be mislaid.)
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionDictionary::filename</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionDictionary::filename</span></span>:<br/><a href="7-dct.html#SP8">§8</a>, <a href="7-dct.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::transient</span></a><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="1-ic.html#SP19" class="function-link"><span class="function-syntax">Supervisor::transient</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</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">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</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">I</span><span class="string-syntax">"Documentation"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">P</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">I</span><span class="string-syntax">"Census"</span><span class="plain-syntax">);</span>
|
||||
|
@ -329,7 +329,7 @@ days when overlong records were truncated.
|
|||
<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><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::any_version_of</span></a><span class="plain-syntax">(</span><a href="2-wrk.html#SP2" class="function-link"><span class="function-syntax">Works::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_genre</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">author</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="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><a href="1-ic.html#SP14" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP9" class="function-link"><span class="function-syntax">Nests::search_for_best</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::shared_nest_list</span></a><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax">) </span><a href="7-dct.html#SP4" class="function-link"><span class="function-syntax">ExtensionDictionary::new_ede</span></a><span class="plain-syntax">(</span><a href="5-es.html#SP4" class="function-link"><span class="function-syntax">Extensions::from_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="element-syntax">copy</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">category</span><span class="plain-syntax">, </span><span class="identifier-syntax">author</span><span class="plain-syntax">, </span><span class="identifier-syntax">title</span><span class="plain-syntax">, </span><span class="identifier-syntax">headword</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
|
|
@ -97,7 +97,7 @@ same either way. Here are the functions for (a) and (b) respectively:
|
|||
</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">ExtensionWebsite::handle_census_mode</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionWebsite::handle_census_mode</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ExtensionWebsite::handle_census_mode</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ExtensionWebsite::handle_census_mode</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::set_link_abbreviation_path</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="7-tm.html#SP2" class="function-link"><span class="function-syntax">ExtensionWebsite::go</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -197,7 +197,7 @@ in the same area but not as part of the site.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">ExtensionWebsite::home_URL</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">ExtensionWebsite::home_URL</span></span>:<br/><a href="7-tm.html#SP4">§4</a>, <a href="7-tm.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">proj</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">proj</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP16" class="function-link"><span class="function-syntax">Supervisor::transient</span></a><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="1-ic.html#SP19" class="function-link"><span class="function-syntax">Supervisor::transient</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</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">NULL</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">Pathnames::create_in_file_system</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</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><span class="identifier-syntax">P</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">I</span><span class="string-syntax">"Documentation"</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -123,7 +123,7 @@ produces a second report.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InbuildReport::install</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">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">confirmed</span><span class="plain-syntax">, </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to_tool</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP19" class="function-link"><span class="function-syntax">Supervisor::project_set_at_command_line</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax"> *</span><span class="identifier-syntax">project</span><span class="plain-syntax"> = </span><a href="1-ic.html#SP22" class="function-link"><span class="function-syntax">Supervisor::project_set_at_command_line</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">project</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">Errors::fatal</span><span class="plain-syntax">(</span><span class="string-syntax">"-project not set at command line"</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">pname</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">pname</span><span class="plain-syntax">, </span><span class="string-syntax">"'%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">project</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">title</span><span class="plain-syntax">);</span>
|
||||
|
@ -324,7 +324,7 @@ produces a second report.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">req</span><span class="plain-syntax"> = </span><a href="2-rqr.html#SP2" class="function-link"><span class="function-syntax">Requirements::anything_of_genre</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension_bundle_genre</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><a href="5-ps2.html#SP6" class="function-link"><span class="function-syntax">Projects::materials_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">project</span><span class="plain-syntax">), </span><span class="reserved-syntax">inbuild_nest</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP7" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-nst.html#SP8" class="function-link"><span class="function-syntax">Nests::search_for</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">req</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="7-tr.html#SP2_4">§2.4</a>, <a href="7-tr.html#SP2_5">§2.5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5_2" class="paragraph-anchor"></a><b>§2.5.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">List the extensions currently installed in the project</span><span class="named-paragraph-number">2.5.2</span></span><span class="comment-syntax"> =</span>
|
||||
|
|
|
@ -96,22 +96,22 @@ saying "now build this".
|
|||
|
||||
<ul class="items"><li>(1) <a href="index.html" class="internal">supervisor</a> has to be started and stopped at each end of the parent's
|
||||
run, by calling <a href="1-sm.html#SP3" class="internal">SupervisorModule::start</a> and <a href="1-sm.html#SP3" class="internal">SupervisorModule::end</a>.
|
||||
The former calls <a href="1-ic.html#SP3" class="internal">Supervisor::start</a> in turn, and that activates a number of
|
||||
The former calls <a href="1-ic.html#SP5" class="internal">Supervisor::start</a> in turn, and that activates a number of
|
||||
subsystems with further calls. But all modules do something like this.
|
||||
</li><li>(2) More unusually, when the parent is creating its command-line options, it
|
||||
should call <a href="1-ic.html#SP4" class="internal">Supervisor::declare_options</a> to add more. This allows all tools
|
||||
should call <a href="1-ic.html#SP6" class="internal">Supervisor::declare_options</a> to add more. This allows all tools
|
||||
containing the Supervisor to offer a unified set of command-line options to
|
||||
configure it.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> When the parent is given a switch that it doesn't recognise,
|
||||
it should call <a href="1-ic.html#SP7" class="internal">Supervisor::option</a>; and when it has fully processed the
|
||||
command line, it should call <a href="1-ic.html#SP8" class="internal">Supervisor::optioneering_complete</a>.
|
||||
it should call <a href="1-ic.html#SP9" class="internal">Supervisor::option</a>; and when it has fully processed the
|
||||
command line, it should call <a href="1-ic.html#SP10" class="internal">Supervisor::optioneering_complete</a>.
|
||||
</li><li>(3) The parent can now, if it chooses, make calls into <a href="index.html" class="internal">supervisor</a> to set
|
||||
up additional dependencies. But eventually it will call <a href="1-ic.html#SP10" class="internal">Supervisor::go_operational</a>.
|
||||
up additional dependencies. But eventually it will call <a href="1-ic.html#SP12" class="internal">Supervisor::go_operational</a>.
|
||||
The Supervisor is now ready for use!
|
||||
</li></ul>
|
||||
<p class="commentary">There is no single "go" button: instead, the Supervisor provides a suite
|
||||
of functions to call, each acting on a "copy" — an instance of some software
|
||||
at a given filing system location. When <a href="../inform7/index.html" class="internal">inform7</a> is the parent, it follows
|
||||
the call to <a href="1-ic.html#SP10" class="internal">Supervisor::go_operational</a> with a single call to <a href="2-cps.html#SP12" class="internal">Copies::build</a>
|
||||
the call to <a href="1-ic.html#SP12" class="internal">Supervisor::go_operational</a> with a single call to <a href="2-cps.html#SP12" class="internal">Copies::build</a>
|
||||
on the copy representing the current Inform 7 project. But when <a href="../inbuild/index.html" class="internal">inbuild</a>
|
||||
is the parent, a variety of other functions may be made.
|
||||
</p>
|
||||
|
@ -123,7 +123,7 @@ to see the effect.
|
|||
example, "Inform 7 extension" and "website template" are both genres. Each
|
||||
different genre is represented by an <a href="2-gnr.html#SP1" class="internal">inbuild_genre</a> object, whose method
|
||||
calls provide the behaviour distinctive to that genre. The currently seven
|
||||
genre objects are created during <a href="1-ic.html#SP3" class="internal">Supervisor::start</a>, which calls out to
|
||||
genre objects are created during <a href="1-ic.html#SP5" class="internal">Supervisor::start</a>, which calls out to
|
||||
<a href="4-em.html#SP2" class="internal">ExtensionManager::start</a>, <a href="4-km.html#SP1" class="internal">KitManager::start</a>, and so on: the seven
|
||||
sections of <a href="4-em.html" class="internal">Chapter 4: Genre Management</a> are exactly the method calls for the seven genre
|
||||
objects.
|
||||
|
@ -174,7 +174,7 @@ typed:
|
|||
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">inform7</span><span class="ConsoleText-identifier-syntax"> -internal</span><span class="ConsoleText-plain-syntax"> inform7/Internal</span><span class="ConsoleText-identifier-syntax"> -external</span><span class="ConsoleText-plain-syntax"> ~/mystuff</span><span class="ConsoleText-identifier-syntax"> -project</span><span class="ConsoleText-plain-syntax"> Tadpoles.inform</span>
|
||||
</pre>
|
||||
<p class="commentary">then all three command-line switches here would actually be parsed by
|
||||
<a href="1-ic.html#SP7" class="internal">Supervisor::option</a>, rather than by anything in the <a href="../core-module/index.html" class="internal">core</a> module.
|
||||
<a href="1-ic.html#SP9" class="internal">Supervisor::option</a>, rather than by anything in the <a href="../core-module/index.html" class="internal">core</a> module.
|
||||
They would set the "internal" and "external" nest (see <a href="../inbuild/M-ui.html" class="internal">Manual (in inbuild)</a>),
|
||||
creating an <a href="2-nst.html#SP1" class="internal">inbuild_nest</a> object for each. The Inform 7 project for the
|
||||
run would also be set. This would become whose genre is <span class="extract"><span class="ConsoleText-extract-syntax">project_bundle_genre</span></span>.
|
||||
|
@ -185,7 +185,7 @@ run would also be set. This would become whose genre is <span class="extract"><s
|
|||
These are not explicitly named on the command line: instead, they are found by
|
||||
searching through the nests. <a href="index.html" class="internal">supervisor</a> does this by creating an
|
||||
<a href="2-rqr.html#SP1" class="internal">inbuild_requirement</a> object to specify what it wants, and then calling its
|
||||
search engine <a href="2-nst.html#SP7" class="internal">Nests::search_for</a>. This builds a list of <a href="2-nst.html#SP5" class="internal">inbuild_search_result</a>
|
||||
search engine <a href="2-nst.html#SP8" class="internal">Nests::search_for</a>. This builds a list of <a href="2-nst.html#SP6" class="internal">inbuild_search_result</a>
|
||||
objects, each pointing to a new copy which matches the requirement given.
|
||||
</p>
|
||||
|
||||
|
@ -202,9 +202,9 @@ which matches any extension by Emily Short.
|
|||
<a href="#fnref:4" title="return to text"> ↩</a></p></li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>Although such searches can be used with vague requirements to scan for,
|
||||
say, everything with a given genre, they can also be used to seek specific
|
||||
pieces of software which we will need. <a href="2-nst.html#SP8" class="internal">Nests::search_for_best</a> is a version
|
||||
pieces of software which we will need. <a href="2-nst.html#SP9" class="internal">Nests::search_for_best</a> is a version
|
||||
of the search engine which returns a single result (or none): the best one.
|
||||
Best is defined by <a href="2-nst.html#SP9" class="internal">Nests::better_result</a> and makes careful use of both
|
||||
Best is defined by <a href="2-nst.html#SP10" class="internal">Nests::better_result</a> and makes careful use of both
|
||||
semantic versioning and the user's intentions to ensure a happy outcome.
|
||||
For example, if an Inform project says
|
||||
</p>
|
||||
|
@ -213,7 +213,7 @@ For example, if an Inform project says
|
|||
<p>Include Upturned Faces by Raphael.</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary">then <a href="2-nst.html#SP8" class="internal">Nests::search_for_best</a> will be used to seek which copy of this
|
||||
<p class="commentary">then <a href="2-nst.html#SP9" class="internal">Nests::search_for_best</a> will be used to seek which copy of this
|
||||
extension to use.
|
||||
</p>
|
||||
|
||||
|
@ -297,7 +297,7 @@ templates, there are no dependencies, so there's nothing to build. For kits,
|
|||
extensions and projects, the task is performed by <a href="5-ks.html#SP14" class="internal">Kits::construct_graph</a>,
|
||||
<a href="5-es.html#SP9" class="internal">Extensions::construct_graph</a> and <a href="5-ps2.html#SP33" class="internal">Projects::construct_graph</a>. Kits are
|
||||
graphed when the Supervisor "goes operational", because
|
||||
<a href="1-ic.html#SP10" class="internal">Supervisor::go_operational</a> calls <a href="2-cps.html#SP8" class="internal">Copies::construct_graph</a> for
|
||||
<a href="1-ic.html#SP12" class="internal">Supervisor::go_operational</a> calls <a href="2-cps.html#SP8" class="internal">Copies::construct_graph</a> for
|
||||
every extant copy.
|
||||
</p>
|
||||
|
||||
|
@ -505,7 +505,7 @@ i.e., has edges out to.
|
|||
<p class="commentary">How does one "build a vertex", though? The answer is that if a vertex has been
|
||||
given a <a href="3-bs.html#SP1" class="internal">build_script</a>, one follows this script. The script is only a list
|
||||
of <a href="3-bs2.html#SP3" class="internal">build_step</a> objects, and each step is an application of a <a href="3-bs2.html#SP1" class="internal">build_skill</a>.
|
||||
There are only a few skills known to the Supervisor, created by <a href="1-ic.html#SP3" class="internal">Supervisor::start</a>.
|
||||
There are only a few skills known to the Supervisor, created by <a href="1-ic.html#SP5" class="internal">Supervisor::start</a>.
|
||||
For example, assimilating a kit is a skill; but the need to apply this skill to
|
||||
a particular copy of <span class="extract"><span class="ConsoleText-extract-syntax">WorldModelKit</span></span> is a build step.
|
||||
</p>
|
||||
|
|
|
@ -87,9 +87,12 @@ error in this case.
|
|||
if (D->location_if_file) Supervisor::set_I7_source(D->location_if_file);
|
||||
}
|
||||
if ((LinkedLists::len(unsorted_nest_list) == 0) ||
|
||||
((others_exist == FALSE) && (D)))
|
||||
((others_exist == FALSE) && (D))) {
|
||||
SVEXPLAIN(1, "(in absence of explicit -internal, inventing -internal %p)\n",
|
||||
Supervisor::default_internal_path());
|
||||
Supervisor::add_nest(
|
||||
Pathnames::from_text(I"inform7/Internal"), INTERNAL_NEST_TAG);
|
||||
Supervisor::default_internal_path(), INTERNAL_NEST_TAG);
|
||||
}
|
||||
Supervisor::optioneering_complete(D, FALSE, &Main::load_preform);
|
||||
inform_project *proj;
|
||||
LOOP_OVER(proj, inform_project)
|
||||
|
@ -359,6 +362,8 @@ other options to the selection defined here.
|
|||
@e RESULTS_CLSW
|
||||
@e INSTALL_CLSW
|
||||
@e CONFIRMED_CLSW
|
||||
@e VERBOSE_CLSW
|
||||
@e VERBOSITY_CLSW
|
||||
|
||||
@<Read the command line@> =
|
||||
CommandLine::declare_heading(
|
||||
|
@ -424,6 +429,10 @@ other options to the selection defined here.
|
|||
L"write HTML report file to X (for use within Inform GUI apps)");
|
||||
CommandLine::declare_boolean_switch(CONFIRMED_CLSW, L"confirmed", 1,
|
||||
L"confirm installation in the Inform GUI apps", TRUE);
|
||||
CommandLine::declare_boolean_switch(VERBOSE_CLSW, L"verbose", 1,
|
||||
L"equivalent to -verbosity=1", FALSE);
|
||||
CommandLine::declare_numerical_switch(VERBOSITY_CLSW, L"verbosity", 1,
|
||||
L"how much explanation to print: lowest is 0 (default), highest is 3");
|
||||
Supervisor::declare_options();
|
||||
|
||||
CommandLine::read(argc, argv, NULL, &Main::option, &Main::bareword);
|
||||
|
@ -491,6 +500,8 @@ void Main::option(int id, int val, text_stream *arg, void *state) {
|
|||
case INSTALL_CLSW: to_install = Main::file_or_path_to_copy(arg, TRUE); break;
|
||||
case RESULTS_CLSW: InbuildReport::set_filename(Filenames::from_text(arg)); break;
|
||||
case CONFIRMED_CLSW: confirmed = val; break;
|
||||
case VERBOSE_CLSW: Supervisor::set_verbosity(1); break;
|
||||
case VERBOSITY_CLSW: Supervisor::set_verbosity(val); break;
|
||||
}
|
||||
Supervisor::option(id, val, arg, state);
|
||||
}
|
||||
|
|
|
@ -30,6 +30,8 @@ usage: inbuild [-TASK] TARGET1 TARGET2 ...
|
|||
-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
|
||||
-verbose equivalent to -verbosity=1 (default is -no-verbose)
|
||||
-verbosity=N how much explanation to print: lowest is 0 (default), highest is 3
|
||||
-verify-registry X verify roster.json metadata of registry in the directory X
|
||||
-no-versions-in-filenames don't append _v number to destination filenames on -copy-to or -sync-to (default is -versions-in-filenames)
|
||||
|
||||
|
|
|
@ -2,6 +2,25 @@
|
|||
|
||||
Who shall supervise the supervisor? This section of code will.
|
||||
|
||||
@h Verbosity.
|
||||
It is both a strength and a source of anxiety that build managers work in
|
||||
an autonomous sort of way, doing "whatever is necessary". Some users want
|
||||
silence while this happens, and others expect detailed explanations.
|
||||
|
||||
= (early code)
|
||||
int supervisor_verbosity = 0;
|
||||
#define SVEXPLAIN(level, args...) { \
|
||||
if (supervisor_verbosity >= level) Writers::printf(STDOUT, args); \
|
||||
}
|
||||
|
||||
@ =
|
||||
void Supervisor::set_verbosity(int level) {
|
||||
if (level < 0) level = 0;
|
||||
if (level > 3) level = 3;
|
||||
supervisor_verbosity = level;
|
||||
if (level > 0) WRITE_TO(STDOUT, "(Verbosity set to %d)\n", level);
|
||||
}
|
||||
|
||||
@h Phases.
|
||||
The //supervisor// module provides services to the parent tool.
|
||||
|
||||
|
@ -37,10 +56,25 @@ out of turn.
|
|||
=
|
||||
int inbuild_phase = STARTUP_INBUILD_PHASE;
|
||||
void Supervisor::enter_phase(int p) {
|
||||
if (p <= inbuild_phase) internal_error("phases out of sequence");
|
||||
SVEXPLAIN(2, "(Supervisor phase %d: %S -> %d: %S)\n",
|
||||
inbuild_phase, Supervisor::phase_name(inbuild_phase), p, Supervisor::phase_name(p));
|
||||
inbuild_phase = p;
|
||||
}
|
||||
|
||||
text_stream *Supervisor::phase_name(int p) {
|
||||
switch (p) {
|
||||
case STARTUP_INBUILD_PHASE: return I"startup";
|
||||
case CONFIGURATION_INBUILD_PHASE: return I"configuration";
|
||||
case PRETINKERING_INBUILD_PHASE: return I"pretinkering";
|
||||
case TINKERING_INBUILD_PHASE: return I"tinkering";
|
||||
case NESTED_INBUILD_PHASE: return I"nested";
|
||||
case TARGETED_INBUILD_PHASE: return I"targeted";
|
||||
case GRAPH_CONSTRUCTION_INBUILD_PHASE: return I"graphing";
|
||||
case OPERATIONAL_INBUILD_PHASE: return I"operational";
|
||||
}
|
||||
return I"<unknown phase>";
|
||||
}
|
||||
|
||||
@h Startup phase.
|
||||
The following is called when the //supervisor// module starts up.
|
||||
|
||||
|
@ -71,7 +105,7 @@ void Supervisor::start(void) {
|
|||
|
||||
ControlStructures::create_standard();
|
||||
|
||||
inbuild_phase = CONFIGURATION_INBUILD_PHASE;
|
||||
Supervisor::enter_phase(CONFIGURATION_INBUILD_PHASE);
|
||||
Supervisor::set_defaults();
|
||||
}
|
||||
|
||||
|
@ -209,6 +243,7 @@ void Supervisor::set_inter_pipeline(text_stream *name) {
|
|||
if (inter_pipeline_name == NULL) inter_pipeline_name = Str::new();
|
||||
else Str::clear(inter_pipeline_name);
|
||||
WRITE_TO(inter_pipeline_name, "%S", name);
|
||||
SVEXPLAIN(1, "(inter pipeline name set to %S)\n", name);
|
||||
}
|
||||
|
||||
@ The //supervisor// module itself doesn't parse command-line options: that's for
|
||||
|
@ -308,23 +343,23 @@ int (*shared_preform_callback)(inform_language *);
|
|||
void Supervisor::optioneering_complete(inbuild_copy *C, int compile_only,
|
||||
int (*preform_callback)(inform_language *)) {
|
||||
RUN_ONLY_IN_PHASE(CONFIGURATION_INBUILD_PHASE)
|
||||
inbuild_phase = PRETINKERING_INBUILD_PHASE;
|
||||
Supervisor::enter_phase(PRETINKERING_INBUILD_PHASE);
|
||||
shared_preform_callback = preform_callback;
|
||||
|
||||
@<Find the virtual machine@>;
|
||||
Supervisor::make_project_from_command_line(C);
|
||||
|
||||
Supervisor::create_default_externals();
|
||||
inbuild_phase = TINKERING_INBUILD_PHASE;
|
||||
Supervisor::enter_phase(TINKERING_INBUILD_PHASE);
|
||||
Supervisor::sort_nest_list();
|
||||
|
||||
inbuild_phase = NESTED_INBUILD_PHASE;
|
||||
Supervisor::enter_phase(NESTED_INBUILD_PHASE);
|
||||
inform_project *proj;
|
||||
LOOP_OVER(proj, inform_project)
|
||||
Projects::set_compilation_options(proj,
|
||||
this_is_a_release_compile, compile_only, rng_seed_at_start_of_play);
|
||||
|
||||
inbuild_phase = TARGETED_INBUILD_PHASE;
|
||||
Supervisor::enter_phase(TARGETED_INBUILD_PHASE);
|
||||
}
|
||||
|
||||
@ The VM to be used depends on the settings of all three of |-format|,
|
||||
|
@ -350,6 +385,7 @@ target_vm *Supervisor::current_vm(void) {
|
|||
void Supervisor::set_current_vm(target_vm *VM) {
|
||||
RUN_ONLY_IN_PHASE(PRETINKERING_INBUILD_PHASE)
|
||||
current_target_VM = VM;
|
||||
SVEXPLAIN(1, "(target VM set to %S)\n", TargetVMs::get_full_format_text(VM));
|
||||
}
|
||||
|
||||
@h The Graph Construction and Operational phases.
|
||||
|
@ -366,9 +402,9 @@ We do that copy by copy.
|
|||
=
|
||||
void Supervisor::go_operational(void) {
|
||||
RUN_ONLY_IN_PHASE(TARGETED_INBUILD_PHASE)
|
||||
inbuild_phase = GRAPH_CONSTRUCTION_INBUILD_PHASE;
|
||||
Supervisor::enter_phase(GRAPH_CONSTRUCTION_INBUILD_PHASE);
|
||||
Copies::graph_everything();
|
||||
inbuild_phase = OPERATIONAL_INBUILD_PHASE;
|
||||
Supervisor::enter_phase(OPERATIONAL_INBUILD_PHASE);
|
||||
if (census_mode) ExtensionWebsite::handle_census_mode();
|
||||
}
|
||||
|
||||
|
@ -415,12 +451,17 @@ inbuild_nest *Supervisor::add_nest(pathname *P, int tag) {
|
|||
unsorted_nest_list = NEW_LINKED_LIST(inbuild_nest);
|
||||
inbuild_nest *N = Nests::new(P);
|
||||
Nests::set_tag(N, tag);
|
||||
int set_shared = FALSE;
|
||||
ADD_TO_LINKED_LIST(N, inbuild_nest, unsorted_nest_list);
|
||||
if ((tag == EXTERNAL_NEST_TAG) && (shared_external_nest == NULL))
|
||||
shared_external_nest = N;
|
||||
if ((tag == INTERNAL_NEST_TAG) && (shared_internal_nest == NULL))
|
||||
shared_internal_nest = N;
|
||||
if ((tag == EXTERNAL_NEST_TAG) && (shared_external_nest == NULL)) {
|
||||
shared_external_nest = N; set_shared = TRUE;
|
||||
}
|
||||
if ((tag == INTERNAL_NEST_TAG) && (shared_internal_nest == NULL)) {
|
||||
shared_internal_nest = N; set_shared = TRUE;
|
||||
}
|
||||
if (tag == INTERNAL_NEST_TAG) Nests::protect(N);
|
||||
SVEXPLAIN(2, "(%S%S nest set at %p)\n",
|
||||
(set_shared)?I"shared ":I"", Nests::tag_name(tag), P);
|
||||
return N;
|
||||
}
|
||||
|
||||
|
@ -437,6 +478,8 @@ void Supervisor::create_default_externals(void) {
|
|||
DISCARD_TEXT(SF)
|
||||
}
|
||||
P = Pathnames::down(P, I"Inform");
|
||||
SVEXPLAIN(1, "(in absence of explicit -external, inventing -external %p)\n", P);
|
||||
SVEXPLAIN(2, "(because home path, according to environment variable HOME, is %p)\n", home_path);
|
||||
E = Supervisor::add_nest(P, EXTERNAL_NEST_TAG);
|
||||
}
|
||||
}
|
||||
|
@ -461,6 +504,20 @@ void Supervisor::sort_nest_list(void) {
|
|||
LOOP_OVER_LINKED_LIST(N, inbuild_nest, unsorted_nest_list)
|
||||
if (Nests::get_tag(N) == INTERNAL_NEST_TAG)
|
||||
ADD_TO_LINKED_LIST(N, inbuild_nest, shared_nest_list);
|
||||
Supervisor::report_nest_list(2, I"unsorted", unsorted_nest_list);
|
||||
Supervisor::report_nest_list(1, I"shared", shared_nest_list);
|
||||
SVEXPLAIN(1, "(shared internal nest: %p)\n", Nests::get_location(shared_internal_nest));
|
||||
SVEXPLAIN(1, "(shared external nest: %p)\n", Nests::get_location(shared_external_nest));
|
||||
}
|
||||
|
||||
void Supervisor::report_nest_list(int level, text_stream *desc, linked_list *L) {
|
||||
SVEXPLAIN(level, "(%S nest list:", desc);
|
||||
if (LinkedLists::len(L) == 0) { SVEXPLAIN(level, " empty)\n"); return; }
|
||||
inbuild_nest *N;
|
||||
LOOP_OVER_LINKED_LIST(N, inbuild_nest, L)
|
||||
SVEXPLAIN(level, "\n %S %p",
|
||||
Nests::tag_name(Nests::get_tag(N)), Nests::get_location(N));
|
||||
SVEXPLAIN(level, ")\n");
|
||||
}
|
||||
|
||||
@ And the rest of Inform or Inbuild can now use:
|
||||
|
@ -482,6 +539,14 @@ inbuild_nest *Supervisor::external(void) {
|
|||
return shared_external_nest;
|
||||
}
|
||||
|
||||
@ This is the default location for internal resources, to be used if there is
|
||||
no better indication of where they are.
|
||||
|
||||
=
|
||||
pathname *Supervisor::default_internal_path(void) {
|
||||
return Pathnames::from_text(I"inform7/Internal");
|
||||
}
|
||||
|
||||
@ This tells the //html// module where to find, say, CSS files. Those files
|
||||
are not managed by //inbuild//, have no versions, or anything fancy: they're
|
||||
just plain old files.
|
||||
|
@ -491,7 +556,7 @@ just plain old files.
|
|||
=
|
||||
pathname *Supervisor::installed_files(void) {
|
||||
if (shared_internal_nest) return shared_internal_nest->location;
|
||||
return Pathnames::from_text(I"inform7/Internal");
|
||||
return Supervisor::default_internal_path();
|
||||
}
|
||||
|
||||
@ As noted above, the transient area is used for ephemera such as dynamically
|
||||
|
@ -514,7 +579,7 @@ Inform 7 program. This can be presented to it either in a project bundle
|
|||
temporary build files), or as a single file (just a text file containing
|
||||
source text).
|
||||
|
||||
It is also possible o set a folder to be the project bundle, and nevertheless
|
||||
It is also possible to set a folder to be the project bundle, and nevertheless
|
||||
specify a file somewhere else to be the source text. What you can't do is
|
||||
specify the bundle twice, or specify the file twice.
|
||||
|
||||
|
@ -526,6 +591,7 @@ int Supervisor::set_I7_source(filename *F) {
|
|||
RUN_ONLY_FROM_PHASE(CONFIGURATION_INBUILD_PHASE)
|
||||
if (project_file_request) return FALSE;
|
||||
project_file_request = F;
|
||||
SVEXPLAIN(1, "(set project source file to: %f)\n", project_file_request);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -540,13 +606,18 @@ int Supervisor::set_I7_bundle(pathname *P) {
|
|||
RUN_ONLY_FROM_PHASE(CONFIGURATION_INBUILD_PHASE)
|
||||
if (project_bundle_request) return FALSE;
|
||||
project_bundle_request = P;
|
||||
SVEXPLAIN(1, "(set project bundle path to: %p)\n", project_bundle_request);
|
||||
pathname *materials = Projects::materialise_pathname(
|
||||
Pathnames::up(P), Pathnames::directory_name(P));
|
||||
TEMPORARY_TEXT(leaf)
|
||||
WRITE_TO(leaf, "%s-settings.txt", PROGRAM_NAME);
|
||||
filename *expert_settings = Filenames::in(materials, leaf);
|
||||
if (TextFiles::exists(expert_settings))
|
||||
if (TextFiles::exists(expert_settings)) {
|
||||
SVEXPLAIN(1, "(reading further command-line settings from: %f)\n", expert_settings);
|
||||
CommandLine::also_read_file(expert_settings);
|
||||
} else {
|
||||
SVEXPLAIN(2, "(no command-line settings file is present at %f)\n");
|
||||
}
|
||||
DISCARD_TEXT(leaf)
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -568,14 +639,22 @@ void Supervisor::make_project_from_command_line(inbuild_copy *C) {
|
|||
pathname *P = NULL; /* result of |-project| at the command line */
|
||||
if (project_bundle_request) P = project_bundle_request;
|
||||
if (project_file_request) F = project_file_request;
|
||||
if (C == NULL) {
|
||||
if (P) {
|
||||
C = ProjectBundleManager::claim_folder_as_copy(P);
|
||||
if (C == NULL) Errors::fatal("No such Inform project directory");
|
||||
} else if (F) {
|
||||
C = ProjectFileManager::claim_file_as_copy(F);
|
||||
if (C == NULL) Errors::fatal("No such Inform source file");
|
||||
if (C) {
|
||||
if (C->location_if_path) {
|
||||
SVEXPLAIN(1, "(project identified by parent tool: %p)\n", C->location_if_path);
|
||||
} else {
|
||||
SVEXPLAIN(1, "(project identified by parent tool: %f)\n", C->location_if_file);
|
||||
}
|
||||
} else if (P) {
|
||||
SVEXPLAIN(1, "(project identified by -project: %p)\n", P);
|
||||
C = ProjectBundleManager::claim_folder_as_copy(P);
|
||||
if (C == NULL) Errors::fatal("No such Inform project directory");
|
||||
} else if (F) {
|
||||
SVEXPLAIN(1, "(project identified by -source: %f)\n", F);
|
||||
C = ProjectFileManager::claim_file_as_copy(F);
|
||||
if (C == NULL) Errors::fatal("No such Inform source file");
|
||||
} else {
|
||||
SVEXPLAIN(1, "(no designated project)\n");
|
||||
}
|
||||
if (C) {
|
||||
inform_project *proj = Projects::from_copy(C);
|
||||
|
@ -583,6 +662,8 @@ void Supervisor::make_project_from_command_line(inbuild_copy *C) {
|
|||
if (F) {
|
||||
Projects::set_primary_source(proj, F);
|
||||
Projects::set_primary_output(proj, transpiled_output_file);
|
||||
if (transpiled_output_file)
|
||||
SVEXPLAIN(1, "(transpiled output redirected to: %f)\n", transpiled_output_file);
|
||||
}
|
||||
chosen_project = proj;
|
||||
}
|
||||
|
|
|
@ -48,6 +48,17 @@ void Nests::set_tag(inbuild_nest *N, int t) {
|
|||
N->tag_value = t;
|
||||
}
|
||||
|
||||
text_stream *Nests::tag_name(int t) {
|
||||
switch (t) {
|
||||
case MATERIALS_NEST_TAG: return I"materials";
|
||||
case EXTERNAL_NEST_TAG: return I"external";
|
||||
case GENERIC_NEST_TAG: return I"generic";
|
||||
case INTERNAL_NEST_TAG: return I"internal";
|
||||
case EXTENSION_NEST_TAG: return I"extension";
|
||||
}
|
||||
return I"<unknown nest tag>";
|
||||
}
|
||||
|
||||
@ =
|
||||
void Nests::protect(inbuild_nest *N) {
|
||||
N->read_only = TRUE;
|
||||
|
@ -58,6 +69,12 @@ int Nests::is_protected(inbuild_nest *N) {
|
|||
return N->read_only;
|
||||
}
|
||||
|
||||
@ =
|
||||
pathname *Nests::get_location(inbuild_nest *N) {
|
||||
if (N == NULL) return NULL;
|
||||
return N->location;
|
||||
}
|
||||
|
||||
@h Search list.
|
||||
When we search for copies, we do so by looking through nests in a list. The
|
||||
following builds such lists, removing duplicates -- where duplicates are
|
||||
|
|
|
@ -221,11 +221,12 @@ inbuild_copy *ProjectBundleManager::claim_folder_as_copy(pathname *P) {
|
|||
if (Platform::is_folder_separator(Str::get_last_char(entry)) == FALSE) {
|
||||
TEMPORARY_TEXT(ext)
|
||||
Filenames::write_extension(ext, Filenames::from_text(entry));
|
||||
if (Str::eq_insensitive(ext, I".html") == FALSE) {
|
||||
if ((Str::eq_insensitive(ext, I".html") == FALSE) &&
|
||||
(Str::eq_insensitive(ext, I".xml") == FALSE)) {
|
||||
TEMPORARY_TEXT(error_text)
|
||||
WRITE_TO(error_text,
|
||||
"the 'Index' subdirectory of the project directory '%S' contains a "
|
||||
"file called '%S', but can only contain HTML files",
|
||||
"file called '%S', but can only contain HTML and XML files",
|
||||
Pathnames::directory_name(P), entry);
|
||||
Copies::attach_error(C, CopyErrors::new_T(PROJECT_MALFORMED_CE, -1, error_text));
|
||||
DISCARD_TEXT(error_text)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Total memory consumption was 123162K = 120 MB
|
||||
Total memory consumption was 123165K = 120 MB
|
||||
|
||||
---- was used for 2063851 objects, in 367798 frames in 0 x 800K = 0K = 0 MB:
|
||||
|
||||
|
@ -251,7 +251,7 @@ Total memory consumption was 123162K = 120 MB
|
|||
|
||||
100.0% was used for memory not allocated for objects:
|
||||
|
||||
57.5% text stream storage 72572840 bytes in 488028 claims
|
||||
57.5% text stream storage 72575744 bytes in 488060 claims
|
||||
4.2% dictionary storage 5319680 bytes in 7630 claims
|
||||
---- sorting 2752 bytes in 394 claims
|
||||
5.7% source text 7200000 bytes in 3 claims
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
100.0% in inform7 run
|
||||
67.3% in compilation to Inter
|
||||
45.2% in //Sequence::undertake_queued_tasks//
|
||||
4.7% in //MajorNodes::pre_pass//
|
||||
3.6% in //MajorNodes::pass_1//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
1.8% in //RTKindConstructors::compile//
|
||||
67.6% in compilation to Inter
|
||||
45.6% in //Sequence::undertake_queued_tasks//
|
||||
4.6% in //MajorNodes::pre_pass//
|
||||
3.5% in //MajorNodes::pass_1//
|
||||
1.7% in //ImperativeDefinitions::assess_all//
|
||||
1.7% in //RTKindConstructors::compile//
|
||||
1.4% in //RTPhrasebook::compile_entries//
|
||||
1.0% in //Sequence::lint_inter//
|
||||
0.7% in //ImperativeDefinitions::compile_first_block//
|
||||
|
@ -13,17 +13,17 @@
|
|||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.3% in //World::stage_V//
|
||||
5.0% not specifically accounted for
|
||||
28.9% in running Inter pipeline
|
||||
9.0% in step 5/15: load-binary-kits
|
||||
8.3% in step 14/15: generate inform6 -> auto.inf
|
||||
5.1% not specifically accounted for
|
||||
28.7% in running Inter pipeline
|
||||
9.3% in step 5/15: load-binary-kits
|
||||
8.2% in step 14/15: generate inform6 -> auto.inf
|
||||
5.7% in step 6/15: make-synoptic-module
|
||||
1.8% in step 9/15: make-identifiers-unique
|
||||
1.7% in step 9/15: make-identifiers-unique
|
||||
0.3% in step 11/15: eliminate-redundant-labels
|
||||
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
|
||||
2.1% not specifically accounted for
|
||||
1.8% not specifically accounted for
|
||||
3.2% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformExtrasKit",
|
||||
"version": "10.2.0-beta+6W51"
|
||||
"version": "10.2.0-beta+6W52"
|
||||
},
|
||||
"kit-details": {
|
||||
"has-priority": 1
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformKit",
|
||||
"version": "10.2.0-beta+6W51"
|
||||
"version": "10.2.0-beta+6W52"
|
||||
},
|
||||
"needs": [ {
|
||||
"unless": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "CommandParserKit",
|
||||
"version": "10.2.0-beta+6W51"
|
||||
"version": "10.2.0-beta+6W52"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "EnglishLanguageKit",
|
||||
"version": "10.2.0-beta+6W51"
|
||||
"version": "10.2.0-beta+6W52"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "WorldModelKit",
|
||||
"version": "10.2.0-beta+6W51"
|
||||
"version": "10.2.0-beta+6W52"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
Loading…
Reference in a new issue