mirror of
https://github.com/ganelson/inform.git
synced 2024-06-29 05:24:57 +03:00
Added -build-locate and -use-locate options to inbuild
This commit is contained in:
parent
03d5d1e40d
commit
95212828d3
|
@ -137,11 +137,21 @@ error in this case.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><a href="1-mn.html#SP2_7" class="function-link"><span class="function-syntax">Main::list_of_targets</span></a><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">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</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_copy</span><span class="plain-syntax"> *</span><span class="identifier-syntax">D</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</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">others_exist</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</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">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">inbuild_copy</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">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">project_bundle_genre</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">project_file_genre</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">D</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">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="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_5" 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>
|
||||
|
@ -185,6 +195,8 @@ utility functions in the <a href="../supervisor-module/index.html" class="intern
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">GRAPH_TTASK</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_NEEDS_TTASK</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">BUILD_NEEDS_TTASK</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_LOCATE_TTASK</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">BUILD_LOCATE_TTASK</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">ARCHIVE_TTASK</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">ARCHIVE_TO_TTASK</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_MISSING_TTASK</span>
|
||||
|
@ -201,8 +213,10 @@ utility functions in the <a href="../supervisor-module/index.html" class="intern
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">inbuild_task</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">INSPECT_TTASK:</span><span class="plain-syntax"> </span><a href="../supervisor-module/2-cps.html#SP10" class="function-link"><span class="function-syntax">Copies::inspect</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</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">GRAPH_TTASK:</span><span class="plain-syntax"> </span><a href="../supervisor-module/2-cps.html#SP12" class="function-link"><span class="function-syntax">Copies::show_graph</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</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">USE_NEEDS_TTASK:</span><span class="plain-syntax"> </span><a href="../supervisor-module/2-cps.html#SP12" class="function-link"><span class="function-syntax">Copies::show_needs</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</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">BUILD_NEEDS_TTASK:</span><span class="plain-syntax"> </span><a href="../supervisor-module/2-cps.html#SP12" class="function-link"><span class="function-syntax">Copies::show_needs</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</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">USE_NEEDS_TTASK:</span><span class="plain-syntax"> </span><a href="../supervisor-module/2-cps.html#SP12" class="function-link"><span class="function-syntax">Copies::show_needs</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</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">BUILD_NEEDS_TTASK:</span><span class="plain-syntax"> </span><a href="../supervisor-module/2-cps.html#SP12" class="function-link"><span class="function-syntax">Copies::show_needs</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</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">USE_LOCATE_TTASK:</span><span class="plain-syntax"> </span><a href="../supervisor-module/2-cps.html#SP12" class="function-link"><span class="function-syntax">Copies::show_needs</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</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">BUILD_LOCATE_TTASK:</span><span class="plain-syntax"> </span><a href="../supervisor-module/2-cps.html#SP12" class="function-link"><span class="function-syntax">Copies::show_needs</span></a><span class="plain-syntax">(</span><span class="constant-syntax">STDOUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</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">ARCHIVE_TTASK:</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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
|
@ -366,6 +380,8 @@ other options to the selection defined here.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">GRAPH_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_NEEDS_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">BUILD_NEEDS_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_LOCATE_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">BUILD_LOCATE_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_MISSING_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">BUILD_MISSING_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">ARCHIVE_CLSW</span>
|
||||
|
@ -402,6 +418,10 @@ other options to the selection defined here.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"show all the extensions, kits and so on needed to use"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BUILD_NEEDS_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"build-needs"</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">"show all the extensions, kits and so on needed to build"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">USE_LOCATE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"use-locate"</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">"show file paths of all the extensions, kits and so on needed to use"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BUILD_LOCATE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"build-locate"</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">"show file paths of all the extensions, kits and so on needed to build"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">USE_MISSING_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"use-missing"</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">"show the extensions, kits and so on which are needed to use but missing"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-cla.html#SP5" class="function-link"><span class="function-syntax">CommandLine::declare_switch</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BUILD_MISSING_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"build-missing"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
|
||||
|
@ -424,10 +444,6 @@ other options to the selection defined here.
|
|||
|
||||
<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>
|
||||
|
||||
<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><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><span class="identifier-syntax">path_to_inbuild</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-pth.html#SP3" class="function-link"><span class="function-syntax">Pathnames::installation_path</span></a><span class="plain-syntax">(</span><span class="string-syntax">"INBUILD_PATH"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"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>
|
||||
|
@ -443,6 +459,8 @@ other options to the selection defined here.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">GRAPH_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_task</span><span class="plain-syntax"> = </span><span class="constant-syntax">GRAPH_TTASK</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">USE_NEEDS_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_task</span><span class="plain-syntax"> = </span><span class="constant-syntax">USE_NEEDS_TTASK</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">BUILD_NEEDS_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_task</span><span class="plain-syntax"> = </span><span class="constant-syntax">BUILD_NEEDS_TTASK</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">USE_LOCATE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_task</span><span class="plain-syntax"> = </span><span class="constant-syntax">USE_LOCATE_TTASK</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">BUILD_LOCATE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_task</span><span class="plain-syntax"> = </span><span class="constant-syntax">BUILD_LOCATE_TTASK</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">ARCHIVE_TO_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">destination_nest</span><span class="plain-syntax"> = </span><a href="../supervisor-module/2-nst.html#SP1" class="function-link"><span class="function-syntax">Nests::new</span></a><span class="plain-syntax">(</span><a href="../../../inweb/foundation-module/3-pth.html#SP5" class="function-link"><span class="function-syntax">Pathnames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inbuild_task</span><span class="plain-syntax"> = </span><span class="constant-syntax">ARCHIVE_TO_TTASK</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -64,6 +64,7 @@ and those not documented in this manual are covered in that one.
|
|||
<span class="plain-syntax">-archive sync copies of all extensions, kits and so on needed for -project into Materials</span>
|
||||
<span class="plain-syntax">-archive-to X sync copies of all extensions, kits and so on needed into nest X</span>
|
||||
<span class="plain-syntax">-build incrementally build target(s)</span>
|
||||
<span class="plain-syntax">-build-locate show file paths of all the extensions, kits and so on needed to build</span>
|
||||
<span class="plain-syntax">-build-missing show the extensions, kits and so on which are needed to build but missing</span>
|
||||
<span class="plain-syntax">-build-needs show all the extensions, kits and so on needed to build</span>
|
||||
<span class="plain-syntax">-build-trace show verbose reasoning during -build (default is -no-build-trace)</span>
|
||||
|
@ -76,6 +77,7 @@ and those not documented in this manual are covered in that one.
|
|||
<span class="plain-syntax">-rebuild completely rebuild target(s)</span>
|
||||
<span class="plain-syntax">-sync-to X forcibly copy target(s) to nest X, even if prior version already there</span>
|
||||
<span class="plain-syntax">-tools X make X the directory of intools executables, and exit developer mode</span>
|
||||
<span class="plain-syntax">-use-locate show file paths of all the extensions, kits and so on needed to use</span>
|
||||
<span class="plain-syntax">-use-missing show the extensions, kits and so on which are needed to use but missing</span>
|
||||
<span class="plain-syntax">-use-needs show all the extensions, kits and so on needed to use</span>
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="index.html">inbuild</a></li><li><a href="index.html#M">Manual</a></li><li><b>Using Inbuild</b></li></ul></div>
|
||||
<p class="purpose">An introduction to the use of Inbuild on the command line.</p>
|
||||
|
||||
<ul class="toc"><li><a href="M-ui.html#SP1">§1. What Inbuild is</a></li><li><a href="M-ui.html#SP2">§2. Installation</a></li><li><a href="M-ui.html#SP3">§3. Basic concepts</a></li><li><a href="M-ui.html#SP5">§5. Graphs</a></li><li><a href="M-ui.html#SP10">§10. Building</a></li><li><a href="M-ui.html#SP12">§12. Specifying what to act on</a></li><li><a href="M-ui.html#SP14">§14. Nests and searches</a></li><li><a href="M-ui.html#SP17">§17. Copy, sync and archive</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="M-ui.html#SP1">§1. What Inbuild is</a></li><li><a href="M-ui.html#SP2">§2. Installation</a></li><li><a href="M-ui.html#SP3">§3. Basic concepts</a></li><li><a href="M-ui.html#SP5">§5. Graphs</a></li><li><a href="M-ui.html#SP11">§11. Building</a></li><li><a href="M-ui.html#SP13">§13. Specifying what to act on</a></li><li><a href="M-ui.html#SP15">§15. Nests and searches</a></li><li><a href="M-ui.html#SP18">§18. Copy, sync and archive</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. What Inbuild is. </b>Inbuild is a rudimentary build and package manager for the Inform tools.
|
||||
It consists of a large part of the front end of the Inform 7 compiler,
|
||||
|
@ -321,7 +321,14 @@ respectively. At present, it has no means of fetching missing resources from
|
|||
any central repository.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. Building. </b>The graph for a copy tells Inbuild not only what is necessary for a build,
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b>Finally, <span class="extract"><span class="ConsoleText-extract-syntax">-build-locate</span></span> and <span class="extract"><span class="ConsoleText-extract-syntax">-use-locate</span></span> are identical to <span class="extract"><span class="ConsoleText-extract-syntax">-build-needs</span></span>
|
||||
and <span class="extract"><span class="ConsoleText-extract-syntax">-use-needs</span></span>, except that they print a list of the file system paths at
|
||||
which the relevant resources have been found. This can be useful if you're
|
||||
managing a complex mass of extensions, and aren't sure (say) which actual copy
|
||||
of Xylophones inbuild proposes to use, and from where.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. Building. </b>The graph for a copy tells Inbuild not only what is necessary for a build,
|
||||
but also how to perform that build.
|
||||
</p>
|
||||
|
||||
|
@ -365,7 +372,7 @@ Inbuild is a call to <span class="extract"><span class="ConsoleText-extract-synt
|
|||
timestamps of files are ignored and everything is remade from scratch.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b>It takes a certain trust to just let Inbuild rip, and if you don't feel that
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. </b>It takes a certain trust to just let Inbuild rip, and if you don't feel that
|
||||
trust, adding the <span class="extract"><span class="ConsoleText-extract-syntax">-dry</span></span> switch causes shell commands to be printed out but
|
||||
not actually executed — a dry run. If you are debugging Inbuild, you may
|
||||
also want to look at the copious output produced when <span class="extract"><span class="ConsoleText-extract-syntax">-build-trace</span></span> is used.
|
||||
|
@ -380,7 +387,7 @@ folder as Inbuild itself, side by side. If not, you can use <span class="extract
|
|||
specify path <span class="extract"><span class="ConsoleText-extract-syntax">P</span></span> as the home of the other Intools.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. Specifying what to act on. </b>In all of the examples above, Inbuild is given just one copy to act on.
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. Specifying what to act on. </b>In all of the examples above, Inbuild is given just one copy to act on.
|
||||
(That action may end up involving lots of other copies, but only one is
|
||||
mentioned on the command line.) In fact it's legal to give a list of
|
||||
copies to work on, one at a time, except that only one of those copies
|
||||
|
@ -410,7 +417,7 @@ the project target using <span class="extract"><span class="ConsoleText-extract-
|
|||
been missed out.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>§13. </b>Listing filenames or pathnames of copies on the command line, or using the
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. </b>Listing filenames or pathnames of copies on the command line, or using the
|
||||
<span class="extract"><span class="ConsoleText-extract-syntax">-contents-of D</span></span> switch, is only possible if we know where in the file system
|
||||
these copies are; and sometimes we do not.
|
||||
</p>
|
||||
|
@ -438,7 +445,7 @@ and minimum version number, use <span class="extract"><span class="ConsoleText-e
|
|||
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
||||
<span class="ConsoleText-plain-syntax"> -matching 'genre=extension,author=Emily Short,title=Locksmith,min=6.1-alpha.2,max=17.2'</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. Nests and searches. </b>When searching with <span class="extract"><span class="ConsoleText-extract-syntax">-matching R</span></span>, or indeed when running Inform and needing
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. Nests and searches. </b>When searching with <span class="extract"><span class="ConsoleText-extract-syntax">-matching R</span></span>, or indeed when running Inform and needing
|
||||
to find certain resources, Inbuild looks inside what are called "nests".
|
||||
</p>
|
||||
|
||||
|
@ -503,7 +510,7 @@ versions in the same nest). But if the user asks for
|
|||
nest with the right major version number (3).
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. </b>In most runs of the Inform compiler, three nests are used: the "internal"
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. </b>In most runs of the Inform compiler, three nests are used: the "internal"
|
||||
one, so-called, which holds built-in extensions and is read-only; the
|
||||
"external" one, which will be somewhere outside of the Inform GUI app, and
|
||||
will hold additional extensions downloaded by the user; and the Materials
|
||||
|
@ -528,7 +535,7 @@ nest is of course not present.
|
|||
<p class="commentary">In addition, extra nests can be specified with <span class="extract"><span class="extract-syntax">-nest N</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. </b>When Inbuild searches for some resource needed by Inform — let's continue
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. </b>When Inbuild searches for some resource needed by Inform — let's continue
|
||||
to use the Locksmith extension as an example — it always has some range of
|
||||
version numbers in mind: it will only accept a version in that range. (The
|
||||
range can be unlimited, in which case any version is acceptable.)
|
||||
|
@ -567,7 +574,7 @@ there's a later version in the external area: Materials always wins. But
|
|||
Materials folder doesn't qualify.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. Copy, sync and archive. </b>Clerical work is generally best done automatically, and Inbuild offers some
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. Copy, sync and archive. </b>Clerical work is generally best done automatically, and Inbuild offers some
|
||||
useful filing commands.
|
||||
</p>
|
||||
|
||||
|
@ -590,7 +597,7 @@ would like to execute but doesn't execute them.
|
|||
already in <span class="extract"><span class="ConsoleText-extract-syntax">N</span></span>, rather than producing an error if a collision occurs.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>The <span class="extract"><span class="ConsoleText-extract-syntax">-archive-to N</span></span> command performs <span class="extract"><span class="ConsoleText-extract-syntax">-sync-to N</span></span> on any resource needed
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>The <span class="extract"><span class="ConsoleText-extract-syntax">-archive-to N</span></span> command performs <span class="extract"><span class="ConsoleText-extract-syntax">-sync-to N</span></span> on any resource needed
|
||||
to build the copy it is working on (with one exception, for technical reasons:
|
||||
the configuration file telling Inform how to use the English natural language).
|
||||
</p>
|
||||
|
|
|
@ -465,8 +465,11 @@ rather than <span class="extract"><span class="extract-syntax">core</span></span
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Main::bareword</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">Main::bareword</span></span>:<br/><a href="1-mn.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">opt</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">state</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#SP17" class="function-link"><span class="function-syntax">Supervisor::set_I7_source</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_text</span></a><span class="plain-syntax">(</span><span class="string-syntax">"unknown command line argument: %S (see -help)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/foundation-module/4-sm.html#SP23" class="function-link"><span class="function-syntax">Str::is_whitespace</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../../../inweb/foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">opt</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#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="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_text</span></a><span class="plain-syntax">(</span><span class="string-syntax">"unknown command line argument: %S (see -help)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">opt</span><span class="plain-syntax">);</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">Main::silence_is_golden</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">Main::silence_is_golden</span></span>:<br/>Source Text - <a href="../supervisor-module/6-st.html#SP3">§3</a><br/>Using Problems - <a href="../core-module/2-up2.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -70,28 +70,26 @@ which take more than 1/1000th of the total running time.
|
|||
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">100.0% in inform7 run</span>
|
||||
<span class="plain-syntax"> 71.1% in compilation to Inter</span>
|
||||
<span class="plain-syntax"> 50.5% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
<span class="plain-syntax"> 4.3% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
|
||||
<span class="plain-syntax"> 3.5% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
|
||||
<span class="plain-syntax"> 71.8% in compilation to Inter</span>
|
||||
<span class="plain-syntax"> 51.2% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
<span class="plain-syntax"> 4.6% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pre_pass</a>
|
||||
<span class="plain-syntax"> 3.4% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_1</a>
|
||||
<span class="plain-syntax"> 1.8% in </span><a href="../assertions-module/5-id.html#SP4" class="internal">ImperativeDefinitions::assess_all</a>
|
||||
<span class="plain-syntax"> 1.8% in </span><a href="../runtime-module/6-pi.html#SP1" class="internal">RTPhrasebook::compile_entries</a>
|
||||
<span class="plain-syntax"> 1.4% in </span><a href="../runtime-module/5-kc.html#SP10" class="internal">RTKindConstructors::compile</a>
|
||||
<span class="plain-syntax"> 1.0% in </span><a href="../core-module/1-htc.html#SP12" class="internal">Sequence::lint_inter</a>
|
||||
<span class="plain-syntax"> 0.6% in </span><a href="../assertions-module/2-ptmn.html#SP1" class="internal">MajorNodes::pass_2</a>
|
||||
<span class="plain-syntax"> 0.6% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
<span class="plain-syntax"> 0.6% in </span><a href="../knowledge-module/5-tmw.html#SP5" class="internal">World::stage_V</a>
|
||||
<span class="plain-syntax"> 0.4% in </span><a href="../assertions-module/5-id.html#SP5" class="internal">ImperativeDefinitions::compile_first_block</a>
|
||||
<span class="plain-syntax"> 0.4% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
<span class="plain-syntax"> 0.4% in </span><a href="../core-module/1-htc.html#SP9" class="internal">Sequence::undertake_queued_tasks</a>
|
||||
<span class="plain-syntax"> 0.2% in </span><a href="../runtime-module/3-cm.html#SP1" class="internal">CompletionModule::compile</a>
|
||||
<span class="plain-syntax"> 0.2% in </span><a href="../knowledge-module/4-is.html#SP27" class="internal">InferenceSubjects::emit_all</a>
|
||||
<span class="plain-syntax"> 0.2% in </span><a href="../runtime-module/5-kc.html#SP10_7" class="internal">RTKindConstructors::compile_permissions</a>
|
||||
<span class="plain-syntax"> 0.2% in </span><a href="../core-module/1-wtc.html#SP9" class="internal">Task::make_built_in_kind_constructors</a>
|
||||
<span class="plain-syntax"> 0.2% in </span><a href="../knowledge-module/5-tmw.html#SP3" class="internal">World::stages_II_and_III</a>
|
||||
<span class="plain-syntax"> 2.9% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 26.0% in running Inter pipeline</span>
|
||||
<span class="plain-syntax"> 10.2% in step 14/15: generate inform6 -> auto.inf</span>
|
||||
<span class="plain-syntax"> 5.8% in step 5/15: load-binary-kits</span>
|
||||
<span class="plain-syntax"> 3.4% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 25.5% in running Inter pipeline</span>
|
||||
<span class="plain-syntax"> 10.0% in step 14/15: generate inform6 -> auto.inf</span>
|
||||
<span class="plain-syntax"> 5.6% in step 5/15: load-binary-kits</span>
|
||||
<span class="plain-syntax"> 5.4% in step 6/15: make-synoptic-module</span>
|
||||
<span class="plain-syntax"> 1.4% in step 9/15: make-identifiers-unique</span>
|
||||
<span class="plain-syntax"> 0.4% in step 12/15: eliminate-redundant-operations</span>
|
||||
|
@ -99,7 +97,7 @@ which take more than 1/1000th of the total running time.
|
|||
<span class="plain-syntax"> 0.4% in step 7/15: shorten-wiring</span>
|
||||
<span class="plain-syntax"> 0.4% in step 8/15: detect-indirect-calls</span>
|
||||
<span class="plain-syntax"> 0.2% in step 11/15: eliminate-redundant-labels</span>
|
||||
<span class="plain-syntax"> 1.2% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 1.3% not specifically accounted for</span>
|
||||
<span class="plain-syntax"> 2.2% in supervisor</span>
|
||||
<span class="plain-syntax"> 0.5% not specifically accounted for</span>
|
||||
</pre>
|
||||
|
@ -110,26 +108,26 @@ represent less than 1/1000th of the total.
|
|||
</p>
|
||||
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">Total memory consumption was 123289K = 120 MB</span>
|
||||
<span class="plain-syntax">Total memory consumption was 123345K = 120 MB</span>
|
||||
|
||||
<span class="plain-syntax"> ---- was used for 2043757 objects, in 362472 frames in 0 x 800K = 0K = 0 MB:</span>
|
||||
<span class="plain-syntax"> ---- was used for 2044307 objects, in 362626 frames in 0 x 800K = 0K = 0 MB:</span>
|
||||
|
||||
<span class="plain-syntax"> 33.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes</span>
|
||||
<span class="plain-syntax"> 20.5% text_stream_array 4600 x 100 = 460000 objects, 25907200 bytes</span>
|
||||
<span class="plain-syntax"> 19.2% linked_list 43442 objects, 24327520 bytes</span>
|
||||
<span class="plain-syntax"> 20.5% text_stream_array 4603 x 100 = 460300 objects, 25924096 bytes</span>
|
||||
<span class="plain-syntax"> 19.2% linked_list 43446 objects, 24329760 bytes</span>
|
||||
<span class="plain-syntax"> 11.1% inter_symbol_array 132 x 1024 = 135168 objects, 14061696 bytes</span>
|
||||
<span class="plain-syntax"> 10.4% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes</span>
|
||||
<span class="plain-syntax"> 8.2% parse_node 129584 objects, 10366720 bytes</span>
|
||||
<span class="plain-syntax"> 8.2% parse_node 129721 objects, 10377680 bytes</span>
|
||||
<span class="plain-syntax"> 5.8% verb_conjugation 160 objects, 7425280 bytes</span>
|
||||
<span class="plain-syntax"> 4.3% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes</span>
|
||||
<span class="plain-syntax"> 2.6% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes</span>
|
||||
<span class="plain-syntax"> 2.5% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes</span>
|
||||
<span class="plain-syntax"> 2.0% kind_array 66 x 1000 = 66000 objects, 2642112 bytes</span>
|
||||
<span class="plain-syntax"> 1.6% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes</span>
|
||||
<span class="plain-syntax"> 1.5% inter_schema_token 13964 objects, 2010816 bytes</span>
|
||||
<span class="plain-syntax"> 1.5% inter_schema_token 13969 objects, 2011536 bytes</span>
|
||||
<span class="plain-syntax"> 1.4% package_request 21151 objects, 1861288 bytes</span>
|
||||
<span class="plain-syntax"> 1.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes</span>
|
||||
<span class="plain-syntax"> 1.1% dict_entry_array 467 x 100 = 46700 objects, 1509344 bytes</span>
|
||||
<span class="plain-syntax"> 1.1% dict_entry_array 468 x 100 = 46800 objects, 1512576 bytes</span>
|
||||
<span class="plain-syntax"> 1.1% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes</span>
|
||||
<span class="plain-syntax"> 1.1% inter_symbols_table 26588 objects, 1488928 bytes</span>
|
||||
<span class="plain-syntax"> 1.0% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes</span>
|
||||
|
@ -139,19 +137,19 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> 0.7% adjective_meaning 202 objects, 1000304 bytes</span>
|
||||
<span class="plain-syntax"> 0.7% excerpt_meaning 3101 objects, 967512 bytes</span>
|
||||
<span class="plain-syntax"> 0.7% production 3877 objects, 899464 bytes</span>
|
||||
<span class="plain-syntax"> 0.6% ptoken 8394 objects, 872976 bytes</span>
|
||||
<span class="plain-syntax"> 0.6% ptoken 8396 objects, 873184 bytes</span>
|
||||
<span class="plain-syntax"> 0.6% grammatical_usage 3612 objects, 866880 bytes</span>
|
||||
<span class="plain-syntax"> 0.6% individual_form 2562 objects, 860832 bytes</span>
|
||||
<span class="plain-syntax"> 0.6% inter_schema_node 8917 objects, 856032 bytes</span>
|
||||
<span class="plain-syntax"> 0.6% inter_schema_node 8920 objects, 856320 bytes</span>
|
||||
<span class="plain-syntax"> 0.5% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% scan_directory 112 objects, 462336 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% scan_directory 116 objects, 478848 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes</span>
|
||||
<span class="plain-syntax"> 0.3% verb_usage 1128 objects, 388032 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% rule 470 objects, 368480 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% dictionary 7517 objects, 360816 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% verb_form 386 objects, 348944 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% noun 2381 objects, 285720 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% compilation_subtask 3349 objects, 267920 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% compilation_subtask 3353 objects, 268240 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes</span>
|
||||
<span class="plain-syntax"> 0.2% inference_subject 665 objects, 260680 bytes</span>
|
||||
<span class="plain-syntax"> 0.1% vanilla_function 3682 objects, 235648 bytes</span>
|
||||
|
@ -161,13 +159,13 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> 0.1% rule_family_data 401 objects, 147568 bytes</span>
|
||||
<span class="plain-syntax"> 0.1% nonterminal 760 objects, 139840 bytes</span>
|
||||
<span class="plain-syntax"> 0.1% nascent_array 2125 objects, 136000 bytes</span>
|
||||
<span class="plain-syntax"> ---- documentation_ref 1274 objects, 112112 bytes</span>
|
||||
<span class="plain-syntax"> ---- documentation_ref 1273 objects, 112024 bytes</span>
|
||||
<span class="plain-syntax"> ---- inference 1703 objects, 108992 bytes</span>
|
||||
<span class="plain-syntax"> ---- imperative_defn 1379 objects, 99288 bytes</span>
|
||||
<span class="plain-syntax"> ---- noun_usage 2403 objects, 96120 bytes</span>
|
||||
<span class="plain-syntax"> ---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes</span>
|
||||
<span class="plain-syntax"> ---- preposition 273 objects, 87360 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_schema 1511 objects, 84616 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_schema 1512 objects, 84672 bytes</span>
|
||||
<span class="plain-syntax"> ---- lexical_cluster 2518 objects, 80576 bytes</span>
|
||||
<span class="plain-syntax"> ---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes</span>
|
||||
<span class="plain-syntax"> ---- kind_variable_declaration 1655 objects, 79440 bytes</span>
|
||||
|
@ -189,6 +187,7 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> ---- property_inference_data 1315 objects, 52600 bytes</span>
|
||||
<span class="plain-syntax"> ---- response_message 408 objects, 52224 bytes</span>
|
||||
<span class="plain-syntax"> ---- ap_clause_array 2 x 400 = 800 objects, 51264 bytes</span>
|
||||
<span class="plain-syntax"> ---- HTML_tag_array 1 x 1000 objects, 48032 bytes</span>
|
||||
<span class="plain-syntax"> ---- text_substitution 437 objects, 41952 bytes</span>
|
||||
<span class="plain-syntax"> ---- anl_clause_array 1 x 1000 objects, 40032 bytes</span>
|
||||
<span class="plain-syntax"> ---- activity_list_array 1 x 1000 objects, 40032 bytes</span>
|
||||
|
@ -197,9 +196,8 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> ---- parsing_data 670 objects, 37520 bytes</span>
|
||||
<span class="plain-syntax"> ---- heading 198 objects, 36432 bytes</span>
|
||||
<span class="plain-syntax"> ---- production_list 617 objects, 34552 bytes</span>
|
||||
<span class="plain-syntax"> ---- counting_data 670 objects, 32160 bytes</span>
|
||||
<span class="plain-syntax"> ---- regions_data 670 objects, 32160 bytes</span>
|
||||
<span class="plain-syntax"> ---- HTML_tag_array 1 x 1000 objects, 32032 bytes</span>
|
||||
<span class="plain-syntax"> ---- counting_data 670 objects, 32160 bytes</span>
|
||||
<span class="plain-syntax"> ---- property_permission 96 objects, 31488 bytes</span>
|
||||
<span class="plain-syntax"> ---- stack_frame_box 305 objects, 29280 bytes</span>
|
||||
<span class="plain-syntax"> ---- verb_sense 403 objects, 29016 bytes</span>
|
||||
|
@ -223,11 +221,11 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> ---- adjective 137 objects, 15344 bytes</span>
|
||||
<span class="plain-syntax"> ---- generated_segment 14 objects, 14784 bytes</span>
|
||||
<span class="plain-syntax"> ---- booking_list 407 objects, 13024 bytes</span>
|
||||
<span class="plain-syntax"> ---- pathname 324 objects, 12960 bytes</span>
|
||||
<span class="plain-syntax"> ---- adjective_iname_holder 320 objects, 12800 bytes</span>
|
||||
<span class="plain-syntax"> ---- pathname 308 objects, 12320 bytes</span>
|
||||
<span class="plain-syntax"> ---- uniqueness_count 454 objects, 10896 bytes</span>
|
||||
<span class="plain-syntax"> ---- inter_construct 30 objects, 10320 bytes</span>
|
||||
<span class="plain-syntax"> ---- filename 246 objects, 9840 bytes</span>
|
||||
<span class="plain-syntax"> ---- filename 253 objects, 10120 bytes</span>
|
||||
<span class="plain-syntax"> ---- stopwatch_timer 113 objects, 9040 bytes</span>
|
||||
<span class="plain-syntax"> ---- equation_node 68 objects, 7616 bytes</span>
|
||||
<span class="plain-syntax"> ---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes</span>
|
||||
|
@ -349,16 +347,16 @@ represent less than 1/1000th of the total.
|
|||
|
||||
<span class="plain-syntax">100.0% was used for memory not allocated for objects:</span>
|
||||
|
||||
<span class="plain-syntax"> 57.7% text stream storage 72856620 bytes in 477518 claims</span>
|
||||
<span class="plain-syntax"> 57.7% text stream storage 72913024 bytes in 477844 claims</span>
|
||||
<span class="plain-syntax"> 4.1% dictionary storage 5227008 bytes in 7517 claims</span>
|
||||
<span class="plain-syntax"> ---- sorting 1448 bytes in 145 claims</span>
|
||||
<span class="plain-syntax"> ---- sorting 1448 bytes in 149 claims</span>
|
||||
<span class="plain-syntax"> 5.7% source text 7200000 bytes in 3 claims</span>
|
||||
<span class="plain-syntax"> 8.5% source text details 10800000 bytes in 2 claims</span>
|
||||
<span class="plain-syntax"> 0.2% documentation fragments 262144 bytes in 1 claim</span>
|
||||
<span class="plain-syntax"> ---- linguistic stock array 81920 bytes in 2 claims</span>
|
||||
<span class="plain-syntax"> ---- small word set array 105600 bytes in 22 claims</span>
|
||||
<span class="plain-syntax"> 3.5% inter symbols storage 4518768 bytes in 27943 claims</span>
|
||||
<span class="plain-syntax"> 13.2% inter bytecode storage 16766048 bytes in 14 claims</span>
|
||||
<span class="plain-syntax"> 13.2% inter bytecode storage 16767648 bytes in 14 claims</span>
|
||||
<span class="plain-syntax"> 4.9% inter links storage 6222976 bytes in 11 claims</span>
|
||||
<span class="plain-syntax"> 0.1% inter tree location list storage 191232 bytes in 32 claims</span>
|
||||
<span class="plain-syntax"> 1.3% instance-of-kind counting 1695204 bytes in 1 claim</span>
|
||||
|
@ -367,7 +365,7 @@ represent less than 1/1000th of the total.
|
|||
<span class="plain-syntax"> ---- code generation workspace for objects 1336 bytes in 4 claims</span>
|
||||
<span class="plain-syntax"> 0.2% emitter array storage 280032 bytes in 1997 claims</span>
|
||||
|
||||
<span class="plain-syntax">-145.-5% was overhead - -183740600 bytes = -179434K = -175 MB</span>
|
||||
<span class="plain-syntax">-145.-5% was overhead - -183807584 bytes = -179499K = -175 MB</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Preform grammar. </b>The full annotated description of the Preform grammar (see <a href="../words-module/4-ap.html" class="internal">About Preform (in words)</a>),
|
||||
with optimisation details and hit/miss statistics added, is also long: it's
|
||||
|
@ -376,31 +374,31 @@ sample, showing the nonterminal used to parse literals in Inform 7 source text:
|
|||
</p>
|
||||
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"><s-literal> hits 2100/23858 nti 22 constraint (none) extremes [1, infinity)</span>
|
||||
<span class="plain-syntax"><s-literal> hits 2100/23892 nti 23 constraint (none) extremes [1, infinity)</span>
|
||||
<span class="plain-syntax"> English:</span>
|
||||
<span class="plain-syntax"> (@1)<cardinal-number>=1 </span>
|
||||
<span class="plain-syntax"> (hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]</span>
|
||||
<span class="plain-syntax"> (@1)minus (@2)<cardinal-number>=1 </span>
|
||||
<span class="plain-syntax"> (hits 0/1458) constraint DS = {22} extremes [2, 2]</span>
|
||||
<span class="plain-syntax"> (hits 0/1411) constraint DS = {23} extremes [2, 2]</span>
|
||||
<span class="plain-syntax"> (@1)<quoted-text>=1 (@2)( (@3)<response-letter>=2 (@4)) </span>
|
||||
<span class="plain-syntax"> (hits 274/824) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {22} extremes [4, 4]</span>
|
||||
<span class="plain-syntax"> (hits 274/731) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {23} extremes [4, 4]</span>
|
||||
<span class="plain-syntax"> (@1)<quoted-text>=1 </span>
|
||||
<span class="plain-syntax"> (hits 1566/5549) (matched: 'Represents geographical locations, both indoor</span>
|
||||
<span class="plain-syntax"> (hits 1566/5559) (matched: 'Represents geographical locations, both indoor</span>
|
||||
<span class="plain-syntax"> and outdoor, which are not necessarily areas in a building. A player in one</span>
|
||||
<span class="plain-syntax"> room is mostly unable to sense, or interact with, anything in a different room.</span>
|
||||
<span class="plain-syntax"> Rooms are arranged in a map.') constraint (none) extremes [1, 1]</span>
|
||||
<span class="plain-syntax"> <s-literal-real-number>=1 </span>
|
||||
<span class="plain-syntax"> (hits 11/9918) (matched: 'plus infinity') constraint (none) extremes [1, infinity)</span>
|
||||
<span class="plain-syntax"> (hits 11/9935) (matched: 'plus infinity') constraint (none) extremes [1, infinity)</span>
|
||||
<span class="plain-syntax"> (@1)<s-literal-truth-state>=1 </span>
|
||||
<span class="plain-syntax"> (hits 78/830) (matched: 'false') constraint CS = {16} extremes [1, 1]</span>
|
||||
<span class="plain-syntax"> (hits 78/833) (matched: 'false') constraint CS = {17} extremes [1, 1]</span>
|
||||
<span class="plain-syntax"> <s-literal-list>=1 </span>
|
||||
<span class="plain-syntax"> (hits 0/3245) constraint DS = {18} extremes [2, infinity)</span>
|
||||
<span class="plain-syntax"> (hits 0/3261) constraint DS = {19} extremes [2, infinity)</span>
|
||||
<span class="plain-syntax"> (@1)unicode <s-unicode-character>=1 </span>
|
||||
<span class="plain-syntax"> (hits 0/3467) constraint DS = {22} extremes [2, infinity)</span>
|
||||
<span class="plain-syntax"> (hits 0/3221) constraint DS = {23} extremes [2, infinity)</span>
|
||||
<span class="plain-syntax"> <s-literal-time>=1 </span>
|
||||
<span class="plain-syntax"> (hits 0/3756) constraint DW = {19, 20, 21} extremes [2, 5]</span>
|
||||
<span class="plain-syntax"> (hits 0/3766) constraint DW = {20, 21, 22} extremes [2, 5]</span>
|
||||
<span class="plain-syntax"> <s-literal-unit-notation>=1 </span>
|
||||
<span class="plain-syntax"> (hits 0/9829) constraint (none) extremes [1, infinity)</span>
|
||||
<span class="plain-syntax"> (hits 0/9846) constraint (none) extremes [1, infinity)</span>
|
||||
</pre>
|
||||
<p class="commentary">The unabridged grammar is here:
|
||||
</p>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -307,14 +307,18 @@ it doesn't know about, that will be one of ours, so it should call the following
|
|||
<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="1-ic.html#SP20" class="function-link"><span class="function-syntax">Supervisor::request_kit</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"BasicInformKit"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">KIT_CLSW:</span><span class="plain-syntax"> </span><a href="1-ic.html#SP20" class="function-link"><span class="function-syntax">Supervisor::request_kit</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">PROJECT_CLSW:</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">arg</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">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="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="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SOURCE_CLSW:</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">arg</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</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="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>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">O_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">transpiled_output_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">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>
|
||||
|
@ -609,13 +613,13 @@ specify the bundle twice, or specify the file twice.
|
|||
</p>
|
||||
|
||||
<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">project_bundle_request</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">text_stream</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="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('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</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('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">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="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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">project_file_request</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">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">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">loc</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="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>
|
||||
|
@ -627,11 +631,10 @@ 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('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">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">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</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('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">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="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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">project_bundle_request</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">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">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">loc</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">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_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">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">materials</span><span class="plain-syntax"> = </span><a href="5-ps2.html#SP3" 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>
|
||||
|
@ -657,10 +660,8 @@ location. If it hasn't, we create a project using <span class="extract"><span cl
|
|||
|
||||
<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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">project_bundle_request</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">P</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Pathnames::from_text</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">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">project_file_request</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">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::from_text</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">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>
|
||||
|
@ -670,8 +671,8 @@ 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">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="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">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">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><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">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">project_bundle_genre</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">proj</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">else</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">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax"> == </span><span class="identifier-syntax">project_file_genre</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -84,6 +84,7 @@ stored here.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">source_text</span><span class="plain-syntax">; </span><span class="comment-syntax"> the source text we read, if so</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">inbuild_requirement</span><span class="plain-syntax"> *</span><span class="identifier-syntax">found_by</span><span class="plain-syntax">; </span><span class="comment-syntax"> if this was claimed in a search</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">errors_reading_source_text</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">copy_error</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">last_scanned</span><span class="plain-syntax">;</span>
|
||||
<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>
|
||||
|
@ -104,6 +105,7 @@ claiming. If you are a manager, do not call this...
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-></span><span class="identifier-syntax">source_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-></span><span class="identifier-syntax">found_by</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">copy</span><span class="plain-syntax">-></span><span class="identifier-syntax">errors_reading_source_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">copy_error</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">-></span><span class="identifier-syntax">last_scanned</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">copy</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -259,10 +261,10 @@ its main task: building an Inform project.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_BUILDING_SOON_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, &</span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP6" class="function-link"><span class="function-syntax">Graphs::describe</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Copies::show_needs</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">uses_only</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Copies::show_needs</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">uses_only</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">paths</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">vertex</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VOID_METHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">, </span><span class="constant-syntax">GENRE_BUILDING_SOON_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, &</span><span class="identifier-syntax">V</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP7" class="function-link"><span class="function-syntax">Graphs::show_needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP7" class="function-link"><span class="function-syntax">Graphs::show_needs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">, </span><span class="identifier-syntax">paths</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::show_missing</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">uses_only</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">vertex</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -254,21 +254,33 @@ vertex: it's used by the Inbuild command <span class="extract"><span class="extr
|
|||
</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">Graphs::show_needs</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">Graphs::show_needs</span></span>:<br/>Copies - <a href="2-cps.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP7" class="function-link"><span class="function-syntax">Graphs::show_needs_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">unique_graph_scan_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Graphs::show_needs</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">Graphs::show_needs</span></span>:<br/>Copies - <a href="2-cps.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">paths</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP7" class="function-link"><span class="function-syntax">Graphs::show_needs_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">, </span><span class="identifier-syntax">paths</span><span class="plain-syntax">, </span><span class="identifier-syntax">unique_graph_scan_count</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">Graphs::show_needs_r</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">true_depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">uses_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">depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">true_depth</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">paths</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">scan_count</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">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">type</span><span class="plain-syntax"> == </span><span class="constant-syntax">COPY_VERTEX</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">depth</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-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">paths</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">depth</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-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><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S: "</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">-></span><span class="element-syntax">genre_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cps.html#SP6" class="function-link"><span class="function-syntax">Copies::write_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-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><span class="element-syntax">last_scanned</span><span class="plain-syntax"> != </span><span class="identifier-syntax">scan_count</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">last_scanned</span><span class="plain-syntax"> = </span><span class="identifier-syntax">scan_count</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">paths</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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%p"</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="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_file</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%f"</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="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"?unlocated"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" (%S)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">-></span><span class="element-syntax">genre_name</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S: "</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">edition</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">-></span><span class="element-syntax">genre_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cps.html#SP6" class="function-link"><span class="function-syntax">Copies::write_copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">depth</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">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">type</span><span class="plain-syntax"> == </span><span class="constant-syntax">REQUIREMENT_VERTEX</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">depth</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-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">paths</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">depth</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"missing %S: "</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_requirement</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">-></span><span class="element-syntax">genre</span><span class="plain-syntax">-></span><span class="element-syntax">genre_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-wrk.html#SP6" class="function-link"><span class="function-syntax">Works::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_requirement</span><span class="plain-syntax">-></span><span class="element-syntax">work</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">VersionNumberRanges::is_any_range</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">as_requirement</span><span class="plain-syntax">-></span><span class="element-syntax">version_range</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
|
@ -283,10 +295,10 @@ vertex: it's used by the Inbuild command <span class="extract"><span class="extr
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</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">uses_only</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">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">build_edges</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP7" class="function-link"><span class="function-syntax">Graphs::show_needs_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">true_depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP7" class="function-link"><span class="function-syntax">Graphs::show_needs_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">true_depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">, </span><span class="identifier-syntax">paths</span><span class="plain-syntax">, </span><span class="identifier-syntax">scan_count</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">V</span><span class="plain-syntax">-></span><span class="element-syntax">type</span><span class="plain-syntax"> == </span><span class="constant-syntax">COPY_VERTEX</span><span class="plain-syntax">) && ((</span><span class="identifier-syntax">true_depth</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">uses_only</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">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">use_edges</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP7" class="function-link"><span class="function-syntax">Graphs::show_needs_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">true_depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP7" class="function-link"><span class="function-syntax">Graphs::show_needs_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">depth</span><span class="plain-syntax">, </span><span class="identifier-syntax">true_depth</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">uses_only</span><span class="plain-syntax">, </span><span class="identifier-syntax">paths</span><span class="plain-syntax">, </span><span class="identifier-syntax">scan_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -69,11 +69,21 @@ error in this case.
|
|||
|
||||
@<Complete the list of targets@> =
|
||||
linked_list *L = Main::list_of_targets();
|
||||
inbuild_copy *D = NULL, *C;
|
||||
inbuild_copy *D = NULL, *C; int others_exist = FALSE;
|
||||
LOOP_OVER_LINKED_LIST(C, inbuild_copy, L)
|
||||
if ((C->edition->work->genre == project_bundle_genre) ||
|
||||
(C->edition->work->genre == project_file_genre))
|
||||
D = C;
|
||||
else
|
||||
others_exist = TRUE;
|
||||
if ((others_exist == FALSE) && (D)) {
|
||||
if (D->location_if_path) Supervisor::set_I7_bundle(D->location_if_path);
|
||||
if (D->location_if_file) Supervisor::set_I7_source(D->location_if_file);
|
||||
}
|
||||
if ((LinkedLists::len(unsorted_nest_list) == 0) ||
|
||||
((others_exist == FALSE) && (D)))
|
||||
Supervisor::add_nest(
|
||||
Pathnames::from_text(I"inform7/Internal"), INTERNAL_NEST_TAG);
|
||||
Supervisor::optioneering_complete(D, FALSE, &Main::load_preform);
|
||||
inform_project *proj;
|
||||
LOOP_OVER(proj, inform_project)
|
||||
|
@ -110,6 +120,8 @@ utility functions in the //supervisor// module, which we call.
|
|||
@e GRAPH_TTASK
|
||||
@e USE_NEEDS_TTASK
|
||||
@e BUILD_NEEDS_TTASK
|
||||
@e USE_LOCATE_TTASK
|
||||
@e BUILD_LOCATE_TTASK
|
||||
@e ARCHIVE_TTASK
|
||||
@e ARCHIVE_TO_TTASK
|
||||
@e USE_MISSING_TTASK
|
||||
|
@ -123,8 +135,10 @@ utility functions in the //supervisor// module, which we call.
|
|||
switch (inbuild_task) {
|
||||
case INSPECT_TTASK: Copies::inspect(STDOUT, C); break;
|
||||
case GRAPH_TTASK: Copies::show_graph(STDOUT, C); break;
|
||||
case USE_NEEDS_TTASK: Copies::show_needs(STDOUT, C, TRUE); break;
|
||||
case BUILD_NEEDS_TTASK: Copies::show_needs(STDOUT, C, FALSE); break;
|
||||
case USE_NEEDS_TTASK: Copies::show_needs(STDOUT, C, TRUE, FALSE); break;
|
||||
case BUILD_NEEDS_TTASK: Copies::show_needs(STDOUT, C, FALSE, FALSE); break;
|
||||
case USE_LOCATE_TTASK: Copies::show_needs(STDOUT, C, TRUE, TRUE); break;
|
||||
case BUILD_LOCATE_TTASK: Copies::show_needs(STDOUT, C, FALSE, TRUE); break;
|
||||
case ARCHIVE_TTASK: {
|
||||
inform_project *proj;
|
||||
int c = 0;
|
||||
|
@ -282,6 +296,8 @@ other options to the selection defined here.
|
|||
@e GRAPH_CLSW
|
||||
@e USE_NEEDS_CLSW
|
||||
@e BUILD_NEEDS_CLSW
|
||||
@e USE_LOCATE_CLSW
|
||||
@e BUILD_LOCATE_CLSW
|
||||
@e USE_MISSING_CLSW
|
||||
@e BUILD_MISSING_CLSW
|
||||
@e ARCHIVE_CLSW
|
||||
|
@ -315,6 +331,10 @@ other options to the selection defined here.
|
|||
L"show all the extensions, kits and so on needed to use");
|
||||
CommandLine::declare_switch(BUILD_NEEDS_CLSW, L"build-needs", 1,
|
||||
L"show all the extensions, kits and so on needed to build");
|
||||
CommandLine::declare_switch(USE_LOCATE_CLSW, L"use-locate", 1,
|
||||
L"show file paths of all the extensions, kits and so on needed to use");
|
||||
CommandLine::declare_switch(BUILD_LOCATE_CLSW, L"build-locate", 1,
|
||||
L"show file paths of all the extensions, kits and so on needed to build");
|
||||
CommandLine::declare_switch(USE_MISSING_CLSW, L"use-missing", 1,
|
||||
L"show the extensions, kits and so on which are needed to use but missing");
|
||||
CommandLine::declare_switch(BUILD_MISSING_CLSW, L"build-missing", 1,
|
||||
|
@ -337,10 +357,6 @@ other options to the selection defined here.
|
|||
|
||||
CommandLine::read(argc, argv, NULL, &Main::option, &Main::bareword);
|
||||
|
||||
if (LinkedLists::len(unsorted_nest_list) == 0)
|
||||
Supervisor::add_nest(
|
||||
Pathnames::from_text(I"inform7/Internal"), INTERNAL_NEST_TAG);
|
||||
|
||||
path_to_inbuild = Pathnames::installation_path("INBUILD_PATH", I"inbuild");
|
||||
|
||||
@ Here we handle those options not handled by the //supervisor// module.
|
||||
|
@ -354,6 +370,8 @@ void Main::option(int id, int val, text_stream *arg, void *state) {
|
|||
case GRAPH_CLSW: inbuild_task = GRAPH_TTASK; break;
|
||||
case USE_NEEDS_CLSW: inbuild_task = USE_NEEDS_TTASK; break;
|
||||
case BUILD_NEEDS_CLSW: inbuild_task = BUILD_NEEDS_TTASK; break;
|
||||
case USE_LOCATE_CLSW: inbuild_task = USE_LOCATE_TTASK; break;
|
||||
case BUILD_LOCATE_CLSW: inbuild_task = BUILD_LOCATE_TTASK; break;
|
||||
case ARCHIVE_TO_CLSW:
|
||||
destination_nest = Nests::new(Pathnames::from_text(arg));
|
||||
inbuild_task = ARCHIVE_TO_TTASK;
|
||||
|
|
|
@ -5,6 +5,7 @@ usage: inbuild [-TASK] TARGET1 TARGET2 ...
|
|||
-archive sync copies of all extensions, kits and so on needed for -project into Materials
|
||||
-archive-to X sync copies of all extensions, kits and so on needed into nest X
|
||||
-build incrementally build target(s)
|
||||
-build-locate show file paths of all the extensions, kits and so on needed to build
|
||||
-build-missing show the extensions, kits and so on which are needed to build but missing
|
||||
-build-needs show all the extensions, kits and so on needed to build
|
||||
-build-trace show verbose reasoning during -build (default is -no-build-trace)
|
||||
|
@ -17,6 +18,7 @@ usage: inbuild [-TASK] TARGET1 TARGET2 ...
|
|||
-rebuild completely rebuild target(s)
|
||||
-sync-to X forcibly copy target(s) to nest X, even if prior version already there
|
||||
-tools X make X the directory of intools executables, and exit developer mode
|
||||
-use-locate show file paths of all the extensions, kits and so on needed to use
|
||||
-use-missing show the extensions, kits and so on which are needed to use but missing
|
||||
-use-needs show all the extensions, kits and so on needed to use
|
||||
|
||||
|
|
|
@ -224,6 +224,12 @@ Inbuild can list missing resources with |-use-missing| and |-build-missing|
|
|||
respectively. At present, it has no means of fetching missing resources from
|
||||
any central repository.
|
||||
|
||||
@ Finally, |-build-locate| and |-use-locate| are identical to |-build-needs|
|
||||
and |-use-needs|, except that they print a list of the file system paths at
|
||||
which the relevant resources have been found. This can be useful if you're
|
||||
managing a complex mass of extensions, and aren't sure (say) which actual copy
|
||||
of Xylophones inbuild proposes to use, and from where.
|
||||
|
||||
@h Building.
|
||||
The graph for a copy tells Inbuild not only what is necessary for a build,
|
||||
but also how to perform that build.
|
||||
|
|
|
@ -229,14 +229,18 @@ void Supervisor::option(int id, int val, text_stream *arg, void *state) {
|
|||
shared_transient_resources = Pathnames::from_text(arg); break;
|
||||
case BASIC_CLSW: Supervisor::request_kit(I"BasicInformKit"); break;
|
||||
case KIT_CLSW: Supervisor::request_kit(arg); break;
|
||||
case PROJECT_CLSW:
|
||||
if (Supervisor::set_I7_bundle(arg) == FALSE)
|
||||
case PROJECT_CLSW: {
|
||||
pathname *P = Pathnames::from_text(arg);
|
||||
if (Supervisor::set_I7_bundle(P) == FALSE)
|
||||
Errors::fatal_with_text("can't specify the project twice: '%S'", arg);
|
||||
break;
|
||||
case SOURCE_CLSW:
|
||||
if (Supervisor::set_I7_source(arg) == FALSE)
|
||||
}
|
||||
case SOURCE_CLSW: {
|
||||
filename *F = Filenames::from_text(arg);
|
||||
if (Supervisor::set_I7_source(F) == FALSE)
|
||||
Errors::fatal_with_text("can't specify the source file twice: '%S'", arg);
|
||||
break;
|
||||
}
|
||||
case O_CLSW: transpiled_output_file = Filenames::from_text(arg); break;
|
||||
case CENSUS_CLSW: census_mode = val; break;
|
||||
case PIPELINE_CLSW: inter_pipeline_name = Str::duplicate(arg); break;
|
||||
|
@ -505,13 +509,13 @@ 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.
|
||||
|
||||
=
|
||||
text_stream *project_bundle_request = NULL;
|
||||
text_stream *project_file_request = NULL;
|
||||
pathname *project_bundle_request = NULL;
|
||||
filename *project_file_request = NULL;
|
||||
|
||||
int Supervisor::set_I7_source(text_stream *loc) {
|
||||
int Supervisor::set_I7_source(filename *F) {
|
||||
RUN_ONLY_FROM_PHASE(CONFIGURATION_INBUILD_PHASE)
|
||||
if (Str::len(project_file_request) > 0) return FALSE;
|
||||
project_file_request = Str::duplicate(loc);
|
||||
if (project_file_request) return FALSE;
|
||||
project_file_request = F;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -522,11 +526,10 @@ of the parent, i.e., it will be |inform7-settings.txt| or |inbuild-settings.txt|
|
|||
depending on who's asking.
|
||||
|
||||
=
|
||||
int Supervisor::set_I7_bundle(text_stream *loc) {
|
||||
int Supervisor::set_I7_bundle(pathname *P) {
|
||||
RUN_ONLY_FROM_PHASE(CONFIGURATION_INBUILD_PHASE)
|
||||
if (Str::len(project_bundle_request) > 0) return FALSE;
|
||||
project_bundle_request = Str::duplicate(loc);
|
||||
pathname *P = Pathnames::from_text(project_bundle_request);
|
||||
if (project_bundle_request) return FALSE;
|
||||
project_bundle_request = P;
|
||||
pathname *materials = Projects::materialise_pathname(
|
||||
Pathnames::up(P), Pathnames::directory_name(P));
|
||||
TEMPORARY_TEXT(leaf)
|
||||
|
@ -551,10 +554,8 @@ void Supervisor::make_project_from_command_line(inbuild_copy *C) {
|
|||
|
||||
filename *F = NULL; /* result of |-source| at the command line */
|
||||
pathname *P = NULL; /* result of |-project| at the command line */
|
||||
if (Str::len(project_bundle_request) > 0)
|
||||
P = Pathnames::from_text(project_bundle_request);
|
||||
if (Str::len(project_file_request) > 0)
|
||||
F = Filenames::from_text(project_file_request);
|
||||
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);
|
||||
|
@ -564,8 +565,8 @@ void Supervisor::make_project_from_command_line(inbuild_copy *C) {
|
|||
if (C == NULL) Errors::fatal("No such Inform source file");
|
||||
}
|
||||
}
|
||||
inform_project *proj = NULL;
|
||||
if (C) {
|
||||
inform_project *proj = NULL;
|
||||
if (C->edition->work->genre == project_bundle_genre)
|
||||
proj = ProjectBundleManager::from_copy(C);
|
||||
else if (C->edition->work->genre == project_file_genre)
|
||||
|
|
|
@ -24,6 +24,7 @@ typedef struct inbuild_copy {
|
|||
struct wording source_text; /* the source text we read, if so */
|
||||
struct inbuild_requirement *found_by; /* if this was claimed in a search */
|
||||
struct linked_list *errors_reading_source_text; /* of |copy_error| */
|
||||
int last_scanned;
|
||||
CLASS_DEFINITION
|
||||
} inbuild_copy;
|
||||
|
||||
|
@ -42,6 +43,7 @@ inbuild_copy *Copies::new_p(inbuild_edition *edition) {
|
|||
copy->source_text = EMPTY_WORDING;
|
||||
copy->found_by = NULL;
|
||||
copy->errors_reading_source_text = NEW_LINKED_LIST(copy_error);
|
||||
copy->last_scanned = 0;
|
||||
return copy;
|
||||
}
|
||||
|
||||
|
@ -193,10 +195,10 @@ void Copies::show_graph(OUTPUT_STREAM, inbuild_copy *C) {
|
|||
VOID_METHOD_CALL(C->edition->work->genre, GENRE_BUILDING_SOON_MTID, C, &V);
|
||||
Graphs::describe(OUT, V, TRUE);
|
||||
}
|
||||
void Copies::show_needs(OUTPUT_STREAM, inbuild_copy *C, int uses_only) {
|
||||
void Copies::show_needs(OUTPUT_STREAM, inbuild_copy *C, int uses_only, int paths) {
|
||||
build_vertex *V = C->vertex;
|
||||
VOID_METHOD_CALL(C->edition->work->genre, GENRE_BUILDING_SOON_MTID, C, &V);
|
||||
Graphs::show_needs(OUT, C->vertex, uses_only);
|
||||
Graphs::show_needs(OUT, C->vertex, uses_only, paths);
|
||||
}
|
||||
void Copies::show_missing(OUTPUT_STREAM, inbuild_copy *C, int uses_only) {
|
||||
build_vertex *V = C->vertex;
|
||||
|
|
|
@ -189,21 +189,33 @@ void Graphs::describe_vertex(OUTPUT_STREAM, build_vertex *V) {
|
|||
@ A similar but slightly different recursion for |-build-needs| and |-use-needs|.
|
||||
|
||||
=
|
||||
void Graphs::show_needs(OUTPUT_STREAM, build_vertex *V, int uses_only) {
|
||||
Graphs::show_needs_r(OUT, V, 0, 0, uses_only);
|
||||
int unique_graph_scan_count = 1;
|
||||
void Graphs::show_needs(OUTPUT_STREAM, build_vertex *V, int uses_only, int paths) {
|
||||
Graphs::show_needs_r(OUT, V, 0, 0, uses_only, paths, unique_graph_scan_count++);
|
||||
}
|
||||
|
||||
void Graphs::show_needs_r(OUTPUT_STREAM, build_vertex *V,
|
||||
int depth, int true_depth, int uses_only) {
|
||||
int depth, int true_depth, int uses_only, int paths, int scan_count) {
|
||||
if (V->type == COPY_VERTEX) {
|
||||
for (int i=0; i<depth; i++) WRITE(" ");
|
||||
if (paths == FALSE) for (int i=0; i<depth; i++) WRITE(" ");
|
||||
inbuild_copy *C = V->as_copy;
|
||||
WRITE("%S: ", C->edition->work->genre->genre_name);
|
||||
Copies::write_copy(OUT, C); WRITE("\n");
|
||||
if (C->last_scanned != scan_count) {
|
||||
C->last_scanned = scan_count;
|
||||
if (paths) {
|
||||
if (C->location_if_path) WRITE("%p", C->location_if_path);
|
||||
else if (C->location_if_file) WRITE("%f", C->location_if_file);
|
||||
else WRITE("?unlocated");
|
||||
WRITE(" (%S)", C->edition->work->genre->genre_name);
|
||||
} else {
|
||||
WRITE("%S: ", C->edition->work->genre->genre_name);
|
||||
Copies::write_copy(OUT, C);
|
||||
}
|
||||
WRITE("\n");
|
||||
}
|
||||
depth++;
|
||||
}
|
||||
if (V->type == REQUIREMENT_VERTEX) {
|
||||
for (int i=0; i<depth; i++) WRITE(" ");
|
||||
if (paths == FALSE) for (int i=0; i<depth; i++) WRITE(" ");
|
||||
WRITE("missing %S: ", V->as_requirement->work->genre->genre_name);
|
||||
Works::write(OUT, V->as_requirement->work);
|
||||
if (VersionNumberRanges::is_any_range(V->as_requirement->version_range) == FALSE) {
|
||||
|
@ -218,10 +230,10 @@ void Graphs::show_needs_r(OUTPUT_STREAM, build_vertex *V,
|
|||
build_vertex *W;
|
||||
if (uses_only == FALSE)
|
||||
LOOP_OVER_LINKED_LIST(W, build_vertex, V->build_edges)
|
||||
Graphs::show_needs_r(OUT, W, depth, true_depth+1, uses_only);
|
||||
Graphs::show_needs_r(OUT, W, depth, true_depth+1, uses_only, paths, scan_count);
|
||||
if ((V->type == COPY_VERTEX) && ((true_depth > 0) || (uses_only))) {
|
||||
LOOP_OVER_LINKED_LIST(W, build_vertex, V->use_edges)
|
||||
Graphs::show_needs_r(OUT, W, depth, true_depth+1, uses_only);
|
||||
Graphs::show_needs_r(OUT, W, depth, true_depth+1, uses_only, paths, scan_count);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -355,8 +355,11 @@ void Main::switch(int id, int val, text_stream *arg, void *state) {
|
|||
}
|
||||
|
||||
void Main::bareword(int id, text_stream *opt, void *state) {
|
||||
if (Supervisor::set_I7_source(opt) == FALSE)
|
||||
Errors::fatal_with_text("unknown command line argument: %S (see -help)", opt);
|
||||
if (Str::is_whitespace(opt) == FALSE) {
|
||||
filename *F = Filenames::from_text(opt);
|
||||
if (Supervisor::set_I7_source(F) == FALSE)
|
||||
Errors::fatal_with_text("unknown command line argument: %S (see -help)", opt);
|
||||
}
|
||||
}
|
||||
|
||||
int Main::silence_is_golden(void) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Total memory consumption was 123346K = 120 MB
|
||||
Total memory consumption was 123345K = 120 MB
|
||||
|
||||
---- was used for 2044314 objects, in 362633 frames in 0 x 800K = 0K = 0 MB:
|
||||
---- was used for 2044307 objects, in 362626 frames in 0 x 800K = 0K = 0 MB:
|
||||
|
||||
33.1% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
20.5% text_stream_array 4603 x 100 = 460300 objects, 25924096 bytes
|
||||
|
@ -112,7 +112,7 @@ Total memory consumption was 123346K = 120 MB
|
|||
---- generated_segment 14 objects, 14784 bytes
|
||||
---- booking_list 407 objects, 13024 bytes
|
||||
---- adjective_iname_holder 320 objects, 12800 bytes
|
||||
---- pathname 315 objects, 12600 bytes
|
||||
---- pathname 308 objects, 12320 bytes
|
||||
---- uniqueness_count 454 objects, 10896 bytes
|
||||
---- inter_construct 30 objects, 10320 bytes
|
||||
---- filename 253 objects, 10120 bytes
|
||||
|
@ -237,7 +237,7 @@ Total memory consumption was 123346K = 120 MB
|
|||
|
||||
100.0% was used for memory not allocated for objects:
|
||||
|
||||
57.7% text stream storage 72913788 bytes in 477853 claims
|
||||
57.7% text stream storage 72913024 bytes in 477844 claims
|
||||
4.1% dictionary storage 5227008 bytes in 7517 claims
|
||||
---- sorting 1448 bytes in 149 claims
|
||||
5.7% source text 7200000 bytes in 3 claims
|
||||
|
@ -255,5 +255,5 @@ Total memory consumption was 123346K = 120 MB
|
|||
---- code generation workspace for objects 1336 bytes in 4 claims
|
||||
0.2% emitter array storage 280032 bytes in 1997 claims
|
||||
|
||||
-145.-5% was overhead - -183807864 bytes = -179499K = -175 MB
|
||||
-145.-5% was overhead - -183807584 bytes = -179499K = -175 MB
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
100.0% in inform7 run
|
||||
70.9% in compilation to Inter
|
||||
50.3% in //Sequence::undertake_queued_tasks//
|
||||
4.7% in //MajorNodes::pre_pass//
|
||||
71.8% in compilation to Inter
|
||||
51.2% in //Sequence::undertake_queued_tasks//
|
||||
4.6% in //MajorNodes::pre_pass//
|
||||
3.4% in //MajorNodes::pass_1//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
1.8% in //RTPhrasebook::compile_entries//
|
||||
|
@ -15,18 +15,17 @@
|
|||
0.2% in //CompletionModule::compile//
|
||||
0.2% in //InferenceSubjects::emit_all//
|
||||
0.2% in //RTKindConstructors::compile_permissions//
|
||||
0.2% in //Task::make_built_in_kind_constructors//
|
||||
2.9% not specifically accounted for
|
||||
26.1% in running Inter pipeline
|
||||
10.2% in step 14/15: generate inform6 -> auto.inf
|
||||
5.7% in step 5/15: load-binary-kits
|
||||
5.5% in step 6/15: make-synoptic-module
|
||||
3.4% not specifically accounted for
|
||||
25.5% in running Inter pipeline
|
||||
10.0% in step 14/15: generate inform6 -> auto.inf
|
||||
5.6% in step 5/15: load-binary-kits
|
||||
5.4% in step 6/15: make-synoptic-module
|
||||
1.4% in step 9/15: make-identifiers-unique
|
||||
0.4% in step 12/15: eliminate-redundant-operations
|
||||
0.4% in step 4/15: compile-splats
|
||||
0.4% in step 7/15: shorten-wiring
|
||||
0.4% in step 8/15: detect-indirect-calls
|
||||
0.2% in step 11/15: eliminate-redundant-labels
|
||||
1.4% not specifically accounted for
|
||||
1.3% not specifically accounted for
|
||||
2.2% in supervisor
|
||||
0.7% not specifically accounted for
|
||||
0.5% not specifically accounted for
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
inter: kit source error in function 'E1': operator '+' used with 1 not 2 operand(s)
|
||||
inter: kit source error in function 'E2': do without until
|
||||
inter: kit source error in function 'E3': expected 'on' or 'off' after 'font', not 'whatever'
|
||||
inter: kit source error in function 'E4': move without to
|
||||
inter: kit source error in function 'E5': 'for' header with too few clauses
|
||||
inter: kit source error in function 'E6': 'for' header with too many clauses
|
||||
inter: kit source error in function 'E7': unexpected '{ ... }' code block
|
||||
inter: kit source error in function 'E8': unexpected '{'
|
||||
inter: kit source error in function 'E8': unexpected use of reserved word 'print'
|
||||
inter: kit source error in function 'E8': unexpected '}'
|
||||
inter: kit source error in function 'E9': no matching '#endif'
|
||||
inter: kit source error in function 'E9': misplaced directive
|
||||
inter: kit source error in function 'E10': unexpected ','
|
||||
inter: kit source error in function 'E11': malformed '#if...'
|
||||
inter: kit source error in function 'E11': misplaced directive
|
||||
inter: kit source error in function 'E11': misplaced directive
|
||||
inter: kit source error in function 'E12': '@something' was unexpected in expression context
|
||||
inter: kit source error in function 'E13': too many arguments for call-message
|
||||
inter: kit source error in function 'E14': malformed literal number '$ffa0z'
|
||||
inter: kit source error in function 'E15': unexpected use of reserved word 'return'
|
||||
inter: kit source error in function 'E16': 'objectloop' without visible variable
|
||||
inter: inform 6 syntax error in function 'E1': operator '+' used with 1 not 2 operand(s)
|
||||
inter: inform 6 syntax error in function 'E2': do without until
|
||||
inter: inform 6 syntax error in function 'E3': expected 'on' or 'off' after 'font', not 'whatever'
|
||||
inter: inform 6 syntax error in function 'E4': move without to
|
||||
inter: inform 6 syntax error in function 'E5': 'for' header with too few clauses
|
||||
inter: inform 6 syntax error in function 'E6': 'for' header with too many clauses
|
||||
inter: inform 6 syntax error in function 'E7': unexpected '{ ... }' code block
|
||||
inter: inform 6 syntax error in function 'E8': unexpected '{'
|
||||
inter: inform 6 syntax error in function 'E8': unexpected use of reserved word 'print'
|
||||
inter: inform 6 syntax error in function 'E8': unexpected '}'
|
||||
inter: inform 6 syntax error in function 'E9': no matching '#endif'
|
||||
inter: inform 6 syntax error in function 'E9': misplaced directive
|
||||
inter: inform 6 syntax error in function 'E10': unexpected ','
|
||||
inter: inform 6 syntax error in function 'E11': malformed '#if...'
|
||||
inter: inform 6 syntax error in function 'E11': misplaced directive
|
||||
inter: inform 6 syntax error in function 'E11': misplaced directive
|
||||
inter: inform 6 syntax error in function 'E12': '@something' was unexpected in expression context
|
||||
inter: inform 6 syntax error in function 'E13': too many arguments for call-message
|
||||
inter: inform 6 syntax error in function 'E14': malformed literal number '$ffa0z'
|
||||
inter: inform 6 syntax error in function 'E15': unexpected use of reserved word 'return'
|
||||
inter: inform 6 syntax error in function 'E16': 'objectloop' without visible variable
|
||||
|
|
Loading…
Reference in a new issue