mirror of
https://github.com/ganelson/inform.git
synced 2024-06-17 07:40:47 +03:00
Rearranged names of some linking tasks
This commit is contained in:
parent
9729d14244
commit
ff06397486
|
@ -118,8 +118,7 @@ are ever made.
|
|||
<span class="plain-syntax"> </span><a href="2-arc.html#SP2" class="function-link"><span class="function-syntax">Architectures::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"32d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Canonical filenames. </b>When a kit is assimilated, its Inter code is stored in files with these
|
||||
leafnames:
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Canonical filenames. </b>When a kit is built, its Inter code is stored in files with these leafnames:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -104,7 +104,7 @@ opcodes.
|
|||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>Inter is for the most part fully specified and cross-platform, but assembly
|
||||
language is the big hole in that. It is legal for Inter code to contain almost
|
||||
anything which purports to be assembly language. For example, the following
|
||||
code will successfully assimilate as part of an Inter kit:
|
||||
code will successfully build as part of an Inter kit:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -222,7 +222,7 @@ utility functions in the <a href="../supervisor-module/index.html" class="intern
|
|||
<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>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">, </span><span class="reserved-syntax">inform_project</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">destination_nest</span><span class="plain-syntax"> = </span><a href="../supervisor-module/5-ps2.html#SP4" class="function-link"><span class="function-syntax">Projects::materials_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">destination_nest</span><span class="plain-syntax"> = </span><a href="../supervisor-module/5-ps2.html#SP5" class="function-link"><span class="function-syntax">Projects::materials_nest</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">proj</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="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="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-em.html#SP7" class="function-link"><span class="function-syntax">Errors::with_text</span></a><span class="plain-syntax">(</span><span class="string-syntax">"no -project in use, so ignoring -archive"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -356,8 +356,8 @@ file, including everything needed to use the things needed to build it, and
|
|||
so on; and then will build Example itself. As with the Unix utility <span class="extract"><span class="ConsoleText-extract-syntax">make</span></span>,
|
||||
this is an incremental process, and looks at the timestamps of files to see
|
||||
which steps are needed and which are not. If all the kits needed by Example
|
||||
are up to date, then the kits will not be re-assimilated, and so on. If the
|
||||
same project is built twice in a row, and nothing about it has changed since
|
||||
are up to date, then the kits will not be rebuilt, and so on. If the same
|
||||
project is built twice in a row, and nothing about it has changed since
|
||||
the first time, the second <span class="extract"><span class="ConsoleText-extract-syntax">-build</span></span> does nothing.
|
||||
</p>
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ function togglePopup(material_id) {
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">path_to_inter</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit_to_assimilate</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit_to_build</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">domain_path</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inter_file_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">filename</span></span>
|
||||
<span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">output_textually</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -105,9 +105,9 @@ function togglePopup(material_id) {
|
|||
programs.
|
||||
</p>
|
||||
|
||||
<p class="commentary">Inter can do three different things: assimilate a kit, run a pipeline of
|
||||
<p class="commentary">Inter can do three different things: build a kit, run a pipeline of
|
||||
code generation stages, and verify/transcode files of Inter code. In fact,
|
||||
though, that's really only two different things, because assimilation is
|
||||
though, that's really only two different things, because kit-building is
|
||||
also done with a pipeline.
|
||||
</p>
|
||||
|
||||
|
@ -116,7 +116,7 @@ also done with a pipeline.
|
|||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Start up the modules</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Begin with an empty file list and variables dictionary</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP2_7" class="named-paragraph-link"><span class="named-paragraph">Read the command line</span><span class="named-paragraph-number">2.7</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kit_to_assimilate</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Set up a pipeline for assimilation</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kit_to_build</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Set up a pipeline for kit-building</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">pipeline_as_text</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Run the pipeline</span><span class="named-paragraph-number">2.4</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
|
@ -154,7 +154,7 @@ is used. But at times in the past it has been useful to debug with the text
|
|||
form, which would be written to <span class="extract"><span class="extract-syntax">*outt</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set up a pipeline for assimilation</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Set up a pipeline for kit-building</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -162,15 +162,15 @@ form, which would be written to <span class="extract"><span class="extract-synta
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">A</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><a href="../../../inweb/docs/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"no -architecture given"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">path_to_pipelines</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">path_to_inter</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Pipelines"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">path_to_pipelines</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"assimilate.interpipeline"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">path_to_pipelines</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"build-kit.interpipeline"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pipeline_as_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="1-mn.html#SP1" class="function-link"><span class="function-syntax">Main::add_pipeline_variable</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"*kit"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-pth.html#SP7" class="function-link"><span class="function-syntax">Pathnames::directory_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit_to_assimilate</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-pth.html#SP7" class="function-link"><span class="function-syntax">Pathnames::directory_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit_to_build</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="1-mn.html#SP1" class="function-link"><span class="function-syntax">Main::add_pipeline_variable_from_filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"*out"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="../arch-module/2-arc.html#SP4" class="function-link"><span class="function-syntax">Architectures::canonical_binary</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit_to_assimilate</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="../arch-module/2-arc.html#SP4" class="function-link"><span class="function-syntax">Architectures::canonical_binary</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit_to_build</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="1-mn.html#SP1" class="function-link"><span class="function-syntax">Main::add_pipeline_variable_from_filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"*outt"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="../arch-module/2-arc.html#SP4" class="function-link"><span class="function-syntax">Architectures::canonical_textual</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit_to_assimilate</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="../arch-module/2-arc.html#SP4" class="function-link"><span class="function-syntax">Architectures::canonical_textual</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kit_to_build</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</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>
|
||||
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>§2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Run the pipeline</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -182,7 +182,7 @@ form, which would be written to <span class="extract"><span class="extract-synta
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">pipeline_as_text</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/docs/foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"-pipeline-text and -pipeline-file are mutually exclusive"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inter_paths</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">pathname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kit_to_assimilate</span><span class="plain-syntax">) </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_to_assimilate</span><span class="plain-syntax">, </span><span class="reserved-syntax">pathname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_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">kit_to_build</span><span class="plain-syntax">) </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">kit_to_build</span><span class="plain-syntax">, </span><span class="reserved-syntax">pathname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_paths</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">inter_pipeline</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SS</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">pipeline_as_file</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SS</span><span class="plain-syntax"> = </span><a href="../pipeline-module/2-pp.html#SP5" class="function-link"><span class="function-syntax">ParsingPipelines::from_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax">, </span><span class="identifier-syntax">pipeline_vars</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
|
@ -239,7 +239,7 @@ form, which would be written to <span class="extract"><span class="extract-synta
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PIPELINE_VARIABLE_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">DOMAIN_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">ARCHITECTURE_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">ASSIMILATE_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">BUILD_KIT_CLSW</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">INTERNAL_CLSW</span>
|
||||
</pre>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Read the command line</span><span class="named-paragraph-number">2.7</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -266,8 +266,8 @@ form, which would be written to <span class="extract"><span class="extract-synta
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"specify folder of internal Inform resources"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/docs/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">ARCHITECTURE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"architecture"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"generate Inter with architecture X"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/docs/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">ASSIMILATE_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"assimilate"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"assimilate (i.e., build) Inter kit X for the current architecture"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/docs/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_KIT_CLSW</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"build-kit"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="string-syntax">"build Inter kit X for the current architecture"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="../../../inweb/docs/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::respond</span></a><span class="plain-syntax">, &</span><a href="1-mn.html#SP4" class="function-link"><span class="function-syntax">Main::add_file</span></a><span class="plain-syntax">);</span>
|
||||
|
||||
|
@ -285,7 +285,7 @@ form, which would be written to <span class="extract"><span class="extract-synta
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PIPELINE_FILE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PIPELINE_VARIABLE_CLSW:</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-mn.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Add a pipeline variable to the dictionary</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DOMAIN_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">domain_path</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/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="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">ASSIMILATE_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit_to_assimilate</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/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="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_KIT_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">kit_to_build</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/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="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">INTERNAL_CLSW:</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_path</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/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="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">ARCHITECTURE_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../pipeline-module/1-pm.html#SP4" class="function-link"><span class="function-syntax">PipelineModule::set_architecture</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -169,22 +169,22 @@ and therefore assimilation is really a cross-compilation from I6 to Inter.
|
|||
|
||||
<p class="commentary">Kits are like so-called "fat binaries", in that they contain binary Inter
|
||||
for each different architecture with which they are compatible. Inter can
|
||||
assimilate for only one architecture at a time, so a command must specify
|
||||
build kits for only one architecture at a time, so a command must specify
|
||||
which is wanted. For example:
|
||||
</p>
|
||||
|
||||
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
||||
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">inter/Tangled/inter</span><span class="ConsoleText-identifier-syntax"> -architecture</span><span class="ConsoleText-plain-syntax"> 16</span><span class="ConsoleText-identifier-syntax"> -assimilate</span><span class="ConsoleText-plain-syntax"> K</span>
|
||||
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">inter/Tangled/inter</span><span class="ConsoleText-identifier-syntax"> -architecture</span><span class="ConsoleText-plain-syntax"> 32d</span><span class="ConsoleText-identifier-syntax"> -assimilate</span><span class="ConsoleText-plain-syntax"> K</span>
|
||||
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">inter/Tangled/inter</span><span class="ConsoleText-identifier-syntax"> -architecture</span><span class="ConsoleText-plain-syntax"> 16</span><span class="ConsoleText-identifier-syntax"> -build-kit</span><span class="ConsoleText-plain-syntax"> K</span>
|
||||
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">inter/Tangled/inter</span><span class="ConsoleText-identifier-syntax"> -architecture</span><span class="ConsoleText-plain-syntax"> 32d</span><span class="ConsoleText-identifier-syntax"> -build-kit</span><span class="ConsoleText-plain-syntax"> K</span>
|
||||
</pre>
|
||||
<p class="commentary">Incrementally assimilating kits as needed could be done with something like
|
||||
<p class="commentary">Incrementally building kits as needed could be done with something like
|
||||
the Unix tool <span class="extract"><span class="ConsoleText-extract-syntax">make</span></span>, but in fact Inbuild has this ability: the command
|
||||
</p>
|
||||
|
||||
<pre class="ConsoleText-displayed-code all-displayed-code code-font">
|
||||
<span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-element-syntax">$</span><span class="ConsoleText-plain-syntax"> </span><span class="ConsoleText-function-syntax">inbuild/Tangled/inbuild</span><span class="ConsoleText-identifier-syntax"> -build</span><span class="ConsoleText-plain-syntax"> K</span>
|
||||
</pre>
|
||||
<p class="commentary">looks at the kit, works out which architectures need re-assimilation, and
|
||||
<p class="commentary">looks at the kit, works out which architectures need rebuilding, and
|
||||
then issues commands like the above to instruct <span class="extract"><span class="ConsoleText-extract-syntax">inter</span></span> to do so. Indeed,
|
||||
multiple kits can be managed with a single command:
|
||||
</p>
|
||||
|
|
|
@ -88,6 +88,7 @@ pointers to trees being worked on.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">pipeline_ephemera</span><span class="plain-syntax"> </span><span class="identifier-syntax">ephemera</span><span class="plain-syntax">; </span><span class="comment-syntax"> temporary storage when running</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">search_list</span><span class="plain-syntax">; </span><span class="comment-syntax"> used when parsing only</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">local</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">run_depth</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">inter_pipeline</span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -98,6 +99,7 @@ pointers to trees being worked on.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">erroneous</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">S</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">L</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">local</span><span class="plain-syntax"> = </span><span class="identifier-syntax">local</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">run_depth</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rp.html#SP1" class="function-link"><span class="function-syntax">RunningPipelines::clean_pipeline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</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">S</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -238,9 +240,12 @@ divided by commas.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>Instructions are mostly steps, but...
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>Instructions are mostly steps, but:
|
||||
</p>
|
||||
|
||||
<ul class="items"><li>(a) A line beginning with an <span class="extract"><span class="extract-syntax">!</span></span> is a comment,
|
||||
</li><li>(b) <span class="extract"><span class="extract-syntax">run pipeline X</span></span> means to incorporate pipeline <span class="extract"><span class="extract-syntax">X</span></span> here.
|
||||
</li></ul>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ParsingPipelines::parse_instruction</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">ParsingPipelines::parse_instruction</span></span>:<br/><a href="2-pp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">inter_pipeline</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">) {</span>
|
||||
|
@ -248,19 +253,30 @@ divided by commas.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"!%c*"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> ;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Regexp::match</span><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"run pipeline (%c*)"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">SUPERVISOR_MODULE</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">InterSkill::filename_of_pipeline</span><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">SUPERVISOR_MODULE</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::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-></span><span class="element-syntax">local</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterSkill::filename_of_pipeline</span><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-></span><span class="element-syntax">search_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leafname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::new</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">, </span><span class="string-syntax">"%S.interpipeline"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::in</span><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-></span><span class="element-syntax">local</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</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">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP1" class="function-link"><span class="function-syntax">PipelineErrors::syntax_with</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"unable to find the pipeline '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-></span><span class="element-syntax">erroneous</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">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TextFiles::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="string-syntax">"can't open inter pipeline file"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><a href="2-pp.html#SP5" class="function-link"><span class="function-syntax">ParsingPipelines::scan_line</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-></span><span class="element-syntax">run_depth</span><span class="plain-syntax">++ > </span><span class="constant-syntax">100</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pe.html#SP1" class="function-link"><span class="function-syntax">PipelineErrors::syntax_with</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"pipeline seems to have become circular: '%S'"</span><span class="plain-syntax">, </span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="identifier-syntax">exp</span><span class="plain-syntax">[0]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-></span><span class="element-syntax">erroneous</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">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TextFiles::read</span><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="string-syntax">"can't open inter pipeline file"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><a href="2-pp.html#SP5" class="function-link"><span class="function-syntax">ParsingPipelines::scan_line</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-></span><span class="element-syntax">run_depth</span><span class="plain-syntax">--;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ST</span><span class="plain-syntax"> = </span><a href="2-pp.html#SP8" class="function-link"><span class="function-syntax">ParsingPipelines::parse_step</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">tfp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ST</span><span class="plain-syntax">) </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">ST</span><span class="plain-syntax">, </span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax">, </span><span class="identifier-syntax">pipeline</span><span class="plain-syntax">-></span><span class="element-syntax">steps</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -79,11 +79,11 @@ function togglePopup(material_id) {
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">ParsingStages::create_pipeline_stage</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">ParsingStages::create_pipeline_stage</span></span>:<br/>Parsing Pipelines - <a href="2-pp.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pp.html#SP3" class="function-link"><span class="function-syntax">ParsingPipelines::new_stage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"parse-kit"</span><span class="plain-syntax">, </span><a href="3-ps.html#SP1" class="function-link"><span class="function-syntax">ParsingStages::run_parse_kit</span></a><span class="plain-syntax">, </span><span class="constant-syntax">TEMPLATE_FILE_STAGE_ARG</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pp.html#SP3" class="function-link"><span class="function-syntax">ParsingPipelines::new_stage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"load-kit-source"</span><span class="plain-syntax">, </span><a href="3-ps.html#SP1" class="function-link"><span class="function-syntax">ParsingStages::run_load_kit_source</span></a><span class="plain-syntax">, </span><span class="constant-syntax">TEMPLATE_FILE_STAGE_ARG</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-pp.html#SP3" class="function-link"><span class="function-syntax">ParsingPipelines::new_stage</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"parse-insertions"</span><span class="plain-syntax">, </span><a href="3-ps.html#SP1" class="function-link"><span class="function-syntax">ParsingStages::run_parse_insertions</span></a><span class="plain-syntax">, </span><span class="constant-syntax">NO_STAGE_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">int</span><span class="plain-syntax"> </span><span class="function-syntax">ParsingStages::run_parse_kit</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">ParsingStages::run_load_kit_source</span><span class="plain-syntax">(</span><span class="reserved-syntax">pipeline_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">step</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">main_package</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Site::main_package_if_it_exists</span><span class="plain-syntax">(</span><span class="identifier-syntax">step</span><span class="plain-syntax">-></span><span class="element-syntax">ephemera</span><span class="plain-syntax">.</span><span class="element-syntax">repository</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_bookmark</span><span class="plain-syntax"> </span><span class="identifier-syntax">IBM</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">main_package</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -71,7 +71,7 @@ function togglePopup(material_id) {
|
|||
<!--Weave of 'Inter Skill' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inbuild Modules</a></li><li><a href="index.html">supervisor</a></li><li><a href="index.html#3">Chapter 3: Incremental Builds</a></li><li><b>Inter Skill</b></li></ul></div>
|
||||
<p class="purpose">The skills of kit assimilation and of code generation from Inter.</p>
|
||||
<p class="purpose">The skills of kit building and of code generation from Inter.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-is.html#SP1">§1. Creation</a></li><li><a href="3-is.html#SP2">§2. Assimilation</a></li><li><a href="3-is.html#SP4">§4. Code generation</a></li></ul><hr class="tocbar">
|
||||
|
||||
|
@ -81,16 +81,16 @@ is being held in memory by <span class="extract"><span class="extract-syntax">in
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">assimilate_using_inter_skill</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">build_kit_using_inter_skill</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">code_generate_using_inter_skill</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">InterSkill::create</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">InterSkill::create</span></span>:<br/>Inbuild Control - <a href="1-ic.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">assimilate_using_inter_skill</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bs2.html#SP1" class="function-link"><span class="function-syntax">BuildSteps::new_skill</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"assimilate using inter"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">assimilate_using_inter_skill</span><span class="plain-syntax">, </span><span class="constant-syntax">BUILD_SKILL_COMMAND_MTID</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-is.html#SP2" class="function-link"><span class="function-syntax">InterSkill::assimilate_via_shell</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">assimilate_using_inter_skill</span><span class="plain-syntax">, </span><span class="constant-syntax">BUILD_SKILL_INTERNAL_MTID</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-is.html#SP3" class="function-link"><span class="function-syntax">InterSkill::assimilate_internally</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">build_kit_using_inter_skill</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bs2.html#SP1" class="function-link"><span class="function-syntax">BuildSteps::new_skill</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"build kit using inter"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">build_kit_using_inter_skill</span><span class="plain-syntax">, </span><span class="constant-syntax">BUILD_SKILL_COMMAND_MTID</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-is.html#SP2" class="function-link"><span class="function-syntax">InterSkill::build_kit_via_shell</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">build_kit_using_inter_skill</span><span class="plain-syntax">, </span><span class="constant-syntax">BUILD_SKILL_INTERNAL_MTID</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-is.html#SP3" class="function-link"><span class="function-syntax">InterSkill::build_kit_internally</span></a><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">code_generate_using_inter_skill</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bs2.html#SP1" class="function-link"><span class="function-syntax">BuildSteps::new_skill</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"code generate using inter"</span><span class="plain-syntax">);</span>
|
||||
|
@ -101,28 +101,28 @@ is being held in memory by <span class="extract"><span class="extract-syntax">in
|
|||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. Assimilation. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterSkill::assimilate_via_shell</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">InterSkill::assimilate_via_shell</span></span>:<br/><a href="3-is.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">skill</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterSkill::build_kit_via_shell</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">InterSkill::build_kit_via_shell</span></span>:<br/><a href="3-is.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">skill</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">command</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_methodology</span><span class="plain-syntax"> *</span><span class="identifier-syntax">BM</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_list</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_architecture</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">for_arch</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">A</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no architecture given"</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">kit_path</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">associated_copy</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_path</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Shell::quote_file</span><span class="plain-syntax">(</span><span class="identifier-syntax">command</span><span class="plain-syntax">, </span><span class="identifier-syntax">BM</span><span class="plain-syntax">-></span><span class="element-syntax">to_inter</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">command</span><span class="plain-syntax">, </span><span class="string-syntax">"-architecture %S "</span><span class="plain-syntax">, </span><span class="identifier-syntax">Architectures::to_codename</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">command</span><span class="plain-syntax">, </span><span class="string-syntax">"-assimilate "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">command</span><span class="plain-syntax">, </span><span class="string-syntax">"-build-kit "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Shell::quote_path</span><span class="plain-syntax">(</span><span class="identifier-syntax">command</span><span class="plain-syntax">, </span><span class="identifier-syntax">kit_path</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>Something to watch out for here is that, when running internally as part of
|
||||
<span class="extract"><span class="extract-syntax">inform7</span></span>, we use the copy of the <span class="extract"><span class="extract-syntax">assimilate</span></span> pipeline inside the installation
|
||||
of <span class="extract"><span class="extract-syntax">inform7</span></span> (it will be in the internal nest). When we perform assimilation
|
||||
from the command line using the <span class="extract"><span class="extract-syntax">inter</span></span> tool, we use the <span class="extract"><span class="extract-syntax">assimilate</span></span> pipeline
|
||||
supplied in the <span class="extract"><span class="extract-syntax">inter</span></span> installation. But those two files are in fact the same,
|
||||
or should be, so the effect is the same.
|
||||
<span class="extract"><span class="extract-syntax">inform7</span></span>, we use the copy of the <span class="extract"><span class="extract-syntax">build-kit</span></span> pipeline inside the installation
|
||||
of <span class="extract"><span class="extract-syntax">inform7</span></span> (it will be in the internal nest). When we build kits from the
|
||||
command line using the <span class="extract"><span class="extract-syntax">inter</span></span> tool, we use the <span class="extract"><span class="extract-syntax">build-kit</span></span> pipeline supplied
|
||||
in the <span class="extract"><span class="extract-syntax">inter</span></span> installation. But those two files are in fact the same, or
|
||||
should be, so the effect is the same.
|
||||
</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">InterSkill::assimilate_internally</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">InterSkill::assimilate_internally</span></span>:<br/><a href="3-is.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">skill</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">InterSkill::build_kit_internally</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">InterSkill::build_kit_internally</span></span>:<br/><a href="3-is.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">build_skill</span><span class="plain-syntax"> *</span><span class="identifier-syntax">skill</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_step</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">build_methodology</span><span class="plain-syntax"> *</span><span class="identifier-syntax">BM</span><span class="plain-syntax">, </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">search_list</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">PIPELINE_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_architecture</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">for_arch</span><span class="plain-syntax">;</span>
|
||||
|
@ -130,9 +130,10 @@ or should be, so the effect is the same.
|
|||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kit_path</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">associated_copy</span><span class="plain-syntax">-></span><span class="element-syntax">location_if_path</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dictionary</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pipeline_vars</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ParsingPipelines::basic_dictionary</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</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">pipeline_as_file</span><span class="plain-syntax"> = </span><a href="3-is.html#SP3" class="function-link"><span class="function-syntax">InterSkill::filename_of_pipeline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"assimilate"</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="3-is.html#SP3" class="function-link"><span class="function-syntax">InterSkill::filename_of_pipeline</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"build-kit"</span><span class="plain-syntax">, </span><span class="identifier-syntax">search_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pipeline_as_file</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::nowhere</span><span class="plain-syntax">(</span><span class="string-syntax">"assimilate pipeline could not be found"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::nowhere</span><span class="plain-syntax">(</span><span class="string-syntax">"build-kit pipeline could not be found"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
|
@ -157,7 +158,7 @@ or should be, so the effect is the same.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">RunningPipelines::run</span><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">SS</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_paths</span><span class="plain-syntax">, </span><span class="identifier-syntax">requirements_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">for_vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::nowhere</span><span class="plain-syntax">(</span><span class="string-syntax">"assimilate pipeline could not be parsed"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Errors::nowhere</span><span class="plain-syntax">(</span><span class="string-syntax">"build-kit pipeline could not be parsed"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
|
|
|
@ -529,7 +529,7 @@ not ours.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_architecture</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">BV</span><span class="plain-syntax"> = </span><a href="3-bg.html#SP2" class="function-link"><span class="function-syntax">Graphs::file_vertex</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Architectures::canonical_binary</span><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bg.html#SP4" class="function-link"><span class="function-syntax">Graphs::need_this_to_build</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">KV</span><span class="plain-syntax">, </span><span class="identifier-syntax">BV</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bs2.html#SP4" class="function-link"><span class="function-syntax">BuildSteps::attach</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">BV</span><span class="plain-syntax">, </span><span class="identifier-syntax">assimilate_using_inter_skill</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-bs2.html#SP4" class="function-link"><span class="function-syntax">BuildSteps::attach</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">BV</span><span class="plain-syntax">, </span><span class="identifier-syntax">build_kit_using_inter_skill</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">as_copy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">BV</span><span class="plain-syntax">, </span><span class="reserved-syntax">build_vertex</span><span class="plain-syntax">, </span><span class="identifier-syntax">BVL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
|
|
|
@ -163,7 +163,7 @@
|
|||
<li>
|
||||
<p class="sectionentry"><a href="3-is.html">
|
||||
<spon class="sectiontitle">Inter Skill</span></a> -
|
||||
<span class="sectionpurpose">The skills of kit assimilation and of code generation from Inter.</span></p>
|
||||
<span class="sectionpurpose">The skills of kit building and of code generation from Inter.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-is2.html">
|
||||
|
|
|
@ -242,8 +242,8 @@ file, including everything needed to use the things needed to build it, and
|
|||
so on; and then will build Example itself. As with the Unix utility |make|,
|
||||
this is an incremental process, and looks at the timestamps of files to see
|
||||
which steps are needed and which are not. If all the kits needed by Example
|
||||
are up to date, then the kits will not be re-assimilated, and so on. If the
|
||||
same project is built twice in a row, and nothing about it has changed since
|
||||
are up to date, then the kits will not be rebuilt, and so on. If the same
|
||||
project is built twice in a row, and nothing about it has changed since
|
||||
the first time, the second |-build| does nothing.
|
||||
|
||||
Inbuild uses the graph to work out what needs to be done, and then issues
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[InterSkill::] Inter Skill.
|
||||
|
||||
The skills of kit assimilation and of code generation from Inter.
|
||||
The skills of kit building and of code generation from Inter.
|
||||
|
||||
@h Creation.
|
||||
Note that code generation can only be done internally, and only in fact within
|
||||
|
@ -8,16 +8,16 @@ the |inform7| compiler: this is because the Inter code which it generates from
|
|||
is being held in memory by |inform7|.
|
||||
|
||||
=
|
||||
build_skill *assimilate_using_inter_skill = NULL;
|
||||
build_skill *build_kit_using_inter_skill = NULL;
|
||||
build_skill *code_generate_using_inter_skill = NULL;
|
||||
|
||||
void InterSkill::create(void) {
|
||||
assimilate_using_inter_skill =
|
||||
BuildSteps::new_skill(I"assimilate using inter");
|
||||
METHOD_ADD(assimilate_using_inter_skill, BUILD_SKILL_COMMAND_MTID,
|
||||
InterSkill::assimilate_via_shell);
|
||||
METHOD_ADD(assimilate_using_inter_skill, BUILD_SKILL_INTERNAL_MTID,
|
||||
InterSkill::assimilate_internally);
|
||||
build_kit_using_inter_skill =
|
||||
BuildSteps::new_skill(I"build kit using inter");
|
||||
METHOD_ADD(build_kit_using_inter_skill, BUILD_SKILL_COMMAND_MTID,
|
||||
InterSkill::build_kit_via_shell);
|
||||
METHOD_ADD(build_kit_using_inter_skill, BUILD_SKILL_INTERNAL_MTID,
|
||||
InterSkill::build_kit_internally);
|
||||
|
||||
code_generate_using_inter_skill =
|
||||
BuildSteps::new_skill(I"code generate using inter");
|
||||
|
@ -28,27 +28,27 @@ void InterSkill::create(void) {
|
|||
@h Assimilation.
|
||||
|
||||
=
|
||||
int InterSkill::assimilate_via_shell(build_skill *skill, build_step *S,
|
||||
int InterSkill::build_kit_via_shell(build_skill *skill, build_step *S,
|
||||
text_stream *command, build_methodology *BM, linked_list *search_list) {
|
||||
inter_architecture *A = S->for_arch;
|
||||
if (A == NULL) internal_error("no architecture given");
|
||||
pathname *kit_path = S->associated_copy->location_if_path;
|
||||
Shell::quote_file(command, BM->to_inter);
|
||||
WRITE_TO(command, "-architecture %S ", Architectures::to_codename(A));
|
||||
WRITE_TO(command, "-assimilate ");
|
||||
WRITE_TO(command, "-build-kit ");
|
||||
Shell::quote_path(command, kit_path);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ Something to watch out for here is that, when running internally as part of
|
||||
|inform7|, we use the copy of the |assimilate| pipeline inside the installation
|
||||
of |inform7| (it will be in the internal nest). When we perform assimilation
|
||||
from the command line using the |inter| tool, we use the |assimilate| pipeline
|
||||
supplied in the |inter| installation. But those two files are in fact the same,
|
||||
or should be, so the effect is the same.
|
||||
|inform7|, we use the copy of the |build-kit| pipeline inside the installation
|
||||
of |inform7| (it will be in the internal nest). When we build kits from the
|
||||
command line using the |inter| tool, we use the |build-kit| pipeline supplied
|
||||
in the |inter| installation. But those two files are in fact the same, or
|
||||
should be, so the effect is the same.
|
||||
|
||||
=
|
||||
int InterSkill::assimilate_internally(build_skill *skill, build_step *S,
|
||||
int InterSkill::build_kit_internally(build_skill *skill, build_step *S,
|
||||
build_methodology *BM, linked_list *search_list) {
|
||||
#ifdef PIPELINE_MODULE
|
||||
inter_architecture *A = S->for_arch;
|
||||
|
@ -56,9 +56,10 @@ int InterSkill::assimilate_internally(build_skill *skill, build_step *S,
|
|||
|
||||
pathname *kit_path = S->associated_copy->location_if_path;
|
||||
dictionary *pipeline_vars = ParsingPipelines::basic_dictionary(NULL);
|
||||
filename *pipeline_as_file = InterSkill::filename_of_pipeline(I"assimilate", search_list);
|
||||
filename *pipeline_as_file =
|
||||
InterSkill::filename_of_pipeline(I"build-kit", search_list);
|
||||
if (pipeline_as_file == NULL) {
|
||||
Errors::nowhere("assimilate pipeline could not be found");
|
||||
Errors::nowhere("build-kit pipeline could not be found");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -83,7 +84,7 @@ int InterSkill::assimilate_internally(build_skill *skill, build_step *S,
|
|||
RunningPipelines::run(NULL, SS, NULL, inter_paths, requirements_list, S->for_vm);
|
||||
return TRUE;
|
||||
} else {
|
||||
Errors::nowhere("assimilate pipeline could not be parsed");
|
||||
Errors::nowhere("build-kit pipeline could not be parsed");
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -395,7 +395,7 @@ void Kits::construct_graph(inform_kit *K) {
|
|||
LOOP_OVER(A, inter_architecture) {
|
||||
build_vertex *BV = Graphs::file_vertex(Architectures::canonical_binary(P, A));
|
||||
Graphs::need_this_to_build(KV, BV);
|
||||
BuildSteps::attach(BV, assimilate_using_inter_skill, FALSE, NULL, A, K->as_copy);
|
||||
BuildSteps::attach(BV, build_kit_using_inter_skill, FALSE, NULL, A, K->as_copy);
|
||||
ADD_TO_LINKED_LIST(BV, build_vertex, BVL);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
Total memory consumption was 399461K = 390 MB
|
||||
Total memory consumption was 400128K = 391 MB
|
||||
|
||||
61.0% was used for 2020860 objects, in 380008 frames in 305 x 800K = 244000K = 238 MB:
|
||||
60.9% was used for 2026661 objects, in 380067 frames in 305 x 800K = 244000K = 238 MB:
|
||||
|
||||
10.2% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
7.2% text_stream_array 5256 x 100 = 525600 objects, 29601792 bytes
|
||||
7.2% text_stream_array 5302 x 100 = 530200 objects, 29860864 bytes
|
||||
4.7% linked_list 34789 objects, 19481840 bytes
|
||||
3.9% inter_symbol_array 140 x 1024 = 143360 objects, 16060800 bytes
|
||||
2.5% parse_node 129462 objects, 10356960 bytes
|
||||
|
@ -18,10 +18,10 @@ Total memory consumption was 399461K = 390 MB
|
|||
0.4% package_request 21139 objects, 1860232 bytes
|
||||
0.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
|
||||
0.4% inter_symbols_table 26570 objects, 1700480 bytes
|
||||
0.3% dictionary 33307 objects, 1598736 bytes
|
||||
0.3% dictionary 33308 objects, 1598784 bytes
|
||||
0.3% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
|
||||
0.3% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
|
||||
0.3% dict_entry_array 411 x 100 = 41100 objects, 1328352 bytes
|
||||
0.3% dict_entry_array 423 x 100 = 42300 objects, 1367136 bytes
|
||||
0.2% map_data 670 objects, 1125600 bytes
|
||||
0.2% id_body 941 objects, 1076504 bytes
|
||||
0.2% adjective_meaning 202 objects, 1000304 bytes
|
||||
|
@ -236,17 +236,17 @@ Total memory consumption was 399461K = 390 MB
|
|||
---- I6_generation_data 1 object, 40 bytes
|
||||
---- kind_template_definition 1 object, 40 bytes
|
||||
|
||||
38.9% was used for memory not allocated for objects:
|
||||
39.0% was used for memory not allocated for objects:
|
||||
|
||||
20.3% text stream storage 83179496 bytes in 543561 claims
|
||||
4.4% dictionary storage 18326016 bytes in 33307 claims
|
||||
20.4% text stream storage 83604676 bytes in 548197 claims
|
||||
4.5% dictionary storage 18457088 bytes in 33308 claims
|
||||
---- sorting 736 bytes in 3 claims
|
||||
1.7% source text 7200000 bytes in 3 claims
|
||||
2.6% source text details 10800000 bytes in 2 claims
|
||||
---- documentation fragments 262144 bytes in 1 claim
|
||||
---- linguistic stock array 81920 bytes in 2 claims
|
||||
---- small word set array 105600 bytes in 22 claims
|
||||
1.0% inter symbols storage 4172240 bytes in 27675 claims
|
||||
1.0% inter symbols storage 4299216 bytes in 27676 claims
|
||||
4.1% inter bytecode storage 16802748 bytes in 14 claims
|
||||
3.9% inter links storage 16174208 bytes in 266 claims
|
||||
---- inter tree location list storage 191232 bytes in 32 claims
|
||||
|
@ -256,5 +256,5 @@ Total memory consumption was 399461K = 390 MB
|
|||
---- code generation workspace for objects 1336 bytes in 4 claims
|
||||
---- emitter array storage 161792 bytes in 2062 claims
|
||||
|
||||
18.6% was overhead - 76457864 bytes = 74665K = 72 MB
|
||||
18.5% was overhead - 76159960 bytes = 74374K = 72 MB
|
||||
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
100.0% in inform7 run
|
||||
55.7% in compilation to Inter
|
||||
40.1% in //Sequence::undertake_queued_tasks//
|
||||
3.5% in //MajorNodes::pre_pass//
|
||||
2.6% in //MajorNodes::pass_1//
|
||||
56.2% in compilation to Inter
|
||||
40.6% in //Sequence::undertake_queued_tasks//
|
||||
3.4% in //MajorNodes::pre_pass//
|
||||
2.7% in //MajorNodes::pass_1//
|
||||
2.1% in //RTPhrasebook::compile_entries//
|
||||
1.3% in //ImperativeDefinitions::assess_all//
|
||||
1.2% in //RTKindConstructors::compile//
|
||||
0.4% in //ImperativeDefinitions::compile_first_block//
|
||||
0.4% in //MajorNodes::pass_2//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
0.4% in //World::stage_V//
|
||||
0.3% in //ImperativeDefinitions::compile_first_block//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.1% in //CompletionModule::compile//
|
||||
0.1% in //InferenceSubjects::emit_all//
|
||||
0.1% in //RTKindConstructors::compile_permissions//
|
||||
0.1% in //Task::make_built_in_kind_constructors//
|
||||
2.2% not specifically accounted for
|
||||
42.1% in running Inter pipeline
|
||||
12.2% in step preparation
|
||||
0.1% in //World::stages_II_and_III//
|
||||
1.8% not specifically accounted for
|
||||
41.7% in running Inter pipeline
|
||||
11.9% in step preparation
|
||||
9.8% in inter step 7/16: consolidate-text
|
||||
7.9% in inter step 6/16: load-binary-kits
|
||||
6.8% in inter step 16/16: generate inform6 -> auto.inf
|
||||
8.0% in inter step 6/16: load-binary-kits
|
||||
6.6% in inter step 16/16: generate inform6 -> auto.inf
|
||||
1.5% in inter step 11/16: make-identifiers-unique
|
||||
0.4% in inter step 12/16: reconcile-verbs
|
||||
0.3% in inter step 14/16: eliminate-redundant-operations
|
||||
|
@ -31,6 +32,6 @@
|
|||
0.1% in inter step 3/16: parse-linked-matter
|
||||
0.1% in inter step 4/16: resolve-conditional-compilation
|
||||
0.1% in inter step 9/16: inspect-plugs
|
||||
1.6% not specifically accounted for
|
||||
1.8% in supervisor
|
||||
1.7% not specifically accounted for
|
||||
1.6% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
new
|
||||
parse-kit <- *kit
|
||||
parse-insertions
|
||||
parse-linked-matter
|
||||
resolve-conditional-compilation
|
||||
assimilate
|
||||
resolve-external-symbols
|
||||
detect-indirect-calls
|
||||
generate binary -> *out
|
||||
|
|
4
inform7/Internal/Pipelines/build-kit.interpipeline
Normal file
4
inform7/Internal/Pipelines/build-kit.interpipeline
Normal file
|
@ -0,0 +1,4 @@
|
|||
new
|
||||
load-kit-source <- *kit
|
||||
run pipeline assimilate
|
||||
generate binary -> *out
|
|
@ -1,6 +1,6 @@
|
|||
read <- *in
|
||||
|
||||
run pipeline normalise
|
||||
run pipeline assimilate
|
||||
|
||||
load-binary-kits
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
parse-insertions
|
||||
parse-linked-matter
|
||||
resolve-conditional-compilation
|
||||
assimilate
|
|
@ -5247,7 +5247,7 @@ package main _plain
|
|||
symbol private misc sk
|
||||
symbol external misc K_unchecked --> /main/generic/kinds/K_unchecked
|
||||
symbol private misc k
|
||||
symbol external misc plug_00282 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc plug_00341 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc WEAK_ID_39 --> /main/basic_inform_by_graham_nelson/kinds/kind1/WEAK_ID_39
|
||||
symbol external misc call --> /main/basic_inform_by_graham_nelson/kinds/kind1/mkdef_fn/call
|
||||
symbol external misc WEAK_ID_40 --> /main/english_language_by_graham_nelson/kinds/kind1/WEAK_ID_40
|
||||
|
@ -5463,7 +5463,7 @@ package main _plain
|
|||
symbol private misc k
|
||||
symbol external misc K_unchecked --> /main/generic/kinds/K_unchecked
|
||||
symbol private misc v
|
||||
symbol external misc plug_00282 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc plug_00341 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc WEAK_ID_39 --> /main/basic_inform_by_graham_nelson/kinds/kind1/WEAK_ID_39
|
||||
symbol external misc call --> /main/basic_inform_by_graham_nelson/kinds/kind1/print_fn/call
|
||||
symbol external misc WEAK_ID_40 --> /main/english_language_by_graham_nelson/kinds/kind1/WEAK_ID_40
|
||||
|
@ -5769,7 +5769,7 @@ package main _plain
|
|||
package block1 _code
|
||||
symbol private misc k
|
||||
symbol external misc K_unchecked --> /main/generic/kinds/K_unchecked
|
||||
symbol external misc plug_00282 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc plug_00341 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc OBJECT_TY --> /main/generic/kinds/kind1/OBJECT_TY
|
||||
symbol external misc plug_00005 --> /main/BasicInformKit/functions/UnsignedCompare_fn/UnsignedCompare
|
||||
symbol external misc REAL_NUMBER_TY --> /main/generic/kinds/kind3/REAL_NUMBER_TY
|
||||
|
@ -5953,7 +5953,7 @@ package main _plain
|
|||
package block1 _code
|
||||
symbol private misc k
|
||||
symbol external misc K_unchecked --> /main/generic/kinds/K_unchecked
|
||||
symbol external misc plug_00282 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc plug_00341 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc WEAK_ID_39 --> /main/basic_inform_by_graham_nelson/kinds/kind1/WEAK_ID_39
|
||||
symbol external misc WEAK_ID_40 --> /main/english_language_by_graham_nelson/kinds/kind1/WEAK_ID_40
|
||||
symbol external misc WEAK_ID_41 --> /main/english_language_by_graham_nelson/kinds/kind2/WEAK_ID_41
|
||||
|
@ -6008,7 +6008,7 @@ package main _plain
|
|||
package block1 _code
|
||||
symbol private misc k
|
||||
symbol external misc K_unchecked --> /main/generic/kinds/K_unchecked
|
||||
symbol external misc plug_00282 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc plug_00341 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc TEXT_TY --> /main/generic/kinds/kind5/TEXT_TY
|
||||
symbol external misc RELATION_TY --> /main/generic/kinds/kind25/RELATION_TY
|
||||
symbol external misc LIST_OF_TY --> /main/generic/kinds/kind29/LIST_OF_TY
|
||||
|
@ -6061,7 +6061,7 @@ package main _plain
|
|||
symbol private misc k
|
||||
symbol external misc K_unchecked --> /main/generic/kinds/K_unchecked
|
||||
symbol private misc fail
|
||||
symbol external misc plug_00282 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc plug_00341 --> /main/BasicInformKit/functions/KindAtomic_fn/KindAtomic
|
||||
symbol external misc TEXT_TY --> /main/generic/kinds/kind5/TEXT_TY
|
||||
symbol external misc plug_00010 --> /main/BasicInformKit/functions/TEXT_TY_Support_fn/TEXT_TY_Support
|
||||
symbol external misc RELATION_TY --> /main/generic/kinds/kind25/RELATION_TY
|
||||
|
@ -6070,7 +6070,7 @@ package main _plain
|
|||
symbol external misc plug_00021 --> /main/BasicInformKit/functions/LIST_OF_TY_Support_fn/LIST_OF_TY_Support
|
||||
symbol external misc COMBINATION_TY --> /main/generic/kinds/kind33/COMBINATION_TY
|
||||
symbol external misc plug_00024 --> /main/BasicInformKit/functions/COMBINATION_TY_Support_fn/COMBINATION_TY_Support
|
||||
symbol external misc plug_00283 --> /main/BasicInformKit/functions/BlkValueError_fn/BlkValueError
|
||||
symbol external misc plug_00342 --> /main/BasicInformKit/functions/BlkValueError_fn/BlkValueError
|
||||
local k K_unchecked
|
||||
local fail K_unchecked
|
||||
code
|
||||
|
@ -6347,7 +6347,7 @@ package main _plain
|
|||
symbol public misc TB_Blanks
|
||||
symbol public misc RANKING_TABLE
|
||||
symbol external misc K_unchecked_list --> /main/generic/kinds/K_unchecked_list
|
||||
symbol external misc plug_00284 --> /main/BasicInformKit/arrays/TheEmptyTable_arr/TheEmptyTable
|
||||
symbol external misc plug_00343 --> /main/BasicInformKit/arrays/TheEmptyTable_arr/TheEmptyTable
|
||||
symbol external misc K_unchecked --> /main/generic/kinds/K_unchecked
|
||||
package print_fn _function
|
||||
symbol public misc call `PrintTableName`
|
||||
|
@ -6356,7 +6356,7 @@ package main _plain
|
|||
package block1 _code
|
||||
symbol private misc T
|
||||
symbol external misc K_unchecked --> /main/generic/kinds/K_unchecked
|
||||
symbol external misc plug_00284 --> /main/BasicInformKit/arrays/TheEmptyTable_arr/TheEmptyTable
|
||||
symbol external misc plug_00343 --> /main/BasicInformKit/arrays/TheEmptyTable_arr/TheEmptyTable
|
||||
local T K_unchecked
|
||||
code
|
||||
inv !switch
|
||||
|
@ -34812,7 +34812,7 @@ package main _plain
|
|||
constant KIT_CONFIGURATION_BITMAP K_int32 = 0
|
||||
constant KIT_CONFIGURATION_LOOKMODE K_int32 = 2
|
||||
constant I7_VERSION_NUMBER K_string = "10.1.0"
|
||||
constant I7_FULL_VERSION_NUMBER K_string = "10.1.0-alpha.1+6T79"
|
||||
constant I7_FULL_VERSION_NUMBER K_string = "10.1.0-alpha.1+6T80"
|
||||
constant ^virtual_machine K_string = "C/32d/v1/no-main"
|
||||
constant ^virtual_machine_icon K_string = "vm_glulx.png"
|
||||
constant ^language_elements_used K_string = "core, naming, instance counting, glulx external files"
|
||||
|
@ -38595,90 +38595,144 @@ package main _plain
|
|||
symbol plug misc plug_00104 --> /main/connectors/WORDSIZE
|
||||
symbol plug misc plug_00105 --> /main/connectors/MAX_POSITIVE_NUMBER
|
||||
symbol plug misc plug_00106 --> /main/connectors/WORDSIZE
|
||||
symbol plug misc plug_00107 --> /main/connectors/RELS_Y_UNIQUE
|
||||
symbol plug misc plug_00108 --> /main/connectors/RELS_X_UNIQUE
|
||||
symbol plug misc plug_00109 --> /main/connectors/RELS_X_UNIQUE
|
||||
symbol plug misc plug_00110 --> /main/connectors/RELS_Y_UNIQUE
|
||||
symbol plug misc plug_00111 --> /main/connectors/RELS_EQUIVALENCE
|
||||
symbol plug misc plug_00112 --> /main/connectors/RELS_SYMMETRIC
|
||||
symbol plug misc plug_00113 --> /main/connectors/RELS_SYMMETRIC
|
||||
symbol plug misc plug_00114 --> /main/connectors/RELS_SYMMETRIC
|
||||
symbol plug misc plug_00107 --> /main/connectors/RR_NAME
|
||||
symbol plug misc plug_00108 --> /main/connectors/RR_PERMISSIONS
|
||||
symbol plug misc plug_00109 --> /main/connectors/RR_STORAGE
|
||||
symbol plug misc plug_00110 --> /main/connectors/RR_KIND
|
||||
symbol plug misc plug_00111 --> /main/connectors/RR_HANDLER
|
||||
symbol plug misc plug_00112 --> /main/connectors/RR_DESCRIPTION
|
||||
symbol plug misc plug_00113 --> /main/connectors/RELS_Y_UNIQUE
|
||||
symbol plug misc plug_00114 --> /main/connectors/RELS_X_UNIQUE
|
||||
symbol plug misc plug_00115 --> /main/connectors/RELS_X_UNIQUE
|
||||
symbol plug misc plug_00116 --> /main/connectors/RELS_Y_UNIQUE
|
||||
symbol plug misc plug_00117 --> /main/connectors/RELS_EQUIVALENCE
|
||||
symbol plug misc plug_00118 --> /main/connectors/RELS_SYMMETRIC
|
||||
symbol plug misc plug_00119 --> /main/connectors/RELS_X_UNIQUE
|
||||
symbol plug misc plug_00120 --> /main/connectors/RELS_Y_UNIQUE
|
||||
symbol plug misc plug_00121 --> /main/connectors/ICOUNT_OBJECT
|
||||
symbol plug misc plug_00122 --> /main/connectors/DICT_WORD_SIZE
|
||||
symbol plug misc plug_00123 --> /main/connectors/MEMORY_HEAP_SIZE
|
||||
symbol plug misc plug_00124 --> /main/connectors/TEXT_TY_BufferSize
|
||||
symbol plug misc plug_00125 --> /main/connectors/PrintShortName
|
||||
symbol plug misc plug_00126 --> /main/connectors/OBJECT_TY
|
||||
symbol plug misc plug_00127 --> /main/connectors/BASE_KIND_HWM
|
||||
symbol plug misc plug_00128 --> /main/connectors/UNKNOWN_TY
|
||||
symbol plug misc plug_00129 --> /main/connectors/CV_MEANING
|
||||
symbol plug misc plug_00130 --> /main/connectors/MEANINGLESS_RR
|
||||
symbol plug misc plug_00131 --> /main/connectors/CV_MODAL
|
||||
symbol plug misc plug_00132 --> /main/connectors/RNG_SEED_AT_START_OF_PLAY
|
||||
symbol plug misc plug_00133 --> /main/connectors/MAX_POSITIVE_NUMBER
|
||||
symbol plug misc plug_00134 --> /main/connectors/KIT_CONFIGURATION_BITMAP
|
||||
symbol plug misc plug_00135 --> /main/connectors/DrawStatusLine
|
||||
symbol plug misc plug_00136 --> /main/connectors/WORDSIZE
|
||||
symbol plug misc plug_00137 --> /main/connectors/DICT_WORD_SIZE
|
||||
symbol plug misc plug_00138 --> /main/connectors/WORD_NEXTTOHIGHBIT
|
||||
symbol plug misc plug_00139 --> /main/connectors/NO_EXTERNAL_FILES
|
||||
symbol plug misc plug_00140 --> /main/connectors/TableOfExternalFiles
|
||||
symbol plug misc plug_00141 --> /main/connectors/UUID_ARRAY
|
||||
symbol plug misc plug_00142 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00143 --> /main/connectors/TB_Blanks
|
||||
symbol plug misc plug_00144 --> /main/connectors/TC_KOV
|
||||
symbol plug misc plug_00145 --> /main/connectors/PrintTableName
|
||||
symbol plug misc plug_00146 --> /main/connectors/NUMBER_TY
|
||||
symbol plug misc plug_00147 --> /main/connectors/PrintKindValuePair
|
||||
symbol plug misc plug_00148 --> /main/connectors/rulebook_var_creators
|
||||
symbol plug misc plug_00149 --> /main/connectors/activity_var_creators
|
||||
symbol plug misc plug_00150 --> /main/connectors/KOVIsBlockValue
|
||||
symbol plug misc plug_00151 --> /main/connectors/NUMBER_RULEBOOKS_CREATED
|
||||
symbol plug misc plug_00152 --> /main/connectors/rulebooks_array
|
||||
symbol plug misc plug_00153 --> /main/connectors/DefaultValueOfKOV
|
||||
symbol plug misc plug_00154 --> /main/connectors/RulePrintingRule
|
||||
symbol plug misc plug_00155 --> /main/connectors/MEMORY_HEAP_SIZE
|
||||
symbol plug misc plug_00156 --> /main/connectors/TEXT_TY
|
||||
symbol plug misc plug_00157 --> /main/connectors/NIL_TY
|
||||
symbol plug misc plug_00158 --> /main/connectors/KOVSupportFunction
|
||||
symbol plug misc plug_00159 --> /main/connectors/SNIPPET_TY
|
||||
symbol plug misc plug_00160 --> /main/connectors/TEXT_TY_BufferSize
|
||||
symbol plug misc plug_00161 --> /main/connectors/PrintSnippet
|
||||
symbol plug misc plug_00162 --> /main/connectors/LIST_OF_TY
|
||||
symbol plug misc plug_00163 --> /main/connectors/KOVComparisonFunction
|
||||
symbol plug misc plug_00164 --> /main/connectors/DefArt
|
||||
symbol plug misc plug_00165 --> /main/connectors/IndefArt
|
||||
symbol plug misc plug_00166 --> /main/connectors/LIST_WRITER_INTERNAL_RM
|
||||
symbol plug misc plug_00167 --> /main/connectors/COMBINATION_TY
|
||||
symbol plug misc plug_00168 --> /main/connectors/RELATION_TY
|
||||
symbol plug misc plug_00169 --> /main/connectors/DefaultValueFinder
|
||||
symbol plug misc plug_00170 --> /main/connectors/RELS_TEST
|
||||
symbol plug misc plug_00171 --> /main/connectors/RELS_ASSERT_TRUE
|
||||
symbol plug misc plug_00172 --> /main/connectors/RELS_ASSERT_FALSE
|
||||
symbol plug misc plug_00173 --> /main/connectors/RELS_SHOW
|
||||
symbol plug misc plug_00174 --> /main/connectors/RELS_LOOKUP_ANY
|
||||
symbol plug misc plug_00175 --> /main/connectors/RELS_LOOKUP_ALL_X
|
||||
symbol plug misc plug_00176 --> /main/connectors/RELS_LOOKUP_ALL_Y
|
||||
symbol plug misc plug_00177 --> /main/connectors/RELS_LIST
|
||||
symbol plug misc plug_00178 --> /main/connectors/RELS_EQUIVALENCE
|
||||
symbol plug misc plug_00179 --> /main/connectors/RELS_SYMMETRIC
|
||||
symbol plug misc plug_00180 --> /main/connectors/RELS_X_UNIQUE
|
||||
symbol plug misc plug_00181 --> /main/connectors/RELS_Y_UNIQUE
|
||||
symbol plug misc plug_00182 --> /main/connectors/KOVDomainSize
|
||||
symbol plug misc plug_00183 --> /main/connectors/CDefArt
|
||||
symbol plug misc plug_00184 --> /main/connectors/WriteListOfMarkedObjects
|
||||
symbol plug misc plug_00185 --> /main/connectors/RELS_ROUTE_FIND
|
||||
symbol plug misc plug_00186 --> /main/connectors/RELS_ROUTE_FIND_COUNT
|
||||
symbol plug misc plug_00187 --> /main/connectors/WORD_HIGHBIT
|
||||
symbol plug misc plug_00188 --> /main/connectors/ShowOneExtension
|
||||
symbol plug misc plug_00189 --> /main/connectors/RunTimeProblemShowWM
|
||||
symbol plug misc plug_00190 --> /main/connectors/K0_kind
|
||||
symbol plug misc plug_00119 --> /main/connectors/RELS_SYMMETRIC
|
||||
symbol plug misc plug_00120 --> /main/connectors/RELS_SYMMETRIC
|
||||
symbol plug misc plug_00121 --> /main/connectors/RELS_X_UNIQUE
|
||||
symbol plug misc plug_00122 --> /main/connectors/RELS_Y_UNIQUE
|
||||
symbol plug misc plug_00123 --> /main/connectors/RELS_EQUIVALENCE
|
||||
symbol plug misc plug_00124 --> /main/connectors/RELS_SYMMETRIC
|
||||
symbol plug misc plug_00125 --> /main/connectors/RELS_X_UNIQUE
|
||||
symbol plug misc plug_00126 --> /main/connectors/RELS_Y_UNIQUE
|
||||
symbol plug misc plug_00127 --> /main/connectors/ICOUNT_OBJECT
|
||||
symbol plug misc plug_00128 --> /main/connectors/CONSTANT_PACKED_TEXT_STORAGE
|
||||
symbol plug misc plug_00129 --> /main/connectors/DICT_WORD_SIZE
|
||||
symbol plug misc plug_00130 --> /main/connectors/MEMORY_HEAP_SIZE
|
||||
symbol plug misc plug_00131 --> /main/connectors/TEXT_TY_BufferSize
|
||||
symbol plug misc plug_00132 --> /main/connectors/PrintShortName
|
||||
symbol plug misc plug_00133 --> /main/connectors/OBJECT_TY
|
||||
symbol plug misc plug_00134 --> /main/connectors/say__p
|
||||
symbol plug misc plug_00135 --> /main/connectors/BASE_KIND_HWM
|
||||
symbol plug misc plug_00136 --> /main/connectors/UNKNOWN_TY
|
||||
symbol plug misc plug_00137 --> /main/connectors/CV_MEANING
|
||||
symbol plug misc plug_00138 --> /main/connectors/MEANINGLESS_RR
|
||||
symbol plug misc plug_00139 --> /main/connectors/CV_MODAL
|
||||
symbol plug misc plug_00140 --> /main/connectors/RNG_SEED_AT_START_OF_PLAY
|
||||
symbol plug misc plug_00141 --> /main/connectors/prior_named_list
|
||||
symbol plug misc plug_00142 --> /main/connectors/prior_named_list_gender
|
||||
symbol plug misc plug_00143 --> /main/connectors/prior_named_noun
|
||||
symbol plug misc plug_00144 --> /main/connectors/MAX_POSITIVE_NUMBER
|
||||
symbol plug misc plug_00145 --> /main/connectors/unicode_gestalt_ok
|
||||
symbol plug misc plug_00146 --> /main/connectors/gg_foregroundchan
|
||||
symbol plug misc plug_00147 --> /main/connectors/gg_backgroundchan
|
||||
symbol plug misc plug_00148 --> /main/connectors/KIT_CONFIGURATION_BITMAP
|
||||
symbol plug misc plug_00149 --> /main/connectors/gg_mainwin
|
||||
symbol plug misc plug_00150 --> /main/connectors/gg_statuswin
|
||||
symbol plug misc plug_00151 --> /main/connectors/statuswin_cursize
|
||||
symbol plug misc plug_00152 --> /main/connectors/statuswin_size
|
||||
symbol plug misc plug_00153 --> /main/connectors/gg_quotewin
|
||||
symbol plug misc plug_00154 --> /main/connectors/gg_scriptfref
|
||||
symbol plug misc plug_00155 --> /main/connectors/gg_scriptstr
|
||||
symbol plug misc plug_00156 --> /main/connectors/gg_savestr
|
||||
symbol plug misc plug_00157 --> /main/connectors/gg_commandstr
|
||||
symbol plug misc plug_00158 --> /main/connectors/gg_command_reading
|
||||
symbol plug misc plug_00159 --> /main/connectors/DrawStatusLine
|
||||
symbol plug misc plug_00160 --> /main/connectors/WORDSIZE
|
||||
symbol plug misc plug_00161 --> /main/connectors/DICT_WORD_SIZE
|
||||
symbol plug misc plug_00162 --> /main/connectors/statuswin_current
|
||||
symbol plug misc plug_00163 --> /main/connectors/clr_on
|
||||
symbol plug misc plug_00164 --> /main/connectors/clr_fg
|
||||
symbol plug misc plug_00165 --> /main/connectors/clr_bg
|
||||
symbol plug misc plug_00166 --> /main/connectors/clr_fgstatus
|
||||
symbol plug misc plug_00167 --> /main/connectors/clr_bgstatus
|
||||
symbol plug misc plug_00168 --> /main/connectors/say__pc
|
||||
symbol plug misc plug_00169 --> /main/connectors/say__pc_save
|
||||
symbol plug misc plug_00170 --> /main/connectors/say__n
|
||||
symbol plug misc plug_00171 --> /main/connectors/WORD_NEXTTOHIGHBIT
|
||||
symbol plug misc plug_00172 --> /main/connectors/NO_EXTERNAL_FILES
|
||||
symbol plug misc plug_00173 --> /main/connectors/TableOfExternalFiles
|
||||
symbol plug misc plug_00174 --> /main/connectors/UUID_ARRAY
|
||||
symbol plug misc plug_00175 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00176 --> /main/connectors/I7S_Swap
|
||||
symbol plug misc plug_00177 --> /main/connectors/I7S_Comp
|
||||
symbol plug misc plug_00178 --> /main/connectors/I7S_Tab
|
||||
symbol plug misc plug_00179 --> /main/connectors/I7S_Col
|
||||
symbol plug misc plug_00180 --> /main/connectors/I7S_Dir
|
||||
symbol plug misc plug_00181 --> /main/connectors/TB_Blanks
|
||||
symbol plug misc plug_00182 --> /main/connectors/TC_KOV
|
||||
symbol plug misc plug_00183 --> /main/connectors/PrintTableName
|
||||
symbol plug misc plug_00184 --> /main/connectors/NUMBER_TY
|
||||
symbol plug misc plug_00185 --> /main/connectors/PrintKindValuePair
|
||||
symbol plug misc plug_00186 --> /main/connectors/MStack_Top
|
||||
symbol plug misc plug_00187 --> /main/connectors/MStack_Frame_Extent
|
||||
symbol plug misc plug_00188 --> /main/connectors/rulebook_var_creators
|
||||
symbol plug misc plug_00189 --> /main/connectors/activity_var_creators
|
||||
symbol plug misc plug_00190 --> /main/connectors/KOVIsBlockValue
|
||||
symbol plug misc plug_00191 --> /main/connectors/parameter_object
|
||||
symbol plug misc plug_00192 --> /main/connectors/parameter_value
|
||||
symbol plug misc plug_00193 --> /main/connectors/debugging_rules
|
||||
symbol plug misc plug_00194 --> /main/connectors/process_rulebook_count
|
||||
symbol plug misc plug_00195 --> /main/connectors/NUMBER_RULEBOOKS_CREATED
|
||||
symbol plug misc plug_00196 --> /main/connectors/rulebooks_array
|
||||
symbol plug misc plug_00197 --> /main/connectors/reason_the_action_failed
|
||||
symbol plug misc plug_00198 --> /main/connectors/DefaultValueOfKOV
|
||||
symbol plug misc plug_00199 --> /main/connectors/RulePrintingRule
|
||||
symbol plug misc plug_00200 --> /main/connectors/MEMORY_HEAP_SIZE
|
||||
symbol plug misc plug_00201 --> /main/connectors/TEXT_TY
|
||||
symbol plug misc plug_00202 --> /main/connectors/NIL_TY
|
||||
symbol plug misc plug_00203 --> /main/connectors/KOVSupportFunction
|
||||
symbol plug misc plug_00204 --> /main/connectors/I7SFRAME
|
||||
symbol plug misc plug_00205 --> /main/connectors/SNIPPET_TY
|
||||
symbol plug misc plug_00206 --> /main/connectors/TEXT_TY_BufferSize
|
||||
symbol plug misc plug_00207 --> /main/connectors/RawBufferSize
|
||||
symbol plug misc plug_00208 --> /main/connectors/RawBufferAddress
|
||||
symbol plug misc plug_00209 --> /main/connectors/TEXT_TY_CastPrimitiveNesting
|
||||
symbol plug misc plug_00210 --> /main/connectors/PrintSnippet
|
||||
symbol plug misc plug_00211 --> /main/connectors/say__comp
|
||||
symbol plug misc plug_00212 --> /main/connectors/TEXT_TY_RE_Trace
|
||||
symbol plug misc plug_00213 --> /main/connectors/TEXT_TY_RE_RewindCount
|
||||
symbol plug misc plug_00214 --> /main/connectors/TEXT_TY_RE_Err
|
||||
symbol plug misc plug_00215 --> /main/connectors/LIST_OF_TY
|
||||
symbol plug misc plug_00216 --> /main/connectors/KOVComparisonFunction
|
||||
symbol plug misc plug_00217 --> /main/connectors/DefArt
|
||||
symbol plug misc plug_00218 --> /main/connectors/IndefArt
|
||||
symbol plug misc plug_00219 --> /main/connectors/LIST_WRITER_INTERNAL_RM
|
||||
symbol plug misc plug_00220 --> /main/connectors/LIST_OF_TY_Sort_cf
|
||||
symbol plug misc plug_00221 --> /main/connectors/COMBINATION_TY
|
||||
symbol plug misc plug_00222 --> /main/connectors/RELATION_TY
|
||||
symbol plug misc plug_00223 --> /main/connectors/DefaultValueFinder
|
||||
symbol plug misc plug_00224 --> /main/connectors/RELS_TEST
|
||||
symbol plug misc plug_00225 --> /main/connectors/RELS_ASSERT_TRUE
|
||||
symbol plug misc plug_00226 --> /main/connectors/RELS_ASSERT_FALSE
|
||||
symbol plug misc plug_00227 --> /main/connectors/RELS_SHOW
|
||||
symbol plug misc plug_00228 --> /main/connectors/RELS_LOOKUP_ANY
|
||||
symbol plug misc plug_00229 --> /main/connectors/RELS_LOOKUP_ALL_X
|
||||
symbol plug misc plug_00230 --> /main/connectors/RELS_LOOKUP_ALL_Y
|
||||
symbol plug misc plug_00231 --> /main/connectors/RELS_LIST
|
||||
symbol plug misc plug_00232 --> /main/connectors/RELS_EQUIVALENCE
|
||||
symbol plug misc plug_00233 --> /main/connectors/RELS_SYMMETRIC
|
||||
symbol plug misc plug_00234 --> /main/connectors/RELS_X_UNIQUE
|
||||
symbol plug misc plug_00235 --> /main/connectors/RELS_Y_UNIQUE
|
||||
symbol plug misc plug_00236 --> /main/connectors/KOVDomainSize
|
||||
symbol plug misc plug_00237 --> /main/connectors/CDefArt
|
||||
symbol plug misc plug_00238 --> /main/connectors/WriteListOfMarkedObjects
|
||||
symbol plug misc plug_00239 --> /main/connectors/RELS_ROUTE_FIND
|
||||
symbol plug misc plug_00240 --> /main/connectors/RELS_ROUTE_FIND_COUNT
|
||||
symbol plug misc plug_00241 --> /main/connectors/WORD_HIGHBIT
|
||||
symbol plug misc plug_00242 --> /main/connectors/ShowOneExtension
|
||||
symbol plug misc plug_00243 --> /main/connectors/RunTimeProblemShowWM
|
||||
symbol plug misc plug_00244 --> /main/connectors/K0_kind
|
||||
symbol socket misc Prop_Falsity --> /main/connectors/Prop_Falsity
|
||||
symbol socket misc absent --> /main/connectors/absent
|
||||
symbol socket misc property_id --> /main/connectors/property_id
|
||||
|
@ -40124,36 +40178,36 @@ package main _plain
|
|||
symbol socket misc TEXT_TY_RE_Trace --> /main/connectors/TEXT_TY_RE_Trace
|
||||
symbol socket misc TEXT_TY_RE_RewindCount --> /main/connectors/TEXT_TY_RE_RewindCount
|
||||
symbol socket misc LIST_OF_TY_Sort_cf --> /main/connectors/LIST_OF_TY_Sort_cf
|
||||
symbol plug misc plug_00191 --> /main/connectors/male
|
||||
symbol plug misc plug_00192 --> /main/connectors/neuter
|
||||
symbol plug misc plug_00193 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00194 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00195 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00196 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00197 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00198 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00199 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00200 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00201 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00202 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00203 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00204 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00205 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00206 --> /main/connectors/DEFART_PK
|
||||
symbol plug misc plug_00207 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00208 --> /main/connectors/INDEFART_PK
|
||||
symbol plug misc plug_00209 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00210 --> /main/connectors/INDEFART_PK
|
||||
symbol plug misc plug_00211 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00212 --> /main/connectors/INDEFART_PK
|
||||
symbol plug misc plug_00213 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00214 --> /main/connectors/LIGHTED_PK
|
||||
symbol plug misc plug_00215 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00216 --> /main/connectors/LIGHTED_PK
|
||||
symbol plug misc plug_00217 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00218 --> /main/connectors/UNLIGHTED_PK
|
||||
symbol plug misc plug_00219 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00220 --> /main/connectors/PrintShortName
|
||||
symbol plug misc plug_00245 --> /main/connectors/male
|
||||
symbol plug misc plug_00246 --> /main/connectors/neuter
|
||||
symbol plug misc plug_00247 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00248 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00249 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00250 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00251 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00252 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00253 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00254 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00255 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00256 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00257 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00258 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00259 --> /main/connectors/POSSESS_PK
|
||||
symbol plug misc plug_00260 --> /main/connectors/DEFART_PK
|
||||
symbol plug misc plug_00261 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00262 --> /main/connectors/INDEFART_PK
|
||||
symbol plug misc plug_00263 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00264 --> /main/connectors/INDEFART_PK
|
||||
symbol plug misc plug_00265 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00266 --> /main/connectors/INDEFART_PK
|
||||
symbol plug misc plug_00267 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00268 --> /main/connectors/LIGHTED_PK
|
||||
symbol plug misc plug_00269 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00270 --> /main/connectors/LIGHTED_PK
|
||||
symbol plug misc plug_00271 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00272 --> /main/connectors/UNLIGHTED_PK
|
||||
symbol plug misc plug_00273 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00274 --> /main/connectors/PrintShortName
|
||||
symbol socket misc LanguageTimeOfDay --> /main/connectors/LanguageTimeOfDay
|
||||
symbol socket misc LanguageDirection --> /main/connectors/LanguageDirection
|
||||
symbol socket misc LanguageToInformese --> /main/connectors/LanguageToInformese
|
||||
|
@ -40216,67 +40270,72 @@ package main _plain
|
|||
symbol socket misc LanguageContractionForms --> /main/connectors/LanguageContractionForms
|
||||
symbol socket misc LanguageArticles --> /main/connectors/LanguageArticles
|
||||
symbol socket misc LanguageGNAsToArticles --> /main/connectors/LanguageGNAsToArticles
|
||||
symbol plug misc plug_00221 --> /main/connectors/OBJECT_TY
|
||||
symbol plug misc plug_00222 --> /main/connectors/workflag2
|
||||
symbol plug misc plug_00223 --> /main/connectors/VM_Initialise
|
||||
symbol plug misc plug_00224 --> /main/connectors/SEED_RANDOM_NUMBER_GENERATOR_R
|
||||
symbol plug misc plug_00225 --> /main/connectors/Submain
|
||||
symbol plug misc plug_00226 --> /main/connectors/VM_PreInitialise
|
||||
symbol plug misc plug_00227 --> /main/connectors/HeapInitialise
|
||||
symbol plug misc plug_00228 --> /main/connectors/StackFramingInitialise
|
||||
symbol plug misc plug_00229 --> /main/connectors/CreateDynamicRelations
|
||||
symbol plug misc plug_00230 --> /main/connectors/VM_PrintToBuffer
|
||||
symbol plug misc plug_00231 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00232 --> /main/connectors/RunTimeError
|
||||
symbol plug misc plug_00233 --> /main/connectors/WORDSIZE
|
||||
symbol plug misc plug_00234 --> /main/connectors/VM_LowerToUpperCase
|
||||
symbol plug misc plug_00235 --> /main/connectors/say__p
|
||||
symbol plug misc plug_00236 --> /main/connectors/RegardingSingleObject
|
||||
symbol plug misc plug_00237 --> /main/connectors/PRINTING_THE_NAME_ACT
|
||||
symbol plug misc plug_00238 --> /main/connectors/indef_mode
|
||||
symbol plug misc plug_00239 --> /main/connectors/parameter_value
|
||||
symbol plug misc plug_00240 --> /main/connectors/short_name_indef
|
||||
symbol plug misc plug_00241 --> /main/connectors/PrintOrRun
|
||||
symbol plug misc plug_00242 --> /main/connectors/cap_short_name
|
||||
symbol plug misc plug_00243 --> /main/connectors/short_name
|
||||
symbol plug misc plug_00244 --> /main/connectors/plural
|
||||
symbol plug misc plug_00245 --> /main/connectors/articles
|
||||
symbol plug misc plug_00246 --> /main/connectors/LanguageCases
|
||||
symbol plug misc plug_00247 --> /main/connectors/LanguageGNAsToArticles
|
||||
symbol plug misc plug_00248 --> /main/connectors/LanguageArticles
|
||||
symbol plug misc plug_00249 --> /main/connectors/LanguageContractionForms
|
||||
symbol plug misc plug_00250 --> /main/connectors/Glulx_PrintAnyToArray
|
||||
symbol plug misc plug_00251 --> /main/connectors/EnglishNumber
|
||||
symbol plug misc plug_00252 --> /main/connectors/LanguageContraction
|
||||
symbol plug misc plug_00253 --> /main/connectors/proper
|
||||
symbol plug misc plug_00254 --> /main/connectors/article
|
||||
symbol plug misc plug_00255 --> /main/connectors/TEXT_TY_Compare
|
||||
symbol plug misc plug_00256 --> /main/connectors/EMPTY_TEXT_VALUE
|
||||
symbol plug misc plug_00257 --> /main/connectors/TEXT_TY_Say_Capitalised
|
||||
symbol plug misc plug_00258 --> /main/connectors/LanguageAnimateGender
|
||||
symbol plug misc plug_00259 --> /main/connectors/LanguageInanimateGender
|
||||
symbol plug misc plug_00260 --> /main/connectors/pluralname
|
||||
symbol plug misc plug_00261 --> /main/connectors/prior_named_noun
|
||||
symbol plug misc plug_00262 --> /main/connectors/prior_named_list
|
||||
symbol plug misc plug_00263 --> /main/connectors/PRINTING_THE_PLURAL_NAME_ACT
|
||||
symbol plug misc plug_00264 --> /main/connectors/PRINTING_ROOM_DESC_DETAILS_ACT
|
||||
symbol plug misc plug_00265 --> /main/connectors/PRINTING_INVENTORY_DETAILS_ACT
|
||||
symbol plug misc plug_00266 --> /main/connectors/LISTING_CONTENTS_ACT
|
||||
symbol plug misc plug_00267 --> /main/connectors/GROUPING_TOGETHER_ACT
|
||||
symbol plug misc plug_00268 --> /main/connectors/PRINTING_RESPONSE_ACT
|
||||
symbol plug misc plug_00269 --> /main/connectors/debug_rules
|
||||
symbol plug misc plug_00270 --> /main/connectors/Activity_before_rulebooks
|
||||
symbol plug misc plug_00271 --> /main/connectors/rulebooks_array
|
||||
symbol plug misc plug_00272 --> /main/connectors/EMPTY_RULEBOOK
|
||||
symbol plug misc plug_00273 --> /main/connectors/Activity_for_rulebooks
|
||||
symbol plug misc plug_00274 --> /main/connectors/Activity_after_rulebooks
|
||||
symbol plug misc plug_00275 --> /main/connectors/FollowRulebook
|
||||
symbol plug misc plug_00276 --> /main/connectors/RunTimeProblem
|
||||
symbol plug misc plug_00277 --> /main/connectors/RTP_TOOMANYACTS
|
||||
symbol plug misc plug_00278 --> /main/connectors/MStack_CreateAVVars
|
||||
symbol plug misc plug_00279 --> /main/connectors/MStack_DestroyAVVars
|
||||
symbol plug misc plug_00280 --> /main/connectors/RTP_CANTABANDON
|
||||
symbol plug misc plug_00281 --> /main/connectors/RTP_CANTEND
|
||||
symbol plug misc plug_00275 --> /main/connectors/OBJECT_TY
|
||||
symbol plug misc plug_00276 --> /main/connectors/workflag2
|
||||
symbol plug misc plug_00277 --> /main/connectors/VM_Initialise
|
||||
symbol plug misc plug_00278 --> /main/connectors/SEED_RANDOM_NUMBER_GENERATOR_R
|
||||
symbol plug misc plug_00279 --> /main/connectors/Submain
|
||||
symbol plug misc plug_00280 --> /main/connectors/VM_PreInitialise
|
||||
symbol plug misc plug_00281 --> /main/connectors/HeapInitialise
|
||||
symbol plug misc plug_00282 --> /main/connectors/StackFramingInitialise
|
||||
symbol plug misc plug_00283 --> /main/connectors/CreateDynamicRelations
|
||||
symbol plug misc plug_00284 --> /main/connectors/VM_PrintToBuffer
|
||||
symbol plug misc plug_00285 --> /main/connectors/NULL
|
||||
symbol plug misc plug_00286 --> /main/connectors/RunTimeError
|
||||
symbol plug misc plug_00287 --> /main/connectors/WORDSIZE
|
||||
symbol plug misc plug_00288 --> /main/connectors/VM_LowerToUpperCase
|
||||
symbol plug misc plug_00289 --> /main/connectors/say__p
|
||||
symbol plug misc plug_00290 --> /main/connectors/RegardingSingleObject
|
||||
symbol plug misc plug_00291 --> /main/connectors/PRINTING_THE_NAME_ACT
|
||||
symbol plug misc plug_00292 --> /main/connectors/indef_mode
|
||||
symbol plug misc plug_00293 --> /main/connectors/parameter_value
|
||||
symbol plug misc plug_00294 --> /main/connectors/short_name_indef
|
||||
symbol plug misc plug_00295 --> /main/connectors/PrintOrRun
|
||||
symbol plug misc plug_00296 --> /main/connectors/caps_mode
|
||||
symbol plug misc plug_00297 --> /main/connectors/cap_short_name
|
||||
symbol plug misc plug_00298 --> /main/connectors/short_name
|
||||
symbol plug misc plug_00299 --> /main/connectors/plural
|
||||
symbol plug misc plug_00300 --> /main/connectors/articles
|
||||
symbol plug misc plug_00301 --> /main/connectors/short_name_case
|
||||
symbol plug misc plug_00302 --> /main/connectors/LanguageCases
|
||||
symbol plug misc plug_00303 --> /main/connectors/LanguageGNAsToArticles
|
||||
symbol plug misc plug_00304 --> /main/connectors/LanguageArticles
|
||||
symbol plug misc plug_00305 --> /main/connectors/LanguageContractionForms
|
||||
symbol plug misc plug_00306 --> /main/connectors/Glulx_PrintAnyToArray
|
||||
symbol plug misc plug_00307 --> /main/connectors/EnglishNumber
|
||||
symbol plug misc plug_00308 --> /main/connectors/LanguageContraction
|
||||
symbol plug misc plug_00309 --> /main/connectors/proper
|
||||
symbol plug misc plug_00310 --> /main/connectors/article
|
||||
symbol plug misc plug_00311 --> /main/connectors/TEXT_TY_Compare
|
||||
symbol plug misc plug_00312 --> /main/connectors/EMPTY_TEXT_VALUE
|
||||
symbol plug misc plug_00313 --> /main/connectors/TEXT_TY_Say_Capitalised
|
||||
symbol plug misc plug_00314 --> /main/connectors/LanguageAnimateGender
|
||||
symbol plug misc plug_00315 --> /main/connectors/LanguageInanimateGender
|
||||
symbol plug misc plug_00316 --> /main/connectors/pluralname
|
||||
symbol plug misc plug_00317 --> /main/connectors/prior_named_noun
|
||||
symbol plug misc plug_00318 --> /main/connectors/prior_named_list
|
||||
symbol plug misc plug_00319 --> /main/connectors/activities_sp
|
||||
symbol plug misc plug_00320 --> /main/connectors/PRINTING_THE_PLURAL_NAME_ACT
|
||||
symbol plug misc plug_00321 --> /main/connectors/PRINTING_ROOM_DESC_DETAILS_ACT
|
||||
symbol plug misc plug_00322 --> /main/connectors/PRINTING_INVENTORY_DETAILS_ACT
|
||||
symbol plug misc plug_00323 --> /main/connectors/LISTING_CONTENTS_ACT
|
||||
symbol plug misc plug_00324 --> /main/connectors/GROUPING_TOGETHER_ACT
|
||||
symbol plug misc plug_00325 --> /main/connectors/PRINTING_RESPONSE_ACT
|
||||
symbol plug misc plug_00326 --> /main/connectors/inhibit_flag
|
||||
symbol plug misc plug_00327 --> /main/connectors/saved_debug_rules
|
||||
symbol plug misc plug_00328 --> /main/connectors/debug_rules
|
||||
symbol plug misc plug_00329 --> /main/connectors/Activity_before_rulebooks
|
||||
symbol plug misc plug_00330 --> /main/connectors/rulebooks_array
|
||||
symbol plug misc plug_00331 --> /main/connectors/EMPTY_RULEBOOK
|
||||
symbol plug misc plug_00332 --> /main/connectors/Activity_for_rulebooks
|
||||
symbol plug misc plug_00333 --> /main/connectors/Activity_after_rulebooks
|
||||
symbol plug misc plug_00334 --> /main/connectors/FollowRulebook
|
||||
symbol plug misc plug_00335 --> /main/connectors/RunTimeProblem
|
||||
symbol plug misc plug_00336 --> /main/connectors/RTP_TOOMANYACTS
|
||||
symbol plug misc plug_00337 --> /main/connectors/MStack_CreateAVVars
|
||||
symbol plug misc plug_00338 --> /main/connectors/MStack_DestroyAVVars
|
||||
symbol plug misc plug_00339 --> /main/connectors/RTP_CANTABANDON
|
||||
symbol plug misc plug_00340 --> /main/connectors/RTP_CANTEND
|
||||
symbol socket misc DefaultTopic --> /main/connectors/DefaultTopic
|
||||
symbol socket misc PrintSnippet --> /main/connectors/PrintSnippet
|
||||
symbol socket misc LIST_WRITER_INTERNAL_RM --> /main/connectors/LIST_WRITER_INTERNAL_RM
|
||||
|
@ -40319,9 +40378,9 @@ package main _plain
|
|||
symbol socket misc activities_sp --> /main/connectors/activities_sp
|
||||
symbol socket misc inhibit_flag --> /main/connectors/inhibit_flag
|
||||
symbol socket misc saved_debug_rules --> /main/connectors/saved_debug_rules
|
||||
symbol plug misc plug_00282 --> /main/connectors/KindAtomic
|
||||
symbol plug misc plug_00283 --> /main/connectors/BlkValueError
|
||||
symbol plug misc plug_00284 --> /main/connectors/TheEmptyTable
|
||||
symbol plug misc plug_00341 --> /main/connectors/KindAtomic
|
||||
symbol plug misc plug_00342 --> /main/connectors/BlkValueError
|
||||
symbol plug misc plug_00343 --> /main/connectors/TheEmptyTable
|
||||
package template _plain
|
||||
package constants _submodule
|
||||
package DynamicMemoryAllocation_con _plain
|
||||
|
|
|
@ -9,7 +9,7 @@ The following will be set at the command line.
|
|||
=
|
||||
pathname *path_to_inter = NULL;
|
||||
|
||||
pathname *kit_to_assimilate = NULL;
|
||||
pathname *kit_to_build = NULL;
|
||||
pathname *domain_path = NULL;
|
||||
linked_list *inter_file_list = NULL; /* of |filename| */
|
||||
filename *output_textually = NULL;
|
||||
|
@ -33,9 +33,9 @@ void Main::add_pipeline_variable_from_filename(text_stream *name, filename *F) {
|
|||
When Inter is called at the command line, it begins at |main|, like all C
|
||||
programs.
|
||||
|
||||
Inter can do three different things: assimilate a kit, run a pipeline of
|
||||
Inter can do three different things: build a kit, run a pipeline of
|
||||
code generation stages, and verify/transcode files of Inter code. In fact,
|
||||
though, that's really only two different things, because assimilation is
|
||||
though, that's really only two different things, because kit-building is
|
||||
also done with a pipeline.
|
||||
|
||||
=
|
||||
|
@ -43,7 +43,7 @@ int main(int argc, char **argv) {
|
|||
@<Start up the modules@>;
|
||||
@<Begin with an empty file list and variables dictionary@>;
|
||||
@<Read the command line@>;
|
||||
if (kit_to_assimilate) @<Set up a pipeline for assimilation@>;
|
||||
if (kit_to_build) @<Set up a pipeline for kit-building@>;
|
||||
if ((pipeline_as_file) || (pipeline_as_text))
|
||||
@<Run the pipeline@>
|
||||
else
|
||||
|
@ -72,20 +72,20 @@ it only ever writes the binary form of the code it produces, so only |*out|
|
|||
is used. But at times in the past it has been useful to debug with the text
|
||||
form, which would be written to |*outt|.
|
||||
|
||||
@<Set up a pipeline for assimilation@> =
|
||||
@<Set up a pipeline for kit-building@> =
|
||||
inter_architecture *A = PipelineModule::get_architecture();
|
||||
if (A == NULL) Errors::fatal("no -architecture given");
|
||||
|
||||
pathname *path_to_pipelines = Pathnames::down(path_to_inter, I"Pipelines");
|
||||
pipeline_as_file = Filenames::in(path_to_pipelines, I"assimilate.interpipeline");
|
||||
pipeline_as_file = Filenames::in(path_to_pipelines, I"build-kit.interpipeline");
|
||||
pipeline_as_text = NULL;
|
||||
|
||||
Main::add_pipeline_variable(I"*kit",
|
||||
Pathnames::directory_name(kit_to_assimilate));
|
||||
Pathnames::directory_name(kit_to_build));
|
||||
Main::add_pipeline_variable_from_filename(I"*out",
|
||||
Architectures::canonical_binary(kit_to_assimilate, A));
|
||||
Architectures::canonical_binary(kit_to_build, A));
|
||||
Main::add_pipeline_variable_from_filename(I"*outt",
|
||||
Architectures::canonical_textual(kit_to_assimilate, A));
|
||||
Architectures::canonical_textual(kit_to_build, A));
|
||||
|
||||
@<Run the pipeline@> =
|
||||
if (LinkedLists::len(inter_file_list) > 0)
|
||||
|
@ -93,7 +93,7 @@ form, which would be written to |*outt|.
|
|||
if ((pipeline_as_file) && (pipeline_as_text))
|
||||
Errors::fatal("-pipeline-text and -pipeline-file are mutually exclusive");
|
||||
linked_list *inter_paths = NEW_LINKED_LIST(pathname);
|
||||
if (kit_to_assimilate) ADD_TO_LINKED_LIST(kit_to_assimilate, pathname, inter_paths);
|
||||
if (kit_to_build) ADD_TO_LINKED_LIST(kit_to_build, pathname, inter_paths);
|
||||
inter_pipeline *SS;
|
||||
if (pipeline_as_file)
|
||||
SS = ParsingPipelines::from_file(pipeline_as_file, pipeline_vars, NULL);
|
||||
|
@ -142,7 +142,7 @@ form, which would be written to |*outt|.
|
|||
@e PIPELINE_VARIABLE_CLSW
|
||||
@e DOMAIN_CLSW
|
||||
@e ARCHITECTURE_CLSW
|
||||
@e ASSIMILATE_CLSW
|
||||
@e BUILD_KIT_CLSW
|
||||
@e INTERNAL_CLSW
|
||||
|
||||
@<Read the command line@> =
|
||||
|
@ -166,8 +166,8 @@ form, which would be written to |*outt|.
|
|||
L"specify folder of internal Inform resources");
|
||||
CommandLine::declare_switch(ARCHITECTURE_CLSW, L"architecture", 2,
|
||||
L"generate Inter with architecture X");
|
||||
CommandLine::declare_switch(ASSIMILATE_CLSW, L"assimilate", 2,
|
||||
L"assimilate (i.e., build) Inter kit X for the current architecture");
|
||||
CommandLine::declare_switch(BUILD_KIT_CLSW, L"build-kit", 2,
|
||||
L"build Inter kit X for the current architecture");
|
||||
|
||||
CommandLine::read(argc, argv, NULL, &Main::respond, &Main::add_file);
|
||||
|
||||
|
@ -182,7 +182,7 @@ void Main::respond(int id, int val, text_stream *arg, void *state) {
|
|||
case PIPELINE_FILE_CLSW: pipeline_as_file = Filenames::from_text(arg); break;
|
||||
case PIPELINE_VARIABLE_CLSW: @<Add a pipeline variable to the dictionary@>; break;
|
||||
case DOMAIN_CLSW: domain_path = Pathnames::from_text(arg); break;
|
||||
case ASSIMILATE_CLSW: kit_to_assimilate = Pathnames::from_text(arg); break;
|
||||
case BUILD_KIT_CLSW: kit_to_build = Pathnames::from_text(arg); break;
|
||||
case INTERNAL_CLSW: internal_path = Pathnames::from_text(arg); break;
|
||||
case ARCHITECTURE_CLSW:
|
||||
if (PipelineModule::set_architecture(arg) == FALSE)
|
||||
|
|
|
@ -83,18 +83,18 @@ and therefore assimilation is really a cross-compilation from I6 to Inter.
|
|||
|
||||
Kits are like so-called "fat binaries", in that they contain binary Inter
|
||||
for each different architecture with which they are compatible. Inter can
|
||||
assimilate for only one architecture at a time, so a command must specify
|
||||
build kits for only one architecture at a time, so a command must specify
|
||||
which is wanted. For example:
|
||||
= (text as ConsoleText)
|
||||
$ inter/Tangled/inter -architecture 16 -assimilate K
|
||||
$ inter/Tangled/inter -architecture 32d -assimilate K
|
||||
$ inter/Tangled/inter -architecture 16 -build-kit K
|
||||
$ inter/Tangled/inter -architecture 32d -build-kit K
|
||||
=
|
||||
Incrementally assimilating kits as needed could be done with something like
|
||||
Incrementally building kits as needed could be done with something like
|
||||
the Unix tool |make|, but in fact Inbuild has this ability: the command
|
||||
= (text as ConsoleText)
|
||||
$ inbuild/Tangled/inbuild -build K
|
||||
=
|
||||
looks at the kit, works out which architectures need re-assimilation, and
|
||||
looks at the kit, works out which architectures need rebuilding, and
|
||||
then issues commands like the above to instruct |inter| to do so. Indeed,
|
||||
multiple kits can be managed with a single command:
|
||||
= (text as ConsoleText)
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
new
|
||||
parse-kit <- *kit
|
||||
parse-insertions
|
||||
parse-linked-matter
|
||||
resolve-conditional-compilation
|
||||
assimilate
|
||||
resolve-external-symbols
|
||||
detect-indirect-calls
|
||||
generate binary -> *out
|
||||
|
|
4
inter/Pipelines/build-kit.interpipeline
Normal file
4
inter/Pipelines/build-kit.interpipeline
Normal file
|
@ -0,0 +1,4 @@
|
|||
new
|
||||
load-kit-source <- *kit
|
||||
run pipeline assimilate
|
||||
generate binary -> *out
|
|
@ -29,7 +29,7 @@ void CAssembly::end(code_generation *gen) {
|
|||
@ Inter is for the most part fully specified and cross-platform, but assembly
|
||||
language is the big hole in that. It is legal for Inter code to contain almost
|
||||
anything which purports to be assembly language. For example, the following
|
||||
code will successfully assimilate as part of an Inter kit:
|
||||
code will successfully build as part of an Inter kit:
|
||||
= (text as Inform 6)
|
||||
[ Peculiar x;
|
||||
@bandersnatch x;
|
||||
|
|
|
@ -15,6 +15,7 @@ typedef struct inter_pipeline {
|
|||
struct pipeline_ephemera ephemera; /* temporary storage when running */
|
||||
struct linked_list *search_list; /* used when parsing only */
|
||||
struct pathname *local;
|
||||
int run_depth;
|
||||
CLASS_DEFINITION
|
||||
} inter_pipeline;
|
||||
|
||||
|
@ -25,6 +26,7 @@ inter_pipeline *ParsingPipelines::new_pipeline(dictionary *D, linked_list *L, pa
|
|||
S->erroneous = FALSE;
|
||||
S->search_list = L;
|
||||
S->local = local;
|
||||
S->run_depth = 0;
|
||||
RunningPipelines::clean_pipeline(S);
|
||||
return S;
|
||||
}
|
||||
|
@ -158,7 +160,10 @@ void ParsingPipelines::parse_line(inter_pipeline *pipeline, text_stream *instruc
|
|||
DISCARD_TEXT(T)
|
||||
}
|
||||
|
||||
@ Instructions are mostly steps, but...
|
||||
@ Instructions are mostly steps, but:
|
||||
|
||||
(a) A line beginning with an |!| is a comment,
|
||||
(b) |run pipeline X| means to incorporate pipeline |X| here.
|
||||
|
||||
=
|
||||
void ParsingPipelines::parse_instruction(inter_pipeline *pipeline, text_stream *T,
|
||||
|
@ -167,19 +172,30 @@ void ParsingPipelines::parse_instruction(inter_pipeline *pipeline, text_stream *
|
|||
if (Regexp::match(&mr, T, L"!%c*")) {
|
||||
;
|
||||
} else if (Regexp::match(&mr, T, L"run pipeline (%c*)")) {
|
||||
filename *F = NULL;
|
||||
#ifdef SUPERVISOR_MODULE
|
||||
filename *F = InterSkill::filename_of_pipeline(mr.exp[0], pipeline->search_list);
|
||||
#endif
|
||||
#ifndef SUPERVISOR_MODULE
|
||||
filename *F = Filenames::in(pipeline->local, mr.exp[0]);
|
||||
F = InterSkill::filename_of_pipeline(mr.exp[0], pipeline->search_list);
|
||||
#endif
|
||||
if (F == NULL) {
|
||||
text_stream *leafname = Str::new();
|
||||
WRITE_TO(leafname, "%S.interpipeline", mr.exp[0]);
|
||||
F = Filenames::in(pipeline->local, leafname);
|
||||
}
|
||||
if (F == NULL) {
|
||||
PipelineErrors::syntax_with(tfp, T,
|
||||
"unable to find the pipeline '%S'", mr.exp[0]);
|
||||
pipeline->erroneous = TRUE;
|
||||
} else
|
||||
TextFiles::read(F, FALSE, "can't open inter pipeline file",
|
||||
TRUE, ParsingPipelines::scan_line, NULL, (void *) pipeline);
|
||||
} else {
|
||||
if (pipeline->run_depth++ > 100) {
|
||||
PipelineErrors::syntax_with(tfp, T,
|
||||
"pipeline seems to have become circular: '%S'", mr.exp[0]);
|
||||
pipeline->erroneous = TRUE;
|
||||
} else {
|
||||
TextFiles::read(F, FALSE, "can't open inter pipeline file",
|
||||
TRUE, ParsingPipelines::scan_line, NULL, (void *) pipeline);
|
||||
}
|
||||
pipeline->run_depth--;
|
||||
}
|
||||
} else {
|
||||
pipeline_step *ST = ParsingPipelines::parse_step(pipeline, T, tfp);
|
||||
if (ST) ADD_TO_LINKED_LIST(ST, pipeline_step, pipeline->steps);
|
||||
|
|
|
@ -8,11 +8,11 @@ source code for a kit.
|
|||
|
||||
=
|
||||
void ParsingStages::create_pipeline_stage(void) {
|
||||
ParsingPipelines::new_stage(I"parse-kit", ParsingStages::run_parse_kit, TEMPLATE_FILE_STAGE_ARG, TRUE);
|
||||
ParsingPipelines::new_stage(I"load-kit-source", ParsingStages::run_load_kit_source, TEMPLATE_FILE_STAGE_ARG, TRUE);
|
||||
ParsingPipelines::new_stage(I"parse-insertions", ParsingStages::run_parse_insertions, NO_STAGE_ARG, FALSE);
|
||||
}
|
||||
|
||||
int ParsingStages::run_parse_kit(pipeline_step *step) {
|
||||
int ParsingStages::run_load_kit_source(pipeline_step *step) {
|
||||
inter_package *main_package = Site::main_package_if_it_exists(step->ephemera.repository);
|
||||
inter_bookmark IBM;
|
||||
if (main_package) {
|
||||
|
|
|
@ -42,8 +42,7 @@ void Architectures::create(void) {
|
|||
}
|
||||
|
||||
@h Canonical filenames.
|
||||
When a kit is assimilated, its Inter code is stored in files with these
|
||||
leafnames:
|
||||
When a kit is built, its Inter code is stored in files with these leafnames:
|
||||
|
||||
=
|
||||
filename *Architectures::canonical_binary(pathname *P, inter_architecture *A) {
|
||||
|
|
Loading…
Reference in a new issue