update index.html and .winner.json per recent manifest changes

This commit is contained in:
Cody Boone Ferguson committed 2024-02-03 08:19:03 -08:00
1 parent 49a22d1196
commit e10621d60a
16 files changed
+363 -229

No files matched your search

-6
View File
@@ -178,12 +178,6 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/spinellis/sp
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/spinellis/spinellis.orig.c">spinellis.orig.c</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/spinellis/spinellis.orig.c">spinellis.orig.c</a>
- original source</li> - original source</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/spinellis/try.alt.sh">try.alt.sh</a>
- how to run alternative code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/spinellis/try.sh">try.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/spinellis/input.txt">input.txt</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/spinellis/input.txt">input.txt</a>
- example input</li> - example input</li>
<li><a <li><a
+23 -9
View File
@@ -125,16 +125,27 @@ Location: <a href="/temp-test-ioccc/location.html#JP">JP</a></p>
endoh3 in bugs.md</a>.</p> endoh3 in bugs.md</a>.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</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">./endoh3</span></span></code></pre></div> <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">./endoh3</span></span></code></pre></div>
<p>This program plays sound. See <a href="/faq.md#faq3_10">FAQ 3.10 -
How do I compile and use an IOCCC winner that requires sound?</a> if you
do not know how to set your system up for this or if you want to verify
that everything is oky.</p>
<h2 id="try">Try:</h2> <h2 id="try">Try:</h2>
<p>Trying this out will depend on how your system can play sounds. The <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span>
author’s remarks include some options for different operating <span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a></span>
systems.</p> <span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span> ABC</span>
<p>The simplest way is to create a .wav file and have your system play <span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a></span>
that.</p> <span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span> test.abc yankee.abc</span>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&#39;CDEFGABc&#39;</span> <span class="kw">|</span> <span class="ex">./endoh3</span> <span class="kw">|</span> <span class="ex">ruby</span> wavify.rb <span class="op">&gt;</span> cde.wav</span></code></pre></div> <span id="cb4-6"><a href="#cb4-6" aria-hidden="true" tabindex="-1"></a></span>
<p>Observe how you will need ruby installed.</p> <span id="cb4-7"><a href="#cb4-7" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span> <span class="pp">*</span>.abc</span></code></pre></div>
<p>There are also some other musical samples, twinkle.abc and <p>The script will check for SoX first and next <code>padsp</code> from
menuet.abc.</p> <code>PulseAudio</code> and finally if neither are found if you have
<code>ruby(1)</code> installed it’ll use the included ruby script to
convert it to a WAV file for you to play.</p>
<p>If no args are passed to the script it will play <a
href="twinkle.abc">twinkle.abc</a> and the string <code>ABC</code>.
Otherwise while there’s a remaining arg if it’s a file it will run the
program on the file. If it’s not a file it’ll run it as a string.</p>
<p>The <code>*.abc</code> files are provided as music samples.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This program can toot out a tune that is small enough to posted to <p>This program can toot out a tune that is small enough to posted to
most social media platforms that have small message length limits.</p> most social media platforms that have small message length limits.</p>
@@ -315,6 +326,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/menue
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/test.abc">test.abc</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/test.abc">test.abc</a>
- sample input</li> - sample input</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/try.sh">try.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/twinkle.abc">twinkle.abc</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/twinkle.abc">twinkle.abc</a>
- sample input</li> - sample input</li>
<li><a <li><a
+37 -15
View File
@@ -118,22 +118,41 @@ Location: <a href="/temp-test-ioccc/location.html#JP">JP</a></p>
<!-- END: next line ends content generated by: bin/gen-author.sh --> <!-- END: next line ends content generated by: bin/gen-author.sh -->
<h2 id="to-build">To build:</h2> <h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div> <div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div>
<p>If you wish to change the size (see the <a
href="#authors-remarks">Author’s remarks</a> below) you can do so with
the <code>SIZE</code> variable. For instance you can do:</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber SIZE=50,50 all</span></code></pre></div>
<p>but you can also do this directly with the <a
href="endoh4.sh">endoh4.sh</a> script as described below.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
<pre><code>STATUS: INABIAF - please **DO NOT** fix</code></pre>
<p>For more detailed information see <a href="/bugs.md#2013-endoh4">2013
endoh4 in bugs.md</a>.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4</span> <span class="op">&lt;</span> file</span> <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4</span> <span class="op">&lt;</span> file</span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./run.sh</span> file</span></code></pre></div> <span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4.sh</span> file</span></code></pre></div>
<p>The second form is preferable as it will temporarily make the cursor <p>The second form is preferable as it will temporarily make the cursor
invisible as recommended by the author. If no file is specified in invisible as recommended by the author. If no file is specified in the
<code>run.sh</code> command line it will feed to the program <a <code>./endoh4.sh</code> command line it will feed to the program <a
href="endoh4.c">endoh4.c</a>.</p> href="endoh4.c">endoh4.c</a>.</p>
<h2 id="try">Try:</h2> <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">./run.sh</span> cube.txt</span></code></pre></div> <div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4.sh</span> cube.txt</span></code></pre></div>
<p>Hit ctrl-c to end the program.</p> <p>Hit ctrl-c to end the program.</p>
<p>The author recommends the use of xterm.</p> <p>The author recommends the use of xterm.</p>
<p>For an example, if you are a football/soccer fan, try:</p> <p>For an example, if you are a football/soccer fan, try:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./run.sh</span> solids/archimedian-solid/a11-truncated-icosahedron.txt</span></code></pre></div> <div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4.sh</span> solids/archimedian-solid/a11-truncated-icosahedron.txt</span></code></pre></div>
<p>You can provide more than one file:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4.sh</span> solids/archimedian-solid/a11-truncated-icosahedron.txt cube.txt</span></code></pre></div>
<p>Hit ctrl-c/intr to go to the next file.</p>
<p>If you wish to change the size to <code>50,50</code> without passing
any arg:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="va">SIZE</span><span class="op">=</span>50,50 <span class="ex">./endoh4.sh</span></span></code></pre></div>
<p>Not specifying a file feeds <a href="endoh4.c">endoh4.c</a> to the
program.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This program is formatted as the net for a tetrahedron (hint: try <p>This program is formatted as the net for a tetrahedron (hint: try
feeding the program it’s own source code like <code>./run.sh</code>). feeding the program it’s own source code like <code>./endoh4.sh</code>).
When it runs there is an animation for the computation to work out the When it runs there is an animation for the computation to work out the
convex hull.</p> convex hull.</p>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
@@ -164,23 +183,26 @@ triangulated)</li>
<p>(Note that this program does not use <code>math.h</code>.)</p> <p>(Note that this program does not use <code>math.h</code>.)</p>
<h3 id="portability">Portability</h3> <h3 id="portability">Portability</h3>
<p>I think it conforms with both C89 and C99. I confirmed that it worked <p>I think it conforms with both C89 and C99. I confirmed that it worked
on gcc, clang, and tcc. It should not be warned with on gcc, clang, and tcc. It should not trigger warnings with
<code>-pedantic</code> and <code>-Wextra</code>.</p> <code>-pedantic</code> and <code>-Wextra</code>.</p>
<h3 id="tips">Tips</h3> <h3 id="tips">Tips</h3>
<p>You may want to use <code>tput</code> to hide the terminal <p>You may want to use <code>tput</code> to hide the terminal
cursor.</p> cursor.</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">tput</span> civis</span> <div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="fu">tput</span> civis</span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4</span> <span class="op">&lt;</span> cube.txt</span> <span id="cb9-2"><a href="#cb9-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4</span> <span class="op">&lt;</span> cube.txt</span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a><span class="fu">tput</span> cnorm</span></code></pre></div> <span id="cb9-3"><a href="#cb9-3" aria-hidden="true" tabindex="-1"></a><span class="fu">tput</span> cnorm</span></code></pre></div>
<p>or</p> <p>or</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./run.sh</span> cube.txt</span></code></pre></div> <div class="sourceCode" id="cb10"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4.sh</span> cube.txt</span></code></pre></div>
<h3 id="bonuses">Bonuses</h3> <h3 id="bonuses">Bonuses</h3>
<p>You can change the screen size. Let the aspect ratio be about <p>You can change the screen size. Let the aspect ratio be about
3:1.</p> 3:1.</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-DS</span><span class="op">=</span>120,40 <span class="at">-o</span> endoh4 endoh4.c</span></code></pre></div> <div class="sourceCode" id="cb11"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-DS</span><span class="op">=</span>120,40 <span class="at">-o</span> endoh4 endoh4.c</span></code></pre></div>
<p>The shape of this code is the geometric net of a regular tetrahedron. <p>The shape of this code is the geometric net of a regular tetrahedron.
So, try:</p> So, try:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4</span> <span class="op">&lt;</span> endoh4.c <span class="co"># or ./run.sh</span></span></code></pre></div> <div class="sourceCode" id="cb12"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh4</span> <span class="op">&lt;</span> endoh4.c <span class="co"># or ./endoh4.sh</span></span></code></pre></div>
<p>The <a href="solids/">solids/</a> directory includes various solid <p>The <a href="solids/">solids/</a> directory includes various solid
data:</p> data:</p>
<ul> <ul>
@@ -230,7 +252,7 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/endoh
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/cube.txt">cube.txt</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/cube.txt">cube.txt</a>
- 3D object coordinates</li> - 3D object coordinates</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/try.sh">try.sh</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/endoh4.sh">endoh4.sh</a>
- how to run</li> - how to run</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/solids/antiprism/a04-square-antiprism.txt">solids/antiprism/a04-square-antiprism.txt</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/solids/antiprism/a04-square-antiprism.txt">solids/antiprism/a04-square-antiprism.txt</a>
+10 -9
View File
@@ -130,15 +130,13 @@ auto-refreshing PPM image viewer ready. Refresh the image every time the
output refreshes, all effects should be more or less recognizable when output refreshes, all effects should be more or less recognizable when
you see 16.</p> you see 16.</p>
<h2 id="try">Try:</h2> <h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./hou</span> BIG</span> <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./hou</span> old_default.scene BIG</span> <p>Try opening the file noted by the program then let the program run a
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./hou</span> otherroom.scene</span> while and every so often reopen the file, to see how it changes. The
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a><span class="ex">./hou</span> otherroom.scene NAIVE</span></code></pre></div> author suggests that you leave the program running overnight to see what
<p>Try opening the file and then let the program run a while and every happens. If however you do not have all night :-) then the following
so often reopen the file, to see how it changes. The author suggests JPEG files should show you what happens with some of the invocations
that you leave the program running overnight to see what happens. If above:</p>
however you do not have all night :-) then the following JPEG files
should show you what happens with some of the invocations above:</p>
<figure> <figure>
<img src="luna.jpg" alt="./hou BIG - Luna" /> <img src="luna.jpg" alt="./hou BIG - Luna" />
<figcaption aria-hidden="true">./hou BIG - Luna</figcaption> <figcaption aria-hidden="true">./hou BIG - Luna</figcaption>
@@ -380,6 +378,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/old_defa
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/otherroom.scene">otherroom.scene</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/otherroom.scene">otherroom.scene</a>
- sample input</li> - sample input</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/try.sh">try.sh</a>
- how to run</li>
<li><a href="luna.jpg">luna.jpg</a> - sample image data</li> <li><a href="luna.jpg">luna.jpg</a> - sample image data</li>
<li><a href="old_default.jpg">old_default.jpg</a> - sample image <li><a href="old_default.jpg">old_default.jpg</a> - sample image
data</li> data</li>
+8 -8
View File
@@ -120,15 +120,12 @@ href="/temp-test-ioccc/location.html#FR">FR</a></p>
<h2 id="to-build">To build:</h2> <h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div> <div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&quot;2013/10/03&quot;</span> <span class="kw">|</span> <span class="ex">./morgan1</span></span></code></pre></div> <div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&quot;YYYY/MM/DD&quot;</span> <span class="kw">|</span> <span class="ex">./morgan1</span></span></code></pre></div>
<p>where <code>YYYY</code> is the four digit year, <code>MM</code> is
the two digit month and <code>DD</code> is two digit day of the
month.</p>
<h2 id="try">Try:</h2> <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="bu">echo</span> <span class="st">&quot;1985/10/28&quot;</span> <span class="kw">|</span> <span class="ex">./morgan1</span></span> <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>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&quot;1996/12/31&quot;</span> <span class="kw">|</span> <span class="ex">./morgan1</span></span>
<span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&quot;1986/03/31&quot;</span> <span class="kw">|</span> <span class="ex">./morgan1</span> <span class="co"># Comet Halley (look for &#39;Ha&#39;)</span></span>
<span id="cb3-6"><a href="#cb3-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-7"><a href="#cb3-7" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&quot;1997/04/01&quot;</span> <span class="kw">|</span> <span class="ex">./morgan1</span> <span class="co"># Comet Hale-Bopp (look for &#39;Hb&#39;)</span></span></code></pre></div>
<p>Try pressing the arrow keys when your focus is in the window.</p> <p>Try pressing the arrow keys when your focus is in the window.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>To verify the output, try echoing the date of an evening with a clear <p>To verify the output, try echoing the date of an evening with a clear
@@ -242,6 +239,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/morgan1/Make
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/morgan1/morgan1.orig.c">morgan1.orig.c</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/morgan1/morgan1.orig.c">morgan1.orig.c</a>
- original source</li> - original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/morgan1/try.sh">try.sh</a>
- how to run</li>
<li><a href="2013_morgan1.tar.bz2">2013_morgan1.tar.bz2</a> - download <li><a href="2013_morgan1.tar.bz2">2013_morgan1.tar.bz2</a> - download
winning source</li> winning source</li>
</ul> </ul>
+7 -4
View File
@@ -127,11 +127,11 @@ href="#alternate-code">Alternate code</a> section below.</p>
<p>For more detailed information see <a href="/bugs.md#2014-vik">2014 <p>For more detailed information see <a href="/bugs.md#2014-vik">2014
vik in bugs.md</a>.</p> vik in bugs.md</a>.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</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">./prog</span> <span class="op">&gt;</span> foo.c</span></code></pre></div> <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="bu">echo</span> foo <span class="kw">|</span> <span class="ex">./prog</span> <span class="op">&gt;</span> audio_file.raw</span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> foo <span class="kw">|</span> <span class="ex">./prog</span> <span class="kw">|</span> <span class="ex">mplayer</span> <span class="at">-demuxer</span> rawaudio <span class="at">-</span></span></code></pre></div>
<h2 id="try">Try:</h2> <h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&#39;Want to hear me beep?&#39;</span> <span class="kw">|</span> <span class="ex">./prog</span> <span class="op">&gt;</span> audio_file.raw</span> <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&#39;No. I want chocolate!&#39;</span> <span class="kw">|</span> <span class="ex">./prog</span> <span class="kw">|</span> <span class="ex">mplayer</span> <span class="at">-demuxer</span> rawaudio <span class="at">-</span></span></code></pre></div>
<h2 id="alternate-code">Alternate code:</h2> <h2 id="alternate-code">Alternate code:</h2>
<p>The alternate code, <a href="prog.alt.c">prog.alt.c</a>, is based on <p>The alternate code, <a href="prog.alt.c">prog.alt.c</a>, is based on
the author’s instructions on how to get it to work with Windows.</p> the author’s instructions on how to get it to work with Windows.</p>
@@ -212,6 +212,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/vik/prog.alt
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/vik/prog.orig.c">prog.orig.c</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/vik/prog.orig.c">prog.orig.c</a>
- original source</li> - original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/vik/try.sh">try.sh</a>
- how to run</li>
<li><a href="2014_vik.tar.bz2">2014_vik.tar.bz2</a> - download winning <li><a href="2014_vik.tar.bz2">2014_vik.tar.bz2</a> - download winning
source</li> source</li>
</ul> </ul>
+6 -1
View File
@@ -135,13 +135,15 @@ like.</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div> <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<h3 id="alternate-use">Alternate use:</h3> <h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p> <p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h3 id="alternate-try">Alternate try:</h3>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>With this entry, you won’t need to turn your monitor <a <p>With this entry, you won’t need to turn your monitor <a
href="http://en.wikipedia.org/wiki/River_%28typography%29">upside href="http://en.wikipedia.org/wiki/River_%28typography%29">upside
down</a>!</p> down</a>!</p>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="compiling-the-program">Compiling the program:</h3> <h3 id="compiling-the-program">Compiling the program:</h3>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Wall</span> <span class="at">-Wextra</span> <span class="at">-Wpedantic</span> <span class="at">-O3</span> <span class="at">-std</span><span class="op">=</span>c11 prog.c <span class="at">-o</span> prog</span></code></pre></div> <div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Wall</span> <span class="at">-Wextra</span> <span class="at">-Wpedantic</span> <span class="at">-O3</span> <span class="at">-std</span><span class="op">=</span>c11 prog.c <span class="at">-o</span> prog</span></code></pre></div>
<p>Also works with a standard of C99, but C90/C89 will not compile due <p>Also works with a standard of C99, but C90/C89 will not compile due
to <code>for</code> loop initial declarations, along with additional to <code>for</code> loop initial declarations, along with additional
warnings about variable length arrays and lack of a <code>return</code> warnings about variable length arrays and lack of a <code>return</code>
@@ -203,6 +205,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/anderson/pro
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/anderson/prog.orig.c">prog.orig.c</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/anderson/prog.orig.c">prog.orig.c</a>
- original source</li> - original source</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/anderson/try.alt.sh">try.alt.sh</a>
- how to run alternate code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/anderson/try.sh">try.sh</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/anderson/try.sh">try.sh</a>
- how to run</li> - how to run</li>
<li><a href="2018_anderson.tar.bz2">2018_anderson.tar.bz2</a> - download <li><a href="2018_anderson.tar.bz2">2018_anderson.tar.bz2</a> - download
+16 -11
View File
@@ -124,17 +124,19 @@ href="#alternate-code">Alternate code</a> below.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op">&gt;</span> lena.ppm</span></code></pre></div> <div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op">&gt;</span> lena.ppm</span></code></pre></div>
<h2 id="try">Try:</h2> <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">eog</span> lena.ppm <span class="co"># On Linux</span></span> <p>First open <a href="Lenna.png">Lenna.png</a> in your graphics viewer
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="ex">open</span> <span class="at">-a</span> Preview lena.ppm <span class="co"># On macOS</span></span> of choice. Next, after running the above command
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a></span> (<code>./prog &gt; lena.ppm</code>), open <code>lena.ppm</code> in your
<span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a><span class="ex">pngtopam</span> <span class="op">&lt;</span> Lenna.png <span class="kw">|</span> <span class="ex">pnmscale</span> 0.25 <span class="kw">|</span> <span class="ex">cjpeg</span> <span class="at">-arithmetic</span> <span class="at">-dct</span> float <span class="at">-quality</span> 14 <span class="op">&gt;</span> small.jpg</span></code></pre></div> graphics viewer of choice. After that try:</p>
<p>NOTE: <code>pngtopam(1)</code> (or <code>pngtopnm(1)</code> for older <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>
versions) and <code>pnmscale</code> come from the netpbm project and <p>NOTE: the script uses the tools <code>pngtopam(1)</code> (or
<code>cjpeg(1)</code> comes from <code>libjpeg-turbo</code>. If you <code>pngtopnm(1)</code> for older versions) and <code>pnmscale</code>
don’t have these tools already see <a href="/faq.md#netpbm">FAQ 3.15 - come from the netpbm project and <code>cjpeg(1)</code> comes from
How do I compile and install netpbm for entries that require it?</a> and <code>libjpeg-turbo</code>. If you don’t have these tools already see <a
<a href="/faq.md#libjpeg">FAQ 3.16 - How do I compile and install href="/faq.md#netpbm">FAQ 3.15 - How do I compile and install netpbm for
libjpeg-turbo for entries that require it?</a>.</p> entries that require it?</a> and <a href="/faq.md#libjpeg">FAQ 3.16 -
How do I compile and install libjpeg-turbo for entries that require
it?</a>.</p>
<p>NOTE: <a href="Lenna.png">Lenna.png</a> is from <a <p>NOTE: <a href="Lenna.png">Lenna.png</a> is from <a
href="https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png" href="https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png"
class="uri">https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png</a>.</p> class="uri">https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png</a>.</p>
@@ -222,6 +224,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/bellard/prog
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/bellard/prog.orig.c">prog.orig.c</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/bellard/prog.orig.c">prog.orig.c</a>
- original source</li> - original source</li>
<li><a href="Lenna.png">Lenna.png</a> - sample image data</li> <li><a href="Lenna.png">Lenna.png</a> - sample image data</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/bellard/try.sh">try.sh</a>
- how to run</li>
<li><a href="2018_bellard.tar.bz2">2018_bellard.tar.bz2</a> - download <li><a href="2018_bellard.tar.bz2">2018_bellard.tar.bz2</a> - download
winning source</li> winning source</li>
</ul> </ul>
+8 -2
View File
@@ -124,8 +124,7 @@ href="#remarks">remarks section</a>) below for more details.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op">&lt;</span> text</span></code></pre></div> <div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op">&lt;</span> text</span></code></pre></div>
<h2 id="try">Try:</h2> <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">./prog</span> <span class="op">&lt;</span> Makefile</span> <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>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op">&lt;</span> README.md</span></code></pre></div>
<h2 id="alternate-code">Alternate code:</h2> <h2 id="alternate-code">Alternate code:</h2>
<p>An alternate version of this entry, <a <p>An alternate version of this entry, <a
href="prog.alt.c">prog.alt.c</a>, is provided. As mentioned in the href="prog.alt.c">prog.alt.c</a>, is provided. As mentioned in the
@@ -135,6 +134,10 @@ useful bug fix.</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div> <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<h3 id="alternate-use">Alternate use:</h3> <h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p> <p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h3 id="alternate-try">Alternate try:</h3>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span></code></pre></div>
<p>Do you spot the fix by running both <a href="try.sh">try.sh</a> and
<a href="try.alt.sh">try.alt.sh</a>?</p>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This text was processed by <code>prog</code>. You may get confused. <p>This text was processed by <code>prog</code>. You may get confused.
We’re not really sure: <a href="prog.c">prog.c</a> wasn’t commented. Who We’re not really sure: <a href="prog.c">prog.c</a> wasn’t commented. Who
@@ -398,6 +401,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ciura/prog.o
<li><a href="lexicon.pdf">lexicon.pdf</a> - How to squeeze a lexicon <li><a href="lexicon.pdf">lexicon.pdf</a> - How to squeeze a lexicon
paper</li> paper</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ciura/try.alt.sh">try.alt.sh</a>
- how to run alternate code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ciura/try.sh">try.sh</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ciura/try.sh">try.sh</a>
- how to run</li> - how to run</li>
<li><a href="2018_ciura.tar.bz2">2018_ciura.tar.bz2</a> - download <li><a href="2018_ciura.tar.bz2">2018_ciura.tar.bz2</a> - download
+224 -147
View File
@@ -125,7 +125,22 @@ below.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span></span></code></pre></div> <div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span></span></code></pre></div>
<h2 id="try">Try:</h2> <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> <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>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="co"># For those who believe in &#39;&quot;intelligent&quot; design&#39; or want to see how easy it is</span></span>
<span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a><span class="co"># to prove evolution is a proven fact:</span></span>
<span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./id.sh</span></span>
<span id="cb3-6"><a href="#cb3-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-7"><a href="#cb3-7" aria-hidden="true" tabindex="-1"></a><span class="co"># For those who want to see if Eric the monkey can type the word &#39;words&#39; before</span></span>
<span id="cb3-8"><a href="#cb3-8" aria-hidden="true" tabindex="-1"></a><span class="co"># falling asleep or giving up:</span></span>
<span id="cb3-9"><a href="#cb3-9" aria-hidden="true" tabindex="-1"></a><span class="ex">./monkey-words.sh</span></span></code></pre></div>
<p>NOTE: the <a href="try.sh">try.sh</a> script will run the other two
scripts but if the first one, <a href="id.sh">id.sh</a> is terminated
early in the try script, the second one, <a
href="monkey-words.sh">monkey-words.sh</a> will not be run.</p>
<p>You can reconfigure certain values. These are described by the author
in more detail in the <a href="#constants">S, M and N Constants</a>
section. The script above will make use of some of these.</p>
<h2 id="alternate-code">Alternate code:</h2> <h2 id="alternate-code">Alternate code:</h2>
<p>This version has a simpler keyboard (fewer characters). The author <p>This version has a simpler keyboard (fewer characters). The author
wrote more about this under the <a href="#keyboards">keyboards</a> wrote more about this under the <a href="#keyboards">keyboards</a>
@@ -137,7 +152,27 @@ section.</p>
<p>Use <code>weasel.alt</code> as you would <code>weasel</code> <p>Use <code>weasel.alt</code> as you would <code>weasel</code>
above.</p> above.</p>
<h3 id="alternate-try">Alternate try:</h3> <h3 id="alternate-try">Alternate try:</h3>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span></code></pre></div> <div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a><span class="co"># For those who believe in &#39;&quot;intelligent&quot; design&#39; or want to see how easy it is</span></span>
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a><span class="co"># to prove evolution is a proven fact:</span></span>
<span id="cb5-5"><a href="#cb5-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./id.alt.sh</span></span>
<span id="cb5-6"><a href="#cb5-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb5-7"><a href="#cb5-7" aria-hidden="true" tabindex="-1"></a><span class="co"># For those who want to see if Eric the monkey can type the word &#39;words&#39; before</span></span>
<span id="cb5-8"><a href="#cb5-8" aria-hidden="true" tabindex="-1"></a><span class="co"># falling asleep or giving up:</span></span>
<span id="cb5-9"><a href="#cb5-9" aria-hidden="true" tabindex="-1"></a><span class="ex">./monkey-words.alt.sh</span></span></code></pre></div>
<p>NOTE: the <a href="try.alt.sh">try.alt.sh</a> script will run the
other two scripts but if the first one, <a
href="id.alt.sh">id.alt.sh</a> is terminated early in the try script,
the second one, <a href="monkey-words.alt.sh">monkey-words.alt.sh</a>
will not be run.</p>
<p>You can reconfigure certain values. These are described by the author
in more detail in the <a href="#constants">S, M and N Constants</a>
section. The script above will make use of some of these.</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span></code></pre></div>
<p>You can reconfigure certain values. These are described by the author
in more detail in the <a href="#constants">S, M and N Constants</a>
section. The script above will make use of some of these.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Looking back over the strata of past IOCCC entries, this program <p>Looking back over the strata of past IOCCC entries, this program
marks a new mutation on our understanding of sequencing of code. In marks a new mutation on our understanding of sequencing of code. In
@@ -153,7 +188,7 @@ which us Homo sapiens hang from the phylogenetic tree of life.</p>
code era, while using more Cenozoic minded code migration, read code era, while using more Cenozoic minded code migration, read
rpm.md.</p> rpm.md.</p>
<p>If you find yourself in an evolutionary dead end, try:</p> <p>If you find yourself in an evolutionary dead end, try:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">man</span> ./weasel.1</span></code></pre></div> <div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">man</span> ./weasel.1</span></code></pre></div>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
<ol start="0" type="1"> <ol start="0" type="1">
<li>Preface</li> <li>Preface</li>
@@ -182,7 +217,7 @@ people don’t like to read long texts. To resolve this I think the best
way is referencing the judges’ remarks: if you want a quick rundown of way is referencing the judges’ remarks: if you want a quick rundown of
the entry try what they suggest and view the man page (it explains all the entry try what they suggest and view the man page (it explains all
the options and describes the program briefly):</p> the options and describes the program briefly):</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">man</span> ./weasel.man</span></code></pre></div> <div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">man</span> ./weasel.man</span></code></pre></div>
<p>If that isn’t sufficient <strong>I would recommend reading this <p>If that isn’t sufficient <strong>I would recommend reading this
section</strong> <em>(and possibly the next)</em> where I attempt to section</strong> <em>(and possibly the next)</em> where I attempt to
give a brief explanation of the sections to make reading it easier and give a brief explanation of the sections to make reading it easier and
@@ -215,10 +250,11 @@ after.</p>
techniques that might not be used.</p> techniques that might not be used.</p>
<p><strong><a href="#build">How to build</a>:</strong> Here I describe <p><strong><a href="#build">How to build</a>:</strong> Here I describe
briefly <a href="#constants">the constants that can be redefined</a> briefly <a href="#constants">the constants that can be redefined</a>
<code>S</code> and <code>N</code>: the maximum size of the chromosome <code>S</code>, <code>M</code> and <code>N</code>: the maximum size of
(target string; the maximum length is <code>S - 1</code> but it must be the chromosome (target string; the maximum length is <code>S - 1</code>
&gt;= the default 38) and the number of offspring, respectively. I also but it must be &gt;= the default 38), the number of maximum attempts
give <a href="#compiling">example compiler invocations</a>, <a before giving up and the number of offspring, respectively. I also give
<a href="#compiling">example compiler invocations</a>, <a
href="#portability">portability notes</a>, an <a href="#bugs">more href="#portability">portability notes</a>, an <a href="#bugs">more
portability notes</a> and a <a href="#rpm">note on rpm.md</a>.</p> portability notes</a> and a <a href="#rpm">note on rpm.md</a>.</p>
<p>On the subject of <code>S</code> and <code>N</code>: As the judges’ <p>On the subject of <code>S</code> and <code>N</code>: As the judges’
@@ -458,18 +494,18 @@ means you’ll need to quote the string if it has more than one word (that
is it contains spaces) or anything else interpreted specially by your is it contains spaces) or anything else interpreted specially by your
shell e.g. parentheses. For instance if you just want to find shell e.g. parentheses. For instance if you just want to find
<code>METHINKS</code> you could do one of:</p> <code>METHINKS</code> you could do one of:</p>
<div class="sourceCode" id="cb15"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> METHINKS</span>
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&quot;METHINKS&quot;</span></span>
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&#39;METHINKS&#39;</span></span></code></pre></div>
<p>If you wanted <code>YOU ARE A MONKEY</code>:</p>
<div class="sourceCode" id="cb16"><pre <div class="sourceCode" id="cb16"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&quot;YOU ARE A MONKEY&quot;</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> METHINKS</span>
<span id="cb16-2"><a href="#cb16-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&#39;YOU ARE A MONKEY&#39;</span></span></code></pre></div> <span id="cb16-2"><a href="#cb16-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&quot;METHINKS&quot;</span></span>
<p>If you do one of:</p> <span id="cb16-3"><a href="#cb16-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&#39;METHINKS&#39;</span></span></code></pre></div>
<p>If you wanted <code>YOU ARE A MONKEY</code>:</p>
<div class="sourceCode" id="cb17"><pre <div class="sourceCode" id="cb17"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&quot;METHINKS IT IS A&quot;</span> <span class="st">&quot;MONKEY&quot;</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&quot;YOU ARE A MONKEY&quot;</span></span>
<span id="cb17-2"><a href="#cb17-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> METHINKS IT IS A MONKEY</span></code></pre></div> <span id="cb17-2"><a href="#cb17-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&#39;YOU ARE A MONKEY&#39;</span></span></code></pre></div>
<p>If you do one of:</p>
<div class="sourceCode" id="cb18"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="st">&quot;METHINKS IT IS A&quot;</span> <span class="st">&quot;MONKEY&quot;</span></span>
<span id="cb18-2"><a href="#cb18-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> METHINKS IT IS A MONKEY</span></code></pre></div>
<p><br /> <p><br />
It will search for <code>MONKEY</code> in both cases; in other words It will search for <code>MONKEY</code> in both cases; in other words
it’s the last one. If the string is too long given the value of it’s the last one. If the string is too long given the value of
@@ -479,14 +515,14 @@ truncated.</p>
<p>If you actually do want to search for a string starting with a <p>If you actually do want to search for a string starting with a
<code>-</code> you must disable further parsing of options by using the <code>-</code> you must disable further parsing of options by using the
<code>-</code> option itself; for example if you were to do any of:</p> <code>-</code> option itself; for example if you were to do any of:</p>
<div class="sourceCode" id="cb18"><pre <div class="sourceCode" id="cb19"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q-</span> <span class="at">--</span> <span class="at">-test</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb19-1"><a href="#cb19-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q-</span> <span class="at">--</span> <span class="at">-test</span></span>
<span id="cb18-2"><a href="#cb18-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q-</span> <span class="at">-test</span></span> <span id="cb19-2"><a href="#cb19-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q-</span> <span class="at">-test</span></span>
<span id="cb18-3"><a href="#cb18-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q</span> <span class="at">--</span> <span class="at">-test</span></span></code></pre></div> <span id="cb19-3"><a href="#cb19-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q</span> <span class="at">--</span> <span class="at">-test</span></span></code></pre></div>
<p>The target string will be: <code>-TEST</code>. This means though that <p>The target string will be: <code>-TEST</code>. This means though that
here:</p> here:</p>
<div class="sourceCode" id="cb19"><pre <div class="sourceCode" id="cb20"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb19-1"><a href="#cb19-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q</span> <span class="at">--</span> <span class="at">-test</span> <span class="at">-r5</span></span></code></pre></div> class="sourceCode sh"><code class="sourceCode bash"><span id="cb20-1"><a href="#cb20-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q</span> <span class="at">--</span> <span class="at">-test</span> <span class="at">-r5</span></span></code></pre></div>
<p>The string to be searched would actually be <code>-r5</code> and the <p>The string to be searched would actually be <code>-r5</code> and the
mutation rate will remain the default because after the <code>-</code> mutation rate will remain the default because after the <code>-</code>
option is seen it will no longer parse additional options: only target option is seen it will no longer parse additional options: only target
@@ -497,8 +533,8 @@ three above are equivalent i.e. the following two are equivalent:</p>
-q --</code></pre> -q --</code></pre>
<p><br /> <p><br />
As for the caveat I referenced what does the following do?</p> As for the caveat I referenced what does the following do?</p>
<div class="sourceCode" id="cb21"><pre <div class="sourceCode" id="cb22"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb21-1"><a href="#cb21-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-qr</span> 5</span></code></pre></div> class="sourceCode sh"><code class="sourceCode bash"><span id="cb22-1"><a href="#cb22-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-qr</span> 5</span></code></pre></div>
<p>In fact it will set quiet output and set the target string to be ‘5’. <p>In fact it will set quiet output and set the target string to be ‘5’.
So the mutation rate will be out of range, thus enabling that Easter So the mutation rate will be out of range, thus enabling that Easter
egg, but it will likely come to an answer fairly quickly because it’s egg, but it will likely come to an answer fairly quickly because it’s
@@ -507,21 +543,21 @@ option; if the program is currently parsing <code>argv[N]</code>, for
example, and it encounters a <code>--</code> then depending on where the example, and it encounters a <code>--</code> then depending on where the
other options are in the command line it might still parse the options. other options are in the command line it might still parse the options.
Thus you have:</p> Thus you have:</p>
<div class="sourceCode" id="cb22"><pre <div class="sourceCode" id="cb23"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb22-1"><a href="#cb22-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="at">-qr-r5</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb23-1"><a href="#cb23-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="at">-qr-r5</span></span>
<span id="cb22-2"><a href="#cb22-2" aria-hidden="true" tabindex="-1"></a><span class="ex">quiet</span> output</span> <span id="cb23-2"><a href="#cb23-2" aria-hidden="true" tabindex="-1"></a><span class="ex">quiet</span> output</span>
<span id="cb22-3"><a href="#cb22-3" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span> <span id="cb23-3"><a href="#cb23-3" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span>
<span id="cb22-4"><a href="#cb22-4" aria-hidden="true" tabindex="-1"></a><span class="ex">target</span> <span class="st">&#39;METHINKS IT IS LIKE A WEASEL&#39;</span></span> <span id="cb23-4"><a href="#cb23-4" aria-hidden="true" tabindex="-1"></a><span class="ex">target</span> <span class="st">&#39;METHINKS IT IS LIKE A WEASEL&#39;</span></span>
<span id="cb22-5"><a href="#cb22-5" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate 5</span> <span id="cb23-5"><a href="#cb23-5" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate 5</span>
<span id="cb22-6"><a href="#cb22-6" aria-hidden="true" tabindex="-1"></a><span class="ex">Generation</span> 440 Offspring 20: METHINKS IT IS LIKE A WEASEL</span></code></pre></div> <span id="cb23-6"><a href="#cb23-6" aria-hidden="true" tabindex="-1"></a><span class="ex">Generation</span> 440 Offspring 20: METHINKS IT IS LIKE A WEASEL</span></code></pre></div>
<p>Similarly this would set quiet output, then an invalid mutation rate <p>Similarly this would set quiet output, then an invalid mutation rate
and then a mutation rate of 5:</p> and then a mutation rate of 5:</p>
<div class="sourceCode" id="cb23"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb23-1"><a href="#cb23-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">--qrr5</span></span></code></pre></div>
<p>If you were instead to do one of (for example):</p>
<div class="sourceCode" id="cb24"><pre <div class="sourceCode" id="cb24"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb24-1"><a href="#cb24-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q</span> <span class="at">--</span> <span class="at">-r</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb24-1"><a href="#cb24-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">--qrr5</span></span></code></pre></div>
<span id="cb24-2"><a href="#cb24-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q</span> <span class="at">-q-</span> <span class="at">-r</span></span></code></pre></div> <p>If you were instead to do one of (for example):</p>
<div class="sourceCode" id="cb25"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb25-1"><a href="#cb25-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q</span> <span class="at">--</span> <span class="at">-r</span></span>
<span id="cb25-2"><a href="#cb25-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./weasel</span> <span class="at">-q</span> <span class="at">-q-</span> <span class="at">-r</span></span></code></pre></div>
<p>Then it <em>would</em> set quiet output then see the <code>--</code> <p>Then it <em>would</em> set quiet output then see the <code>--</code>
(the <code>-</code> option itself) and then the target string would (the <code>-</code> option itself) and then the target string would
<em>literally</em> be set to <code>-r</code> because it no longer cares <em>literally</em> be set to <code>-r</code> because it no longer cares
@@ -555,16 +591,16 @@ If yes how do we know if monkey mode was specially requested? There are
at least two ways to go about it: I took the monkey safe (‘fool safe’) at least two ways to go about it: I took the monkey safe (‘fool safe’)
method; *if you explicitly request monkey mode you cannot disable it in method; *if you explicitly request monkey mode you cannot disable it in
the same invocation of <code>weasel</code>!</p> the same invocation of <code>weasel</code>!</p>
<div class="sourceCode" id="cb25"><pre <div class="sourceCode" id="cb26"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb25-1"><a href="#cb25-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="at">-qr101r5r101r1r</span> test</span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb26-1"><a href="#cb26-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="at">-qr101r5r101r1r</span> test</span>
<span id="cb25-2"><a href="#cb25-2" aria-hidden="true" tabindex="-1"></a><span class="ex">quiet</span> output</span> <span id="cb26-2"><a href="#cb26-2" aria-hidden="true" tabindex="-1"></a><span class="ex">quiet</span> output</span>
<span id="cb25-3"><a href="#cb25-3" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span> <span id="cb26-3"><a href="#cb26-3" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span>
<span id="cb25-4"><a href="#cb25-4" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span> <span id="cb26-4"><a href="#cb26-4" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span>
<span id="cb25-5"><a href="#cb25-5" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span> <span id="cb26-5"><a href="#cb26-5" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span>
<span id="cb25-6"><a href="#cb25-6" aria-hidden="true" tabindex="-1"></a><span class="ex">target</span> <span class="st">&#39;test&#39;</span></span> <span id="cb26-6"><a href="#cb26-6" aria-hidden="true" tabindex="-1"></a><span class="ex">target</span> <span class="st">&#39;test&#39;</span></span>
<span id="cb25-7"><a href="#cb25-7" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate 0</span> <span id="cb26-7"><a href="#cb26-7" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate 0</span>
<span id="cb25-8"><a href="#cb25-8" aria-hidden="true" tabindex="-1"></a><span class="ex">monkey</span> at typewriter</span> <span id="cb26-8"><a href="#cb26-8" aria-hidden="true" tabindex="-1"></a><span class="ex">monkey</span> at typewriter</span>
<span id="cb25-9"><a href="#cb25-9" aria-hidden="true" tabindex="-1"></a><span class="ex">Generation</span> 16844 Offspring 22: TEST</span></code></pre></div> <span id="cb26-9"><a href="#cb26-9" aria-hidden="true" tabindex="-1"></a><span class="ex">Generation</span> 16844 Offspring 22: TEST</span></code></pre></div>
<p>So in this case I joined the options in the following order:</p> <p>So in this case I joined the options in the following order:</p>
<ol type="1"> <ol type="1">
<li><p><code>-q</code></p> <li><p><code>-q</code></p>
@@ -601,27 +637,27 @@ for <code>TEST</code>).</p></li>
<p>Given that it was a short string it did find the answer relatively <p>Given that it was a short string it did find the answer relatively
quickly, even in monkey mode.</p> quickly, even in monkey mode.</p>
<p>Another example:</p> <p>Another example:</p>
<div class="sourceCode" id="cb26"><pre <div class="sourceCode" id="cb27"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb26-1"><a href="#cb26-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="at">-q</span> <span class="at">-r101</span> test <span class="at">-r5</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb27-1"><a href="#cb27-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="at">-q</span> <span class="at">-r101</span> test <span class="at">-r5</span></span>
<span id="cb26-2"><a href="#cb26-2" aria-hidden="true" tabindex="-1"></a><span class="ex">quiet</span> output</span> <span id="cb27-2"><a href="#cb27-2" aria-hidden="true" tabindex="-1"></a><span class="ex">quiet</span> output</span>
<span id="cb26-3"><a href="#cb26-3" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span> <span id="cb27-3"><a href="#cb27-3" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span>
<span id="cb26-4"><a href="#cb26-4" aria-hidden="true" tabindex="-1"></a><span class="ex">target</span> <span class="st">&#39;test&#39;</span></span> <span id="cb27-4"><a href="#cb27-4" aria-hidden="true" tabindex="-1"></a><span class="ex">target</span> <span class="st">&#39;test&#39;</span></span>
<span id="cb26-5"><a href="#cb26-5" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate 5</span> <span id="cb27-5"><a href="#cb27-5" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate 5</span>
<span id="cb26-6"><a href="#cb26-6" aria-hidden="true" tabindex="-1"></a><span class="ex">Generation</span> 109 Offspring 13: TEST</span></code></pre></div> <span id="cb27-6"><a href="#cb27-6" aria-hidden="true" tabindex="-1"></a><span class="ex">Generation</span> 109 Offspring 13: TEST</span></code></pre></div>
<p>In this case I also enabled quiet mode but I didn’t join the options; <p>In this case I also enabled quiet mode but I didn’t join the options;
the <code>-r101</code> reports that it’s out of range and sets monkey the <code>-r101</code> reports that it’s out of range and sets monkey
mode. I then specify the target string and then set a valid mutation mode. I then specify the target string and then set a valid mutation
rate. This disabled monkey mode which means that it’ll use the genetic rate. This disabled monkey mode which means that it’ll use the genetic
algorithm.</p> algorithm.</p>
<p>One more example of monkey mode:</p> <p>One more example of monkey mode:</p>
<div class="sourceCode" id="cb27"><pre <div class="sourceCode" id="cb28"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb27-1"><a href="#cb27-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="at">-q</span> <span class="at">-mr101</span> test <span class="at">-r5</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb28-1"><a href="#cb28-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="at">-q</span> <span class="at">-mr101</span> test <span class="at">-r5</span></span>
<span id="cb27-2"><a href="#cb27-2" aria-hidden="true" tabindex="-1"></a><span class="ex">quiet</span> output</span> <span id="cb28-2"><a href="#cb28-2" aria-hidden="true" tabindex="-1"></a><span class="ex">quiet</span> output</span>
<span id="cb27-3"><a href="#cb27-3" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span> <span id="cb28-3"><a href="#cb28-3" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate out of range</span>
<span id="cb27-4"><a href="#cb27-4" aria-hidden="true" tabindex="-1"></a><span class="ex">target</span> <span class="st">&#39;test&#39;</span></span> <span id="cb28-4"><a href="#cb28-4" aria-hidden="true" tabindex="-1"></a><span class="ex">target</span> <span class="st">&#39;test&#39;</span></span>
<span id="cb27-5"><a href="#cb27-5" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate 5</span> <span id="cb28-5"><a href="#cb28-5" aria-hidden="true" tabindex="-1"></a><span class="ex">mutation</span> rate 5</span>
<span id="cb27-6"><a href="#cb27-6" aria-hidden="true" tabindex="-1"></a><span class="ex">monkey</span> at typewriter</span> <span id="cb28-6"><a href="#cb28-6" aria-hidden="true" tabindex="-1"></a><span class="ex">monkey</span> at typewriter</span>
<span id="cb27-7"><a href="#cb27-7" aria-hidden="true" tabindex="-1"></a><span class="ex">Generation</span> 465298 Offspring 10: TEST</span></code></pre></div> <span id="cb28-7"><a href="#cb28-7" aria-hidden="true" tabindex="-1"></a><span class="ex">Generation</span> 465298 Offspring 10: TEST</span></code></pre></div>
<p>Here I also requested quiet output and then <em>explicitly requested <p>Here I also requested quiet output and then <em>explicitly requested
that Eric the monkey types.</em> After this I set the mutation rate to that Eric the monkey types.</em> After this I set the mutation rate to
be 101 which would have set monkey mode (<em>in this case only be 101 which would have set monkey mode (<em>in this case only
@@ -715,13 +751,13 @@ read from the file and pass each string to the program itself</em>. I’ve
included a script <code>test.sh</code> and a file of sample input included a script <code>test.sh</code> and a file of sample input
<code>test-strings.txt</code> that you can play with.</p> <code>test-strings.txt</code> that you can play with.</p>
<p>Try:</p> <p>Try:</p>
<div class="sourceCode" id="cb32"><pre <div class="sourceCode" id="cb33"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb32-1"><a href="#cb32-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> test</span></code></pre></div> class="sourceCode sh"><code class="sourceCode bash"><span id="cb33-1"><a href="#cb33-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> test</span></code></pre></div>
<p>This will essentially make sure the program is compiled and then <p>This will essentially make sure the program is compiled and then
do:</p> do:</p>
<div class="sourceCode" id="cb33"><pre <div class="sourceCode" id="cb34"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb33-1"><a href="#cb33-1" aria-hidden="true" tabindex="-1"></a><span class="fu">chmod</span> +x test.sh</span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb34-1"><a href="#cb34-1" aria-hidden="true" tabindex="-1"></a><span class="fu">chmod</span> +x test.sh</span>
<span id="cb33-2"><a href="#cb33-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./test.sh</span></span></code></pre></div> <span id="cb34-2"><a href="#cb34-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./test.sh</span></span></code></pre></div>
<p>The script will first try compiling the program (if necessary) and if <p>The script will first try compiling the program (if necessary) and if
it fails for any reason it will exit; else it will read each line in the it fails for any reason it will exit; else it will read each line in the
file <code>test-strings.txt</code> (if the file doesn’t exist or can’t file <code>test-strings.txt</code> (if the file doesn’t exist or can’t
@@ -732,8 +768,8 @@ until all the strings have been read and processed).</p>
<p>You can pass additional options directly to the script but remember <p>You can pass additional options directly to the script but remember
that it stops when there are no more strings in the file - so if you that it stops when there are no more strings in the file - so if you
try:</p> try:</p>
<div class="sourceCode" id="cb34"><pre <div class="sourceCode" id="cb35"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb34-1"><a href="#cb34-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./test.sh</span> <span class="at">-q</span> test</span></code></pre></div> class="sourceCode sh"><code class="sourceCode bash"><span id="cb35-1"><a href="#cb35-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./test.sh</span> <span class="at">-q</span> test</span></code></pre></div>
<p>The final string <code>test</code> won’t be searched for; it will <p>The final string <code>test</code> won’t be searched for; it will
however run the program in all invocations with quiet output enabled. however run the program in all invocations with quiet output enabled.
The following are some notes about how the shell and the program The following are some notes about how the shell and the program
@@ -762,12 +798,12 @@ keyboard the program prints an error message and then exits (returning
1). But since the keyboard doesn’t have <code>'\n'</code> if you were to 1). But since the keyboard doesn’t have <code>'\n'</code> if you were to
type a <code>'</code> and send a <code>'\n'</code> before the closing type a <code>'</code> and send a <code>'\n'</code> before the closing
<code>'</code> you might see something like:</p> <code>'</code> you might see something like:</p>
<div class="sourceCode" id="cb35"><pre <div class="sourceCode" id="cb36"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb35-1"><a href="#cb35-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="st">&#39;!!</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./weasel <span class="st">&#39;!!</span></span>
<span id="cb35-2"><a href="#cb35-2" aria-hidden="true" tabindex="-1"></a><span class="st">&gt; &#39;</span></span> <span id="cb36-2"><a href="#cb36-2" aria-hidden="true" tabindex="-1"></a><span class="st">&gt; &#39;</span></span>
<span id="cb35-3"><a href="#cb35-3" aria-hidden="true" tabindex="-1"></a></span> <span id="cb36-3"><a href="#cb36-3" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb35-4"><a href="#cb35-4" aria-hidden="true" tabindex="-1"></a><span class="st">&#39;</span></span> <span id="cb36-4"><a href="#cb36-4" aria-hidden="true" tabindex="-1"></a><span class="st">&#39;</span></span>
<span id="cb35-5"><a href="#cb35-5" aria-hidden="true" tabindex="-1"></a><span class="st">&#39;</span> not in keyboard <span class="st">&quot; !&quot;</span>#$<span class="op">&lt;</span>%:<span class="op">&gt;&amp;</span><span class="st">&#39;()*+,-./0123456789;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~&quot;</span></span></code></pre></div> <span id="cb36-5"><a href="#cb36-5" aria-hidden="true" tabindex="-1"></a><span class="st">&#39;</span> not in keyboard <span class="st">&quot; !&quot;</span>#$<span class="op">&lt;</span>%:<span class="op">&gt;&amp;</span><span class="st">&#39;()*+,-./0123456789;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~&quot;</span></span></code></pre></div>
<p>I showed that <code>'</code> is in the keyboard already; however the <p>I showed that <code>'</code> is in the keyboard already; however the
user sent a <code>\n</code> (hence the secondary prompt user sent a <code>\n</code> (hence the secondary prompt
<code>&gt;</code> on line two) before literally typing the closing <code>&gt;</code> on line two) before literally typing the closing
@@ -793,9 +829,9 @@ read.</p>
(like <code>S</code>) as well as some C keywords.</p></li> (like <code>S</code>) as well as some C keywords.</p></li>
<li><p>The way <code>main()</code> is declared is:</p></li> <li><p>The way <code>main()</code> is declared is:</p></li>
</ol> </ol>
<div class="sourceCode" id="cb36"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="co">/* Special C main() handler (encapsulation): */</span></span> <div class="sourceCode" id="cb37"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb37-1"><a href="#cb37-1" aria-hidden="true" tabindex="-1"></a><span class="co">/* Special C main() handler (encapsulation): */</span></span>
<span id="cb36-2"><a href="#cb36-2" aria-hidden="true" tabindex="-1"></a><span class="pp">#define r</span><span class="op">(</span><span class="pp">main</span><span class="op">)</span><span class="pp"> main</span></span> <span id="cb37-2"><a href="#cb37-2" aria-hidden="true" tabindex="-1"></a><span class="pp">#define r</span><span class="op">(</span><span class="pp">main</span><span class="op">)</span><span class="pp"> main</span></span>
<span id="cb36-3"><a href="#cb36-3" aria-hidden="true" tabindex="-1"></a>r<span class="op">(</span>k main<span class="op">(</span>k a<span class="op">,</span> E <span class="op">**</span>V<span class="op">))</span> <span class="op">{</span></span></code></pre></div> <span id="cb37-3"><a href="#cb37-3" aria-hidden="true" tabindex="-1"></a>r<span class="op">(</span>k main<span class="op">(</span>k a<span class="op">,</span> E <span class="op">**</span>V<span class="op">))</span> <span class="op">{</span></span></code></pre></div>
<pre><code>It appears to be recursively defined but is it? And is it truly</code></pre> <pre><code>It appears to be recursively defined but is it? And is it truly</code></pre>
<p>encapsulation? And is it executing code of any kind? It mightn’t seem <p>encapsulation? And is it executing code of any kind? It mightn’t seem
like it isn’t encapsulation and also isn’t executing code but assuming like it isn’t encapsulation and also isn’t executing code but assuming
@@ -852,18 +888,22 @@ wrong. Yes some of it might look like a blob but this is clearly false;
or misleading it should be made clear in the comments! :)</em></p> or misleading it should be made clear in the comments! :)</em></p>
<h2 id="how-to-build"><strong>5. <a name="build">How to <h2 id="how-to-build"><strong>5. <a name="build">How to
build</a></strong></h2> build</a></strong></h2>
<h3 id="s-and-n-constants"><a name="constants">S and N <h3 id="s-m-and-n-constants"><a name="constants">S, M and N
Constants</a></h3> Constants</a></h3>
<p>Skip to <a href="#compiling">Compilation</a>.</p> <p>Skip to <a href="#compiling">Compilation</a>.</p>
<p>These two <code>#define</code>d constants can be redefined at <p>There are three <code>#define</code>d constants that can be redefined
compilation to modify the behaviour of the program in a number of ways at compilation to modify the behaviour of the program in a number of
(see the <strong><a href="#compiling">Compilation</a></strong> ways (see the <strong><a href="#compiling">Compilation</a></strong>
subsection for example invocations). Both are capped to be no greater subsection for example invocations). Both are capped to be no greater
than <code>SIZE_MAX - 1</code>. This is handled by the C than <code>SIZE_MAX - 1</code> or whatever <code>M</code> (which can’t
preprocessor.</p> be lower than 100) is set to (maximum attempts before giving up). This
<p><code>S</code></p> is handled by the C preprocessor.</p>
<p>This determines the maximum size of the target string but it <ul>
<strong>must be at least 38</strong>; this is because <li><code>S</code></li>
</ul>
<p>The macro <code>S</code> (or <code>MAX_SIZE</code> in the Makefile)
is the maximum size of the target string but it <strong>must be at least
38</strong> (which is protected against in the code); this is because
<code>38 &gt;= 29</code> and because <code>38 &gt;= 29</code> and because
<code>strlen("METHINKS IT IS LIKE A WEASEL") == 28</code> (which is the <code>strlen("METHINKS IT IS LIKE A WEASEL") == 28</code> (which is the
default target string - it would hardly be an implementation of the default target string - it would hardly be an implementation of the
@@ -874,33 +914,58 @@ works</a></strong> and specifically an Easter egg I referenced there
(it’s <em>not the only Easter egg</em> but it’s the only Easter egg I (it’s <em>not the only Easter egg</em> but it’s the only Easter egg I
won’t spoil; yes this ironically and amusingly means I’ve left a rotten won’t spoil; yes this ironically and amusingly means I’ve left a rotten
egg somewhere!).</p> egg somewhere!).</p>
<p><code>N</code></p> <p>The Makefile simplifies how to reconfigure this value with the
<p>This is the number of offspring per generation. Anything less than 4 variable <code>MAX_SIZE</code>:</p>
will be set to 3 (that’s not a typo!) and this is part of an Easter <div class="sourceCode" id="cb39"><pre
egg.</p> class="sourceCode sh"><code class="sourceCode bash"><span id="cb39-1"><a href="#cb39-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber MAX_SIZE=55 all</span></code></pre></div>
<p>Be aware that depending on the size of <code>S</code> and <p>The next macro that can be reconfigured, <code>M</code> (or
<code>N</code> (individually and together) the program will use varying <code>MAX_ATTEMPTS</code> in the Makefile), is the maximum attempts
amounts of memory and the larger the values the more memory it’ll before giving up. This was added as another feature in 2024 but it was
require.</p> not made an alt version because there already is an alt version. This
macro allows for seeing what happens when reaching the maximum number
attempts without waiting for a very long time.</p>
<p>The Makefile simplifies how to reconfigure this value with the
variable <code>MAX_ATTEMPTS</code>:</p>
<div class="sourceCode" id="cb40"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb40-1"><a href="#cb40-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber MAX_ATTEMPTS=100 all</span></code></pre></div>
<p>The final macro, <code>N</code> (or <code>OFFSPRING</code> in the
Makefile), is the number of offspring per generation.</p>
<p>Anything less than 4 will be set to 3 (that’s not a typo!) and this
is part of an Easter egg.</p>
<p>Be aware that depending on the size of <code>S</code>
(<code>MAX_SIZE</code>) and <code>N</code> (<code>OFFSPRING</code>) both
individually and together the program will use varying amounts of memory
and the larger the values the more memory it’ll require.</p>
<p>The Makefile simplifies how to reconfigure this value with the
variable <code>OFFSPRING</code>:</p>
<div class="sourceCode" id="cb41"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb41-1"><a href="#cb41-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber OFFSPRING=55 all</span></code></pre></div>
<h3 id="compilation"><a name="compiling">Compilation</a></h3> <h3 id="compilation"><a name="compiling">Compilation</a></h3>
<p>Skip to <a href="#portability">Portability</a>.</p> <p>Skip to <a href="#portability">Portability</a>.</p>
<p>The following options <strong>must always be passed to the <p>The following options <strong>must always be passed to the
compiler:</strong></p> compiler:</strong></p>
<div class="sourceCode" id="cb38"><pre <div class="sourceCode" id="cb42"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb38-1"><a href="#cb38-1" aria-hidden="true" tabindex="-1"></a><span class="ex">-DQ=</span><span class="st">&#39;typedef&#39;</span> <span class="at">-D</span><span class="st">&#39;g(o)&#39;</span><span class="op">=</span><span class="st">&#39;goto o;&#39;</span> <span class="at">-D</span><span class="st">&#39;w(x)&#39;</span><span class="op">=</span><span class="st">&quot;x:&quot;</span> <span class="at">-D</span><span class="st">&#39;H(main)&#39;</span><span class="op">=</span><span class="st">&#39;r(main)&#39;</span></span></code></pre></div> class="sourceCode sh"><code class="sourceCode bash"><span id="cb42-1"><a href="#cb42-1" aria-hidden="true" tabindex="-1"></a><span class="ex">-DQ=</span><span class="st">&#39;typedef&#39;</span> <span class="at">-D</span><span class="st">&#39;g(o)&#39;</span><span class="op">=</span><span class="st">&#39;goto o;&#39;</span> <span class="at">-D</span><span class="st">&#39;w(x)&#39;</span><span class="op">=</span><span class="st">&quot;x:&quot;</span> <span class="at">-D</span><span class="st">&#39;H(main)&#39;</span><span class="op">=</span><span class="st">&#39;r(main)&#39;</span></span></code></pre></div>
<p>which running <code>make</code> will always do.</p>
<p>If you want to increase the number of offspring to <code>50</code> <p>If you want to increase the number of offspring to <code>50</code>
and the size of the chromosome to <code>75</code> you would pass to the (<code>N</code>) and the size of the chromosome to <code>75</code>
compiler:</p> (<code>S</code>) you would do:</p>
<div class="sourceCode" id="cb39"><pre <div class="sourceCode" id="cb43"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb39-1"><a href="#cb39-1" aria-hidden="true" tabindex="-1"></a><span class="ex">-DQ=</span><span class="st">&#39;typedef&#39;</span> <span class="at">-D</span><span class="st">&#39;g(o)&#39;</span><span class="op">=</span><span class="st">&#39;goto o;&#39;</span> <span class="at">-D</span><span class="st">&#39;w(x)&#39;</span><span class="op">=</span><span class="st">&quot;x:&quot;</span> <span class="at">-D</span><span class="st">&#39;H(main)&#39;</span><span class="op">=</span><span class="st">&#39;r(main)&#39;</span> <span class="at">-DN</span><span class="op">=</span>50 <span class="at">-DS</span><span class="op">=</span>75</span></code></pre></div> class="sourceCode sh"><code class="sourceCode bash"><span id="cb43-1"><a href="#cb43-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber OFFSPRING=50 MAX_SIZE=75 everything</span></code></pre></div>
<p>If you wanted to change <code>N</code> to <code>3</code>:</p> <p>If you wanted to change <code>N</code> to <code>3</code>:</p>
<div class="sourceCode" id="cb40"><pre <div class="sourceCode" id="cb44"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb40-1"><a href="#cb40-1" aria-hidden="true" tabindex="-1"></a><span class="ex">-DQ=</span><span class="st">&#39;typedef&#39;</span> <span class="at">-D</span><span class="st">&#39;g(o)&#39;</span><span class="op">=</span><span class="st">&#39;goto o;&#39;</span> <span class="at">-D</span><span class="st">&#39;w(x)&#39;</span><span class="op">=</span><span class="st">&quot;x:&quot;</span> <span class="at">-D</span><span class="st">&#39;H(main)&#39;</span><span class="op">=</span><span class="st">&#39;r(main)&#39;</span> <span class="at">-DN</span><span class="op">=</span>3</span></code></pre></div> class="sourceCode sh"><code class="sourceCode bash"><span id="cb44-1"><a href="#cb44-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber OFFSPRING=3 everything</span></code></pre></div>
<p>Remember that it cannot be less than <code>3</code>; <em>more <p>Remember that it cannot be less than <code>3</code>; <em>more
correctly if it’s less than 4 it’s redefined to 3</em> so you could have correctly if it’s less than 4 it’s redefined to 3</em> so you could have
passed in <code>-DN=2</code> and have the same result. Remember too that passed in <code>-DN=2</code> (or <code>MAX_SIZE=2</code>) and have the
<code>S</code> cannot be less than <code>38</code>. Both <code>S</code> same result. Remember too that <code>S</code> (<code>MAX_SIZE</code>)
and <code>N</code> are capped at <code>SIZE_MAX - 1</code>.</p> cannot be less than <code>38</code>. Both <code>S</code> and
<code>N</code> are capped at <code>SIZE_MAX - 1</code> or whatever
<code>M</code> (<code>MAX_ATTEMPTS</code>) is set to.</p>
<p>If you wanted to change the maximum number attempts to 100 you could
do:</p>
<div class="sourceCode" id="cb45"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb45-1"><a href="#cb45-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber MAX_ATTEMPTS=100 everything</span></code></pre></div>
<h3 id="portability"><a name="portability">Portability</a></h3> <h3 id="portability"><a name="portability">Portability</a></h3>
<p>Skip to <a href="#bugs">An aside on bugs</a>.</p> <p>Skip to <a href="#bugs">An aside on bugs</a>.</p>
<p>This entry requires at least C99 even if you translate digraphs. The <p>This entry requires at least C99 even if you translate digraphs. The
@@ -911,48 +976,48 @@ some data type sizes will be smaller and this I believe includes
issues (if any) either but I have no way to test this. Originally I issues (if any) either but I have no way to test this. Originally I
tested it on the below systems.</p> tested it on the below systems.</p>
<h4 id="fedora-26">Fedora 26:</h4> <h4 id="fedora-26">Fedora 26:</h4>
<div class="sourceCode" id="cb41"><pre <div class="sourceCode" id="cb46"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb41-1"><a href="#cb41-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> clang <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb46-1"><a href="#cb46-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> clang <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span>
<span id="cb41-2"><a href="#cb41-2" aria-hidden="true" tabindex="-1"></a><span class="fu">clang</span> version 4.0.1 <span class="er">(</span><span class="ex">tags/RELEASE_401/final</span><span class="kw">)</span></span> <span id="cb46-2"><a href="#cb46-2" aria-hidden="true" tabindex="-1"></a><span class="fu">clang</span> version 4.0.1 <span class="er">(</span><span class="ex">tags/RELEASE_401/final</span><span class="kw">)</span></span>
<span id="cb41-3"><a href="#cb41-3" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> gcc <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span> <span id="cb46-3"><a href="#cb46-3" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> gcc <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span>
<span id="cb41-4"><a href="#cb41-4" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="er">(</span><span class="ex">GCC</span><span class="kw">)</span> <span class="ex">7.3.1</span> 20180130 <span class="er">(</span><span class="ex">Red</span> Hat 7.3.1-2<span class="kw">)</span></span> <span id="cb46-4"><a href="#cb46-4" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="er">(</span><span class="ex">GCC</span><span class="kw">)</span> <span class="ex">7.3.1</span> 20180130 <span class="er">(</span><span class="ex">Red</span> Hat 7.3.1-2<span class="kw">)</span></span>
<span id="cb41-5"><a href="#cb41-5" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> /lib64/libc-2.25.so <span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span><span class="kw">|</span><span class="fu">cut</span> <span class="at">-d</span><span class="st">&#39;,&#39;</span> <span class="at">-f1-1</span></span> <span id="cb46-5"><a href="#cb46-5" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> /lib64/libc-2.25.so <span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span><span class="kw">|</span><span class="fu">cut</span> <span class="at">-d</span><span class="st">&#39;,&#39;</span> <span class="at">-f1-1</span></span>
<span id="cb41-6"><a href="#cb41-6" aria-hidden="true" tabindex="-1"></a><span class="ex">GNU</span> C Library <span class="er">(</span><span class="ex">GNU</span> libc<span class="kw">)</span> <span class="ex">stable</span> release version 2.25</span> <span id="cb46-6"><a href="#cb46-6" aria-hidden="true" tabindex="-1"></a><span class="ex">GNU</span> C Library <span class="er">(</span><span class="ex">GNU</span> libc<span class="kw">)</span> <span class="ex">stable</span> release version 2.25</span>
<span id="cb41-7"><a href="#cb41-7" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> lscpu <span class="kw">|</span><span class="fu">grep</span> Endian</span> <span id="cb46-7"><a href="#cb46-7" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> lscpu <span class="kw">|</span><span class="fu">grep</span> Endian</span>
<span id="cb41-8"><a href="#cb41-8" aria-hidden="true" tabindex="-1"></a><span class="ex">Byte</span> Order: Little Endian</span></code></pre></div> <span id="cb46-8"><a href="#cb46-8" aria-hidden="true" tabindex="-1"></a><span class="ex">Byte</span> Order: Little Endian</span></code></pre></div>
<h4 id="centos-linux-release-7.4.1708-core">CentOS Linux release <h4 id="centos-linux-release-7.4.1708-core">CentOS Linux release
7.4.1708 (Core)</h4> 7.4.1708 (Core)</h4>
<div class="sourceCode" id="cb42"><pre <div class="sourceCode" id="cb47"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb42-1"><a href="#cb42-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> clang <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> clang <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span>
<span id="cb42-2"><a href="#cb42-2" aria-hidden="true" tabindex="-1"></a><span class="fu">clang</span> version 3.4.2 <span class="er">(</span><span class="ex">tags/RELEASE_34/dot2-final</span><span class="kw">)</span></span> <span id="cb47-2"><a href="#cb47-2" aria-hidden="true" tabindex="-1"></a><span class="fu">clang</span> version 3.4.2 <span class="er">(</span><span class="ex">tags/RELEASE_34/dot2-final</span><span class="kw">)</span></span>
<span id="cb42-3"><a href="#cb42-3" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> gcc <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span> <span id="cb47-3"><a href="#cb47-3" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> gcc <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span>
<span id="cb42-4"><a href="#cb42-4" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="er">(</span><span class="ex">GCC</span><span class="kw">)</span> <span class="ex">4.8.5</span> 20150623 <span class="er">(</span><span class="ex">Red</span> Hat 4.8.5-16<span class="kw">)</span></span> <span id="cb47-4"><a href="#cb47-4" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="er">(</span><span class="ex">GCC</span><span class="kw">)</span> <span class="ex">4.8.5</span> 20150623 <span class="er">(</span><span class="ex">Red</span> Hat 4.8.5-16<span class="kw">)</span></span>
<span id="cb42-5"><a href="#cb42-5" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> /lib64/libc-2.17.so <span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span> <span class="kw">|</span><span class="fu">cut</span> <span class="at">-d,</span> <span class="at">-f1-1</span></span> <span id="cb47-5"><a href="#cb47-5" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> /lib64/libc-2.17.so <span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span> <span class="kw">|</span><span class="fu">cut</span> <span class="at">-d,</span> <span class="at">-f1-1</span></span>
<span id="cb42-6"><a href="#cb42-6" aria-hidden="true" tabindex="-1"></a><span class="ex">GNU</span> C Library <span class="er">(</span><span class="ex">GNU</span> libc<span class="kw">)</span> <span class="ex">stable</span> release version 2.17</span> <span id="cb47-6"><a href="#cb47-6" aria-hidden="true" tabindex="-1"></a><span class="ex">GNU</span> C Library <span class="er">(</span><span class="ex">GNU</span> libc<span class="kw">)</span> <span class="ex">stable</span> release version 2.17</span>
<span id="cb42-7"><a href="#cb42-7" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> lscpu <span class="kw">|</span><span class="fu">grep</span> Endian</span> <span id="cb47-7"><a href="#cb47-7" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> lscpu <span class="kw">|</span><span class="fu">grep</span> Endian</span>
<span id="cb42-8"><a href="#cb42-8" aria-hidden="true" tabindex="-1"></a><span class="ex">Byte</span> Order: Little Endian</span></code></pre></div> <span id="cb47-8"><a href="#cb47-8" aria-hidden="true" tabindex="-1"></a><span class="ex">Byte</span> Order: Little Endian</span></code></pre></div>
<h4 id="fedora-27">Fedora 27:</h4> <h4 id="fedora-27">Fedora 27:</h4>
<div class="sourceCode" id="cb43"><pre <div class="sourceCode" id="cb48"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb43-1"><a href="#cb43-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> clang <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb48-1"><a href="#cb48-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> clang <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span>
<span id="cb43-2"><a href="#cb43-2" aria-hidden="true" tabindex="-1"></a><span class="fu">clang</span> version 5.0.1 <span class="er">(</span><span class="ex">tags/RELEASE_501/final</span><span class="kw">)</span></span> <span id="cb48-2"><a href="#cb48-2" aria-hidden="true" tabindex="-1"></a><span class="fu">clang</span> version 5.0.1 <span class="er">(</span><span class="ex">tags/RELEASE_501/final</span><span class="kw">)</span></span>
<span id="cb43-3"><a href="#cb43-3" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> gcc <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span> <span id="cb48-3"><a href="#cb48-3" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> gcc <span class="at">--version</span><span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span></span>
<span id="cb43-4"><a href="#cb43-4" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="er">(</span><span class="ex">GCC</span><span class="kw">)</span> <span class="ex">7.3.1</span> 20180303 <span class="er">(</span><span class="ex">Red</span> Hat 7.3.1-5<span class="kw">)</span></span> <span id="cb48-4"><a href="#cb48-4" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="er">(</span><span class="ex">GCC</span><span class="kw">)</span> <span class="ex">7.3.1</span> 20180303 <span class="er">(</span><span class="ex">Red</span> Hat 7.3.1-5<span class="kw">)</span></span>
<span id="cb43-5"><a href="#cb43-5" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> /lib64/libc-2.26.so <span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span><span class="kw">|</span><span class="fu">cut</span> <span class="at">-d,</span> <span class="at">-f1-1</span></span> <span id="cb48-5"><a href="#cb48-5" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> /lib64/libc-2.26.so <span class="kw">|</span><span class="fu">head</span> <span class="at">-n1</span><span class="kw">|</span><span class="fu">cut</span> <span class="at">-d,</span> <span class="at">-f1-1</span></span>
<span id="cb43-6"><a href="#cb43-6" aria-hidden="true" tabindex="-1"></a><span class="ex">GNU</span> C Library <span class="er">(</span><span class="ex">GNU</span> libc<span class="kw">)</span> <span class="ex">stable</span> release version 2.26</span> <span id="cb48-6"><a href="#cb48-6" aria-hidden="true" tabindex="-1"></a><span class="ex">GNU</span> C Library <span class="er">(</span><span class="ex">GNU</span> libc<span class="kw">)</span> <span class="ex">stable</span> release version 2.26</span>
<span id="cb43-7"><a href="#cb43-7" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> lscpu <span class="kw">|</span><span class="fu">grep</span> Endian</span> <span id="cb48-7"><a href="#cb48-7" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> lscpu <span class="kw">|</span><span class="fu">grep</span> Endian</span>
<span id="cb43-8"><a href="#cb43-8" aria-hidden="true" tabindex="-1"></a><span class="ex">Byte</span> Order: Little Endian</span></code></pre></div> <span id="cb48-8"><a href="#cb48-8" aria-hidden="true" tabindex="-1"></a><span class="ex">Byte</span> Order: Little Endian</span></code></pre></div>
<h4 id="macos">macOS:</h4> <h4 id="macos">macOS:</h4>
<p>System Version: macOS 10.13.4 (17E199) Kernel Version: Darwin <p>System Version: macOS 10.13.4 (17E199) Kernel Version: Darwin
17.5.0</p> 17.5.0</p>
<div class="sourceCode" id="cb44"><pre <div class="sourceCode" id="cb49"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb44-1"><a href="#cb44-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> gcc <span class="at">-v</span></span> class="sourceCode sh"><code class="sourceCode bash"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> gcc <span class="at">-v</span></span>
<span id="cb44-2"><a href="#cb44-2" aria-hidden="true" tabindex="-1"></a><span class="ex">Configured</span> with: <span class="at">--prefix</span><span class="op">=</span>/Library/Developer/CommandLineTools/usr <span class="at">--with-gxx-include-dir</span><span class="op">=</span>/usr/include/c++/4.2.1</span> <span id="cb49-2"><a href="#cb49-2" aria-hidden="true" tabindex="-1"></a><span class="ex">Configured</span> with: <span class="at">--prefix</span><span class="op">=</span>/Library/Developer/CommandLineTools/usr <span class="at">--with-gxx-include-dir</span><span class="op">=</span>/usr/include/c++/4.2.1</span>
<span id="cb44-3"><a href="#cb44-3" aria-hidden="true" tabindex="-1"></a><span class="ex">Apple</span> LLVM version 9.1.0 <span class="er">(</span><span class="ex">clang-902.0.39.1</span><span class="kw">)</span></span> <span id="cb49-3"><a href="#cb49-3" aria-hidden="true" tabindex="-1"></a><span class="ex">Apple</span> LLVM version 9.1.0 <span class="er">(</span><span class="ex">clang-902.0.39.1</span><span class="kw">)</span></span>
<span id="cb44-4"><a href="#cb44-4" aria-hidden="true" tabindex="-1"></a><span class="ex">Target:</span> x86_64-apple-darwin17.5.0</span> <span id="cb49-4"><a href="#cb49-4" aria-hidden="true" tabindex="-1"></a><span class="ex">Target:</span> x86_64-apple-darwin17.5.0</span>
<span id="cb44-5"><a href="#cb44-5" aria-hidden="true" tabindex="-1"></a><span class="ex">Thread</span> model: posix</span> <span id="cb49-5"><a href="#cb49-5" aria-hidden="true" tabindex="-1"></a><span class="ex">Thread</span> model: posix</span>
<span id="cb44-6"><a href="#cb44-6" aria-hidden="true" tabindex="-1"></a><span class="ex">InstalledDir:</span> /Library/Developer/CommandLineTools/usr/bin</span> <span id="cb49-6"><a href="#cb49-6" aria-hidden="true" tabindex="-1"></a><span class="ex">InstalledDir:</span> /Library/Developer/CommandLineTools/usr/bin</span>
<span id="cb44-7"><a href="#cb44-7" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> uname <span class="at">-srmv</span></span> <span id="cb49-7"><a href="#cb49-7" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> uname <span class="at">-srmv</span></span>
<span id="cb44-8"><a href="#cb44-8" aria-hidden="true" tabindex="-1"></a><span class="ex">Darwin</span> 17.5.0 Darwin Kernel Version 17.5.0: Mon Mar 5 22:24:32 PST 2018<span class="kw">;</span> <span class="ex">root:xnu-4570.51.1~1/RELEASE_X86_64</span> x86_64</span></code></pre></div> <span id="cb49-8"><a href="#cb49-8" aria-hidden="true" tabindex="-1"></a><span class="ex">Darwin</span> 17.5.0 Darwin Kernel Version 17.5.0: Mon Mar 5 22:24:32 PST 2018<span class="kw">;</span> <span class="ex">root:xnu-4570.51.1~1/RELEASE_X86_64</span> x86_64</span></code></pre></div>
<h4 id="an-aside"><a name="bugs">An aside</a></h4> <h4 id="an-aside"><a name="bugs">An aside</a></h4>
<p>Skip to <a href="#rpm">Installing</a>.</p> <p>Skip to <a href="#rpm">Installing</a>.</p>
<p>Any undocumented bugs are the result of insolent monkeys tampering <p>Any undocumented bugs are the result of insolent monkeys tampering
@@ -1082,8 +1147,8 @@ we quickly added additional cryptic features and evolved into B, BCPL,
and finally C. We stopped when we got a clean compile on the following and finally C. We stopped when we got a clean compile on the following
syntax:</p> syntax:</p>
</blockquote> </blockquote>
<div class="sourceCode" id="cb45"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb45-1"><a href="#cb45-1" aria-hidden="true" tabindex="-1"></a><span class="cf">for</span><span class="op">(;</span>P<span class="op">(</span><span class="st">&quot;</span><span class="sc">\n</span><span class="st">&quot;</span><span class="op">),</span>R<span class="op">=;</span>P<span class="op">(</span><span class="st">&quot;|&quot;</span><span class="op">))</span><span class="cf">for</span><span class="op">(</span>e<span class="op">=</span>C<span class="op">;</span>e<span class="op">=</span>P<span class="op">(</span><span class="st">&quot;_&quot;</span><span class="op">+(*</span>u<span class="op">++/</span></span> <div class="sourceCode" id="cb50"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb50-1"><a href="#cb50-1" aria-hidden="true" tabindex="-1"></a><span class="cf">for</span><span class="op">(;</span>P<span class="op">(</span><span class="st">&quot;</span><span class="sc">\n</span><span class="st">&quot;</span><span class="op">),</span>R<span class="op">=;</span>P<span class="op">(</span><span class="st">&quot;|&quot;</span><span class="op">))</span><span class="cf">for</span><span class="op">(</span>e<span class="op">=</span>C<span class="op">;</span>e<span class="op">=</span>P<span class="op">(</span><span class="st">&quot;_&quot;</span><span class="op">+(*</span>u<span class="op">++/</span></span>
<span id="cb45-2"><a href="#cb45-2" aria-hidden="true" tabindex="-1"></a><span class="dv">8</span><span class="op">)%</span><span class="dv">2</span><span class="op">))</span>P<span class="op">(</span><span class="st">&quot;|&quot;</span><span class="op">+(*</span>u<span class="op">/</span><span class="dv">4</span><span class="op">)%</span><span class="dv">2</span><span class="op">);</span></span></code></pre></div> <span id="cb50-2"><a href="#cb50-2" aria-hidden="true" tabindex="-1"></a><span class="dv">8</span><span class="op">)%</span><span class="dv">2</span><span class="op">))</span>P<span class="op">(</span><span class="st">&quot;|&quot;</span><span class="op">+(*</span>u<span class="op">/</span><span class="dv">4</span><span class="op">)%</span><span class="dv">2</span><span class="op">);</span></span></code></pre></div>
<blockquote> <blockquote>
<p>“To think that modern programmers would try to use a language that <p>“To think that modern programmers would try to use a language that
allowed such a statement was beyond our comprehension! We actually allowed such a statement was beyond our comprehension! We actually
@@ -1129,8 +1194,8 @@ since he was part of its creation I don’t think it’s a bad thing;
<strong>on the contrary it makes all of us C programmers even more <strong>on the contrary it makes all of us C programmers even more
talented! :)</strong> I do wonder if he tested that bit of C code talented! :)</strong> I do wonder if he tested that bit of C code
though:</p> though:</p>
<div class="sourceCode" id="cb46"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb46-1"><a href="#cb46-1" aria-hidden="true" tabindex="-1"></a><span class="cf">for</span><span class="op">(;</span>P<span class="op">(</span><span class="st">&quot;</span><span class="sc">\n</span><span class="st">&quot;</span><span class="op">),</span>R<span class="op">=;</span>P<span class="op">(</span><span class="st">&quot;|&quot;</span><span class="op">))</span><span class="cf">for</span><span class="op">(</span>e<span class="op">=</span>C<span class="op">;</span>e<span class="op">=</span>P<span class="op">(</span><span class="st">&quot;_&quot;</span><span class="op">+(*</span>u<span class="op">++/</span></span> <div class="sourceCode" id="cb51"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb51-1"><a href="#cb51-1" aria-hidden="true" tabindex="-1"></a><span class="cf">for</span><span class="op">(;</span>P<span class="op">(</span><span class="st">&quot;</span><span class="sc">\n</span><span class="st">&quot;</span><span class="op">),</span>R<span class="op">=;</span>P<span class="op">(</span><span class="st">&quot;|&quot;</span><span class="op">))</span><span class="cf">for</span><span class="op">(</span>e<span class="op">=</span>C<span class="op">;</span>e<span class="op">=</span>P<span class="op">(</span><span class="st">&quot;_&quot;</span><span class="op">+(*</span>u<span class="op">++/</span></span>
<span id="cb46-2"><a href="#cb46-2" aria-hidden="true" tabindex="-1"></a><span class="dv">8</span><span class="op">)%</span><span class="dv">2</span><span class="op">))</span>P<span class="op">(</span><span class="st">&quot;|&quot;</span><span class="op">+(*</span>u<span class="op">/</span><span class="dv">4</span><span class="op">)%</span><span class="dv">2</span><span class="op">);</span></span></code></pre></div> <span id="cb51-2"><a href="#cb51-2" aria-hidden="true" tabindex="-1"></a><span class="dv">8</span><span class="op">)%</span><span class="dv">2</span><span class="op">))</span>P<span class="op">(</span><span class="st">&quot;|&quot;</span><span class="op">+(*</span>u<span class="op">/</span><span class="dv">4</span><span class="op">)%</span><span class="dv">2</span><span class="op">);</span></span></code></pre></div>
<p><br /> <p><br />
How is <code>R=;</code> valid? Since I don’t have the context maybe How is <code>R=;</code> valid? Since I don’t have the context maybe
there is something I’m missing but either way it’s a funny piece. It there is something I’m missing but either way it’s a funny piece. It
@@ -1232,6 +1297,18 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/pro
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/FILES">FILES</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/FILES">FILES</a>
- information about various files</li> - information about various files</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/id.alt.sh">id.alt.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/id.sh">id.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/monkey-words.alt.sh">monkey-words.alt.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/monkey-words.sh">monkey-words.sh</a>
- how to run</li>
<li><a href="rpm.html">rpm.html</a> - about forming the rpm</li> <li><a href="rpm.html">rpm.html</a> - about forming the rpm</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/test.sh">test.sh</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/test.sh">test.sh</a>
+3
View File
@@ -322,6 +322,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/de.sh"
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/en.sh">en.sh</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/en.sh">en.sh</a>
- run with English data</li> - run with English data</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/fr.alt.sh">fr.alt.sh</a>
- how to run alternative code in French</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/fr.sh">fr.sh</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/fr.sh">fr.sh</a>
- run with French data</li> - run with French data</li>
<li><a <li><a
+8 -7
View File
@@ -121,13 +121,11 @@ Location: <a href="/temp-test-ioccc/location.html#AU">AU</a></p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> infile.wav outfile.wav</span></code></pre></div> <div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> infile.wav outfile.wav</span></code></pre></div>
<h2 id="try">Try:</h2> <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">play</span> MonodyVocals.wav</span> <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>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> MonodyVocals.wav</span> <p>NOTE: <code>play</code>, which <a href="try.sh">try.sh</a> uses,
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="ex">play</span> out.wav</span></code></pre></div> comes from SoX, the Swiss Army Knife of sound processing programs. If
<p>NOTE: <code>play</code> comes from SoX, the Swiss Army Knife of sound you don’t have this installed, see <a href="/faq.md#faq3_10">FAQ 3.10:
processing programs. If you don’t have this installed, see <a How do I compile and use an IOCCC winner that requires sound</a>.</p>
href="/faq.md#faq3_10">FAQ 3.10: How do I compile and use an IOCCC
winner that requires sound</a>.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Do you need to pretend enjoying a more spacious living environment <p>Do you need to pretend enjoying a more spacious living environment
than you actually are in, or the great outdoors with mountains and than you actually are in, or the great outdoors with mountains and
@@ -371,6 +369,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/giles/prog.o
- original source</li> - original source</li>
<li><a href="BlockDiagram.png">BlockDiagram.png</a> - reverb algorithm <li><a href="BlockDiagram.png">BlockDiagram.png</a> - reverb algorithm
block-diagram of internal structure</li> block-diagram of internal structure</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/giles/try.sh">try.sh</a>
- how to run</li>
<li><a href="MonodyVocals.wav">MonodyVocals.wav</a> - Monody by <li><a href="MonodyVocals.wav">MonodyVocals.wav</a> - Monody by
TheFatRat featuring Laura Brehm</li> TheFatRat featuring Laura Brehm</li>
<li><a href="2019_giles.tar.bz2">2019_giles.tar.bz2</a> - download <li><a href="2019_giles.tar.bz2">2019_giles.tar.bz2</a> - download
+7 -1
View File
@@ -133,6 +133,9 @@ Unicode letters.</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div> <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<h3 id="alternate-use">Alternate use:</h3> <h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p> <p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h3 id="alternate-try">Alternate try:</h3>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./run_clock.alt</span></span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a><span class="co"># And watch closely for 15-20 seconds</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>You may be tempted to use a mirror. Resist the temptation! Try <p>You may be tempted to use a mirror. Resist the temptation! Try
figuring out how the clock hands are drawn. Can you change the program figuring out how the clock hands are drawn. Can you change the program
@@ -142,7 +145,7 @@ second hand?</p>
your perception of time might depend on what time it is.</p> your perception of time might depend on what time it is.</p>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
<p>Prepare a mirror!</p> <p>Prepare a mirror!</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clock</span></code></pre></div> <div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clock</span></code></pre></div>
<p>Note: You need to recompile it each run.</p> <p>Note: You need to recompile it each run.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 <h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2> License:</h2>
@@ -172,6 +175,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh3/prog.
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh3/prog.orig.c">prog.orig.c</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh3/prog.orig.c">prog.orig.c</a>
- original source</li> - original source</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh3/run_clock.alt.sh">run_clock.alt.sh</a>
- how to run alternate code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh3/run_clock.sh">run_clock.sh</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh3/run_clock.sh">run_clock.sh</a>
- how to run</li> - how to run</li>
<li><a href="2020_endoh3.tar.bz2">2020_endoh3.tar.bz2</a> - download <li><a href="2020_endoh3.tar.bz2">2020_endoh3.tar.bz2</a> - download
-2
View File
@@ -752,8 +752,6 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson1/pl
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson1/snake-colours.sh">snake-colours.sh</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson1/snake-colours.sh">snake-colours.sh</a>
- script to reset - preset colors</li> - script to reset - preset colors</li>
<li><a href="ioccc-and-chocolate.pdf">ioccc-and-chocolate.pdf</a> -
IOCCC publications</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson1/prog.2.c">prog.2.c</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson1/prog.2.c">prog.2.c</a>
- source with more digraphs</li> - source with more digraphs</li>
-2
View File
@@ -988,8 +988,6 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/tr
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/enigma.1">enigma.1</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/enigma.1">enigma.1</a>
- Enigma simulator man page</li> - Enigma simulator man page</li>
<li><a href="ioccc-and-chocolate.pdf">ioccc-and-chocolate.pdf</a> -
IOCCC publications</li>
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/key.txt">key.txt</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/key.txt">key.txt</a>
- key to decipher or encipher IOCCC</li> - key to decipher or encipher IOCCC</li>
+6 -5
View File
@@ -127,11 +127,9 @@ href="/bugs.md#2020-otterness">2020 otterness in bugs.md</a>.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</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">./prog</span></span></code></pre></div> <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">./prog</span></span></code></pre></div>
<h2 id="try">Try:</h2> <h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op">&lt;</span> cvikl.mid <span class="op">&gt;</span> output.mid</span> <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="co"># Play output.mid with your favorite player</span></span> <p>Now play <code>output.mid</code> and <code>output2.mid</code> in an
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a></span> audio player that can play MIDI files.</p>
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op">&lt;</span> entertainer.mid <span class="op">&gt;</span> output2.mid</span>
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a><span class="co"># Play output2.mid with your favorite player</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>In an entry that boasts not using literals, one would expect to see <p>In an entry that boasts not using literals, one would expect to see
straightforward ways to produce small integers like straightforward ways to produce small integers like
@@ -264,6 +262,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/otterness/Ma
<li><a <li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/otterness/prog.orig.c">prog.orig.c</a> href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/otterness/prog.orig.c">prog.orig.c</a>
- original source</li> - original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/otterness/try.sh">try.sh</a>
- how to run</li>
<li><a href="cvikl.mid">cvikl.mid</a> - sample input sound</li> <li><a href="cvikl.mid">cvikl.mid</a> - sample input sound</li>
<li><a href="entertainer.mid">entertainer.mid</a> - sample input <li><a href="entertainer.mid">entertainer.mid</a> - sample input
sound</li> sound</li>