force use of pandoc version >= 3.1.12.2

The `bin/pandoc-wrapper.sh` tool will verify that the ssytem
has a recent enough version of `pandoc(1)`.

We explain why we insist on `pandoc(1)`. version >= 3.1.12.2
in comments where the $PANDOC_MIN_VERSION is set.

Added `--wrap=preserve` as a default argument to `pandoc(1)`.
While this change will impact every HTML file generated,
we believe this will improve the ability of someone to look
at the generated HTML and correlate with the original markdown.

Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17"
to "1.4.3 2024-03-18".

Performed `make www` to achieve all of the above and to generate
HTML using the new  `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
Landon Curt Noll committed 2024-03-18 01:26:39 -07:00
1 parent 9eb7a54e9f
commit b0b212acb1
402 files changed
+37061 -55132

No files matched your search

+54 -115
View File
@@ -130,8 +130,8 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Dominik_Muth">Dominik Muth</a><br>
Location: <a href="../../location.html#DE">DE</a> - <em>Federal Republic
of Germany</em> (<em>Germany</em>) <br><br></li>
Location: <a href="../../location.html#DE">DE</a> - <em>Federal Republic of Germany</em> (<em>Germany</em>)
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -146,66 +146,54 @@ of Germany</em> (<em>Germany</em>) <br><br></li>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This is something we were fearing all along: that the C preprocessor
is Turing-complete even without conditionals and recursive file
inclusion as some kind of a <a
href="https://en.wikipedia.org/wiki/Rewriting">rewriting system</a>. Now
we have the proof!</p>
<p>This is something we were fearing all along: that the C preprocessor is Turing-complete
even without conditionals and recursive file inclusion as some kind of a
<a href="https://en.wikipedia.org/wiki/Rewriting">rewriting system</a>. Now we have the proof!</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="preprocessor-turing-engine">Preprocessor Turing Engine</h3>
<h3 id="features">Features</h3>
<ul>
<li>Turing machine runs in preprocessor</li>
<li>universal (unlimited configurable states, symbols, and tape)</li>
<li>no <code>#if</code>s or other conditional directives, only
<code>#define</code>s</li>
<li>no <code>#if</code>s or other conditional directives, only <code>#define</code>s</li>
<li>no recursive <code>#include</code></li>
<li>single compiler run (no repeated preprocessing)</li>
<li>no variadic macros</li>
<li>verbosity levels:
<ul>
<li><code>V=0</code> (default) only prints the final tape</li>
<li><code>V=1</code> additionally prints one tilde character per machine
step (slow)</li>
<li><code>V=2</code> additionally prints details on each machine step
(slow; generates large files)</li>
<li><code>V=1</code> additionally prints one tilde character per machine step (slow)</li>
<li><code>V=2</code> additionally prints details on each machine step (slow; generates large files)</li>
</ul></li>
<li>make target <code>run</code> runs <code>./prog</code> and filters a
little statistics out of the verbose output</li>
<li><code>X</code> (defaults to 3) sets the maximum number of steps:
<em>M</em>(<code>X</code>) ~ 8<sup><code>X</code></sup></li>
<li>make target <code>run</code> runs <code>./prog</code> and filters a little statistics out of the verbose output</li>
<li><code>X</code> (defaults to 3) sets the maximum number of steps: <em>M</em>(<code>X</code>) ~ 8<sup><code>X</code></sup></li>
</ul>
<h3 id="limitations">Limitations</h3>
<p>If the machine does not halt after <em>M</em>(<code>X</code>) steps,
you will see unexpanded macros in the output.</p>
<p>If the machine does not halt after <em>M</em>(<code>X</code>) steps, you will see unexpanded
macros in the output.</p>
<h3 id="compiler-warnings">Compiler warnings</h3>
<p>If <code>V=1</code> or <code>V=2</code> is used, you may see
“<code>warning: string length is greater than the length '4095' ISO C99 compilers are required to support</code>”.</p>
<p>If <code>V=1</code> or <code>V=2</code> is used, you may see “<code>warning: string length is greater than the length '4095' ISO C99 compilers are required to support</code>”.</p>
<h3 id="programming">Programming</h3>
<p>Implementing your own Turing machine is easy. Take a look at the
supplied header files for examples.</p>
<p>Implementing your own Turing machine is easy. Take a look at the supplied header
files for examples.</p>
<h4 id="tape-symbols">Tape Symbols</h4>
<p>Every symbol used (except <code>_</code>) must be explicitly declared
using</p>
<p>Every symbol used (except <code>_</code>) must be explicitly declared using</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#define sym_SYMBOL</span><span class="op">(</span><span class="pp">sym</span><span class="op">,</span><span class="pp"> _SYMBOL</span><span class="op">)</span><span class="pp"> sym</span></span></code></pre></div>
<p>Example:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#define sym_1</span><span class="op">(</span><span class="pp">sym</span><span class="op">,</span><span class="pp"> _1</span><span class="op">)</span><span class="pp"> sym</span></span></code></pre></div>
<h4 id="tape">Tape</h4>
<p>The initial content of the tape must be defined in the tape header
using a triple like:</p>
<p>The initial content of the tape must be defined in the tape header using a
triple like:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#define tape </span><span class="op">((((,),...</span><span class="pp">l2</span><span class="op">),</span><span class="pp"> l1</span><span class="op">),</span><span class="pp"> c</span><span class="op">,</span><span class="pp"> </span><span class="op">(</span><span class="pp">r1</span><span class="op">,</span><span class="pp"> </span><span class="op">(</span><span class="pp">r2</span><span class="op">...,</span><span class="pp"> </span><span class="op">(,))))</span></span></code></pre></div>
<ul>
<li><code>l1</code>, <code>l2</code>, … are the symbols to the left</li>
<li><code>c</code> is the symbol at the current position</li>
<li><code>r1</code>, <code>r2</code>, … are the symbols to the
right</li>
<li><code>r1</code>, <code>r2</code>, … are the symbols to the right</li>
</ul>
<p>The empty pairs <code>(,)</code> represent the continuations of the
tape, filled with underscore symbols (<code>_</code>). They are expanded
on demand.</p>
<p>The empty pairs <code>(,)</code> represent the continuations of the tape, filled with
underscore symbols (<code>_</code>). They are expanded on demand.</p>
<h4 id="state-machine">State Machine</h4>
<p>All transitions are defined in the machine header using the
syntax</p>
<p>All transitions are defined in the machine header using the syntax</p>
<pre><code>#define CURRENT_SCANNED (WRITE, MOVEMENT, NEXT)</code></pre>
<p>where</p>
<ul>
@@ -213,106 +201,57 @@ syntax</p>
<li><code>SCANNED</code> is the symbol at the current position.</li>
<li>The whitespace before the parentheses is significant.</li>
<li><code>WRITE</code> is the symbol to be written to the tape.</li>
<li><code>MOVEMENT</code> is <code>L</code> for left, <code>R</code> for
right; don’t specify anything if you want no movement.</li>
<li><code>MOVEMENT</code> is <code>L</code> for left, <code>R</code> for right; don’t specify anything if you
want no movement.</li>
<li><code>NEXT</code> is the next state.</li>
</ul>
<p>There must be a state <code>A</code> defined, which becomes the
initial state of the machine.</p>
<p>There must be a state <code>A</code> defined, which becomes the initial state of the
machine.</p>
<p>To halt the machine, use the keyword <code>break</code> as in</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#define A_1 </span><span class="op">(</span><span class="dv">2</span><span class="op">,</span><span class="pp"> </span><span class="cf">break</span><span class="op">)</span></span></code></pre></div>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-2015muth"><a name="inventory"></a>Inventory for
2015/muth</h1>
<h1 id="inventory-for-2015muth"><a name="inventory"></a>Inventory for 2015/muth</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/prog.c">prog.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/prog.orig.c">prog.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/try.sh">try.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_beaver_4_2.h">machine_beaver_4_2.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_champ_2_4.h">machine_champ_2_4.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_chaos_5_2.h">machine_chaos_5_2.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_cmplx_5_2.h">machine_cmplx_5_2.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_count_5_2.h">machine_count_5_2.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_gcd.h">machine_gcd.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_great_3_2.h">machine_great_3_2.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_ioccc.h">machine_ioccc.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_nop.h">machine_nop.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_ru_2_4.h">machine_ru_2_4.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_times2.h">machine_times2.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_15_50.h">tape_15_50.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_77_55.h">tape_77_55.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_empty.h">tape_empty.h</a>
- cpp macros</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_five.h">tape_five.h</a>
- cpp macros</li>
<li><a href="2015_muth.tar.bz2">2015_muth.tar.bz2</a> - download entry
source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/prog.c">prog.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/try.sh">try.sh</a> - how to run</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_beaver_4_2.h">machine_beaver_4_2.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_champ_2_4.h">machine_champ_2_4.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_chaos_5_2.h">machine_chaos_5_2.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_cmplx_5_2.h">machine_cmplx_5_2.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_count_5_2.h">machine_count_5_2.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_gcd.h">machine_gcd.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_great_3_2.h">machine_great_3_2.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_ioccc.h">machine_ioccc.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_nop.h">machine_nop.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_ru_2_4.h">machine_ru_2_4.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/machine_times2.h">machine_times2.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_15_50.h">tape_15_50.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_77_55.h">tape_77_55.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_empty.h">tape_empty.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_five.h">tape_five.h</a> - cpp macros</li>
<li><a href="2015_muth.tar.bz2">2015_muth.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->