add rules, guidelines, fix HTML code, move compressed tarball in inventory

By changing the _inventory_order_ of the compressed tarball from
**100000** to **1415926535**, the compressed tarball will land at
the top of the secondary file list and remain still easy to find.

Updated the `manifest.numbers` spreadsheet and rebuilt
the `.entry.json` files.

Added `next/` directory to hold the next IOCCC rules and guidelines.
Added `next/README.md` that `bin/gen-top-html.sh` uses to form
the `next/index.html` file.

Added _Rules and Guidelines_ link to the sidenav bar to link to the
`next/index.html` file.

Added _IOCCC Rules_ as `next/rules.md` that `bin/gen-top-html.sh`
uses to form the `next/rules.html` file.

Added _IOCCC Guidelines_ as `next/guidelines.md` that `bin/gen-top-html.sh`
uses to form the `next/guidelines.html` file.

Changed `bin/gen-top-html.sh` VERSION from "1.2.4 2024-04-13"
to "1.3 2024-04-14".

Prevent `pandoc(1)` from interpreting the commented out language
of a markdown code block as a code class.  So a markdown such as:

````
``` <!---sh-->
...
```
````

that produced HTML of the form:

```html
<pre class="&lt;!---sh--&gt;"><code>...</code></pre>
```

will now produce HTML of the form:

```html
<pre><code>...</code></pre>
```

NOTE: Before when the language of a markdown code block
was not commented, the HTML produced by `pandoc(1)` was
oddly indented with extra whitespace on the first line
of the code block.  While commenting out the language
of the code block removed some of the odd intending,
it left a weird class in the HTML pre block that
surrounded the HTML code block.  This hack prevents
`pandoc(1)` from assigning a class to the HTML pre block.

Changed `in/md2html.sh` VERSION from "1.2.1 2024-04-13"
to "1.3 2024-04-14".

Added `make gen_sitemap` to end of both `make www` and `make
quick_www` in top level Makefile.

Ram `make www` to test under macOS and to perform the above.

**IMPORTANT NOTE**: The current `next/rules.md` and `next/guidelines.md`
are simply the 2020 IOCCC Rules and Guidelines converted into
markdown form.  There are **NOT** the Rules and Guidelines that
will be used the IOCCC MOCK, nor the next IOCCC.

TODO: Improve the `bin/gen-status.sh` tool to modify the top of the
      `next/rules.md` and `next/guidelines.md` files to keep them
      in sync with the _contest_status_ as found in `status.json`.

TODO: Improve the look and feel of the `next/rules.md` and
      `next/guidelines.md` markdown files.
This commit is contained in:
Landon Curt Noll committed 2024-04-14 16:54:24 -07:00
1 parent a672335d2d
commit 518a6336d0
734 files changed
+7919 -4119

No files matched your search

+1 -1
View File
@@ -123,7 +123,7 @@
},
{
"file_path" : "2015_burton.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+11 -10
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,25 +142,25 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog &quot;expression&quot;</code></pre>
<pre><code> ./prog &quot;expression&quot;</code></pre>
<p>or:</p>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<pre><code> ./prog</code></pre>
<p>Type in expressions on standard input.</p>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<p>Notice how the script reads in from a file. If you type just:</p>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<pre><code> ./prog</code></pre>
<p>it will prompt you in the same way. Send ctrl-c to exit.</p>
<p>Finally, if you wish to read the man page:</p>
<pre class="&lt;!---sh--&gt;"><code> man ./calc.1</code></pre>
<pre><code> man ./calc.1</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<p>An alternate version of this entry, <a href="prog.alt.c">prog.alt.c</a>, is provided.
This alternate code is discussed in the “prog.c vs prog.alt.c” section of the
author’s remarks below.</p>
<h3 id="alternate-build">Alternate build:</h3>
<pre class="&lt;!---sh--&gt;"><code> make alt</code></pre>
<pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
@@ -189,7 +190,7 @@ corrected by adding <code>-fsigned-char</code> to the compile line.</p>
<p>Yes, this is another calculator program.</p>
<p>However, unlike any other calculator source code the author is aware of,
this one contains no digits. At all. Anywhere. As in</p>
<pre class="&lt;!---sh--&gt;"><code> grep &#39;[0-9]&#39; prog.c || echo no digits!</code></pre>
<pre><code> grep &#39;[0-9]&#39; prog.c || echo no digits!</code></pre>
<p>Nor are the digits simply obfuscated. There are no character constants. There
is only one single, short string, and it does not contain any obfuscated digits.
And yet the output is in decimal and hexadecimal, and it accepts octal, decimal,
@@ -265,7 +266,7 @@ To stifle these complaints:</p>
<h3 id="test-suite">Test Suite:</h3>
<p>If the program name begins with an <code>e</code>, it echoes <code>stdin</code> to <code>stdout</code>.
This allows for a convenient test suite:</p>
<pre class="&lt;!---sh--&gt;"><code> ln -sf prog eprog
<pre><code> ln -sf prog eprog
PATH=. eprog &lt; test.in | diff - test.out</code></pre>
<h3 id="spoilers">Spoilers:</h3>
<p>If you do not want to puzzle out how it works, see <a href="spoilers.html">spoilers.html</a>.</p>
@@ -306,10 +307,10 @@ This allows for a convenient test suite:</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/test.out">test.out</a> - test suite comparison data</li>
<li><a href="spoilers.html">spoilers.html</a> - SPOILER WARNING</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/src.doc.txt">src.doc.txt</a> - SPOILER WARNING hints about the source</li>
<li><a href="2015_burton.tar.bz2">2015_burton.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_burton.tar.bz2">2015_burton.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1
View File
@@ -83,6 +83,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
+1
View File
@@ -83,6 +83,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
+1 -1
View File
@@ -43,7 +43,7 @@
},
{
"file_path" : "2015_dogon.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+8 -7
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,19 +142,19 @@ Location: <a href="../../location.html#IL">IL</a> - <em>State of Israel</em> (<e
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<p>To change the dimensions you can use the <code>WIDTH</code> and <code>HEIGHT</code> variables when
compiling (default 1024 x 800):</p>
<pre class="&lt;!---sh--&gt;"><code> make clobber WIDTH=640 HEIGHT=480</code></pre>
<pre><code> make clobber WIDTH=640 HEIGHT=480</code></pre>
<p>to make the game 640 x 480. Obviously changing it to non numbers or negative
numbers or too large numbers will cause problems.</p>
<p>There is an alternate version that is based on the author’s suggestion to change
a value in order to see a bug that they avoided in their entry. See <a href="#alternate-code">Alternate
code</a> below.</p>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<pre><code> ./prog</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<pre><code> ./prog</code></pre>
<p>Press and hold the Left Arrow key until you turn 90-degrees to the left.</p>
<p>When you see a long tunnel, press the function key F2.</p>
<p>Use the Up, Down, Left and Right keys to change your path.</p>
@@ -176,7 +177,7 @@ again.</p>
direction of the main tunnel.</code></pre>
<p>This alt version does this for you.</p>
<h3 id="alternate-build">Alternate build:</h3>
<pre class="&lt;!---sh--&gt;"><code> make alt</code></pre>
<pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h3 id="alternate-try">Alternate try:</h3>
@@ -246,7 +247,7 @@ important support of up to 32 function keys keyboards without spilling over the
size limit, and allows us to use such fun expression for arrow view control as
the following:</li>
</ul>
<pre class="&lt;!---c--&gt;"><code> *(a&amp;1?&amp;C:&amp;B)-=(.05 -a/2%2*.1)*!(a-1&amp;4092^3920)</code></pre>
<pre><code> *(a&amp;1?&amp;C:&amp;B)-=(.05 -a/2%2*.1)*!(a-1&amp;4092^3920)</code></pre>
<h3 id="precision-issues">Precision issues:</h3>
<p>The entry, on purpose, (see the section about SIMD below) does not use enough
bits of precision, so sometimes the ray will miss the intersection of two voxel
@@ -322,10 +323,10 @@ reordered as RBG.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/dogon/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/dogon/prog.alt.c">prog.alt.c</a> - alternative source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/dogon/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="2015_dogon.tar.bz2">2015_dogon.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_dogon.tar.bz2">2015_dogon.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/dogon/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/dogon/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -67,7 +67,7 @@
},
{
"file_path" : "2015_duble.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+12 -11
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,13 +142,13 @@ Location: <a href="../../location.html#FR">FR</a> - <em>French Republic</em> (<e
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<p>There is an alternate version of this entry, discussed in the author’s remarks.
See <a href="#alternate-code">Alternate code</a> below.</p>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> echo Some text | ./prog</code></pre>
<pre><code> echo Some text | ./prog</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<p>As the script says if you want to move to the next command at any point
(lorem-ipsum.txt takes a while to print in particular) you may do so by hitting
ctrl-c/sending intr.</p>
@@ -155,7 +156,7 @@ ctrl-c/sending intr.</p>
<p>This alternate code, provided by the author, is discussed in more detail by the
author in the ‘<a href="prog.c">prog.c</a> vs <a href="prog.alt.c">prog.alt.c</a>’ section of their remarks.</p>
<h3 id="alternate-build">Alternate build:</h3>
<pre class="&lt;!---sh--&gt;"><code> make alt</code></pre>
<pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
@@ -181,9 +182,9 @@ with other compilers or optimization levels). These have been fixed in
been shortened in this file.</p>
<h3 id="how-to-build">How to build</h3>
<p>If you have <code>clang</code>:</p>
<pre class="&lt;!---sh--&gt;"><code> CC=clang make -e</code></pre>
<pre><code> CC=clang make -e</code></pre>
<p>Otherwise (gcc):</p>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<p>(You will get a few warnings in this case.)</p>
<h3 id="how-to-use-it">How to use it</h3>
<p>You need a terminal configured to handle a <em>UTF-8</em> encoding and a font including
@@ -196,13 +197,13 @@ configuration was needed.</p>
<p>I also tested it on FreeBSD 9.3 32bits (font and encoding configuration was
needed in this case).</p>
<h4 id="basic-mode">Basic mode:</h4>
<pre class="&lt;!---sh--&gt;"><code> $ echo &#39;I am testing this thing.&#39; | ./prog
<pre><code> $ echo &#39;I am testing this thing.&#39; | ./prog
[... rendering ...]
$ ./prog &lt; lorem-ipsum.txt
[... rendering ...]</code></pre>
<h4 id="interactive-mode">Interactive mode:</h4>
<pre class="&lt;!---sh--&gt;"><code> $ ./prog
<pre><code> $ ./prog
&gt; hello world!!!
[... rendering ...]
&gt;</code></pre>
@@ -255,13 +256,13 @@ could still happen in case of long words.</p>
<p>Given the limited set of characters handled, the program is mostly limited to
simple text documents.</p>
<p>Thus, if you try for example:</p>
<pre class="&lt;!---sh--&gt;"><code> $ ./prog &lt; prog.c</code></pre>
<pre><code> $ ./prog &lt; prog.c</code></pre>
<p>You will not get something that looks like C code. (but you can still try, if
you are curious. :)</p>
<h4 id="a-draft-mode">A ‘draft’ mode</h4>
<p>Defining an environment variable called <code>DRAFT</code> will enable the ‘draft-mode’.
Try for example:</p>
<pre class="&lt;!---sh--&gt;"><code> $ echo &#39;testing the draft mode&#39; | DRAFT=1 ./prog</code></pre>
<pre><code> $ echo &#39;testing the draft mode&#39; | DRAFT=1 ./prog</code></pre>
<p>The program will run much faster but the rendering will be less precise.</p>
<h4 id="the-subtle-interactive-mode">The subtle interactive mode</h4>
<p>I saved the best for last: usually, programs that handle an “interactive mode”
@@ -298,10 +299,10 @@ detection, but still behaves (or seems to behave) appropriately?</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/duble/codes.txt">codes.txt</a> - show how each character is drawn</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/duble/lorem-ipsum.txt">lorem-ipsum.txt</a> - sample input</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/duble/try.sh">try.sh</a> - how to run</li>
<li><a href="2015_duble.tar.bz2">2015_duble.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_duble.tar.bz2">2015_duble.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/duble/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/duble/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -60,7 +60,7 @@
},
{
"file_path" : "2015_endoh1.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+6 -5
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -144,12 +145,12 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<p>NOTE: this program requires the tool <code>tcpserver</code> to use. If you do not have this
program see <a href="../../faq.html#tcpserver">FAQ 3.14 - How do I compile and install tcpserver for entries that
require it</a>.</p>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> tcpserver -v 127.0.0.1 10333 ./prog ioccc.txt</code></pre>
<pre><code> tcpserver -v 127.0.0.1 10333 ./prog ioccc.txt</code></pre>
<p>Then connect to http://localhost:10333 with your browser.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p><a href="https://www.livescience.com/950-leopard-spots.html">How did the leopard get its
@@ -168,7 +169,7 @@ test</a>? This program is also based on
his work.</p>
<h3 id="whirlwind-tour">Whirlwind tour</h3>
<p>Compile the program as follows:</p>
<pre class="&lt;!---sh--&gt;"><code> cc -O3 -std=c99 \
<pre><code> cc -O3 -std=c99 \
-Wall -Wextra -pedantic -o prog prog.c \
-Delta_u=&quot;Du*laplacian(u)-u*v*v+F*(1-u)&quot; \
-Delta_v=&quot;Dv*laplacian(v)+u*v*v-v*(F+K)&quot; \
@@ -179,7 +180,7 @@ his work.</p>
<a href="http://cr.yp.to/ucspi-tcp.html">ucspi-tcp</a> package, which was created by
<a href="../../authors.html#Daniel_J_Bernstein">Daniel J. Bernstein</a>’s
<a href="../../1991/brnstnd/index.html">1991/brndstd</a> “Best of Show”.</p>
<pre class="&lt;!---sh--&gt;"><code> tcpserver -v 127.0.0.1 10333 ./prog ioccc.txt</code></pre>
<pre><code> tcpserver -v 127.0.0.1 10333 ./prog ioccc.txt</code></pre>
<p>Finally, open <code>http://127.0.0.1:10333/</code> in a modern browser supporting HTML5.
You can use the mouse cursor to place drops into the <a href="https://en.wikipedia.org/wiki/Petri_dish">Petri
dish</a> interactively.</p>
@@ -323,10 +324,10 @@ field data to the browser on each frame.</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh1/center.txt">center.txt</a> - sample input</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh1/ioccc.txt">ioccc.txt</a> - sample input</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh1/line.txt">line.txt</a> - sample input</li>
<li><a href="2015_endoh1.tar.bz2">2015_endoh1.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_endoh1.tar.bz2">2015_endoh1.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh1/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh1/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -43,7 +43,7 @@
},
{
"file_path" : "2015_endoh2.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+7 -6
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,11 +142,11 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<pre><code> ./prog</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>At this point you might be wondering, <a href="http://acronyms.thefreedictionary.com/WTF">WTF</a>?*</p>
<ul>
@@ -154,7 +155,7 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
<li><p>What the Fish (python form)</p></li>
</ul>
<p>How is this code obfuscated? Well look again:</p>
<pre class="&lt;!---sh--&gt;"><code> less prog.c
<pre><code> less prog.c
more prog.c</code></pre>
<p>Where did those underscores come from? Well <a href="http://acronyms.thefreedictionary.com/RTFS">RTFS</a>!**</p>
@@ -163,7 +164,7 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
<p>If you are still puzzled, look at <a href="prog.c">prog.c</a> with your favorite text editor.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p><strong>Follow these instructions literally!</strong></p>
<pre class="&lt;!---sh--&gt;"><code> cat prog.c
<pre><code> cat prog.c
gcc -w -o prog prog.c
./prog</code></pre>
<p>You will do a double take.</p>
@@ -198,10 +199,10 @@ terminal supports bold.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh2/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh2/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh2/try.sh">try.sh</a> - how to run</li>
<li><a href="2015_endoh2.tar.bz2">2015_endoh2.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_endoh2.tar.bz2">2015_endoh2.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh2/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh2/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -59,7 +59,7 @@
},
{
"file_path" : "2015_endoh3.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+7 -6
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,17 +142,17 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<pre><code> ./prog</code></pre>
<h2 id="try">Try:</h2>
<p>To see the original <a href="mullender.c">mullender</a> in action:</p>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<p>Observe what happens when you hit enter or another character! You might even try
typing out, one character at a time, <code>1984/mullender</code>, and then see what it looks
like at the end. Send INTR to end the program.</p>
<p>More generally use:</p>
<pre class="&lt;!---sh--&gt;"><code> cc -o prog prog.c foo.c
<pre><code> cc -o prog prog.c foo.c
./prog
^C # if necessary, where ^C is ctrl-C, interrrupt</code></pre>
<p>to compile and run <code>prog</code> as whatever foo.c is in the joke PDP-11 emulator.</p>
@@ -181,7 +182,7 @@ the source code from all angles..</li>
<p>This program is a joke PDP-11 emulator. (“ll-dpd” is embedded in the code.
Read it upside down.)</p>
<p>You got it? This program is supposed to be used in this way:</p>
<pre class="&lt;!---sh--&gt;"><code> wget https://www.ioccc.org/1984/mullender.c
<pre><code> wget https://www.ioccc.org/1984/mullender.c
clang -o prog prog.c mullender.c
./prog</code></pre>
<p>You can enjoy the legendary winning entry of the first IOCCC, again.</p>
@@ -359,10 +360,10 @@ register).</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh3/try.sh">try.sh</a> - how to run</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh3/ioccc.c">ioccc.c</a> - program as an array of shorts</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh3/mullender.c">mullender.c</a> - copy of 1984/mullender.c</li>
<li><a href="2015_endoh3.tar.bz2">2015_endoh3.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_endoh3.tar.bz2">2015_endoh3.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh3/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh3/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -51,7 +51,7 @@
},
{
"file_path" : "2015_endoh4.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+7 -6
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,19 +142,19 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<p>There is an alt version which is the originally submitted entry. See <a href="#alternate-code">Alternate
code</a> below for details.</p>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt;a number of arguments&gt;</code></pre>
<pre><code> ./prog &lt;a number of arguments&gt;</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<p>An alternate version of this entry, <a href="prog.alt.c">prog.alt.c</a>, is provided.
This alternate code does not contain improvements suggested by <a href="../../authors.html#Gil_Dogon">Gil
Dogon</a>; it is the author’s original entry.</p>
<h3 id="alternate-build">Alternate build:</h3>
<pre class="&lt;!---sh--&gt;"><code> make alt</code></pre>
<pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
@@ -163,7 +164,7 @@ run out of command line argument space? How could you modify the program to
experiment with numbers that have more or larger factors?</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>Visual factorization 1-liner. Try:</p>
<pre class="&lt;!---sh--&gt;"><code> gcc -o prog prog.c
<pre><code> gcc -o prog prog.c
./prog @
./prog @ @
./prog @ @ @
@@ -204,10 +205,10 @@ you!</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh4/prog.alt.c">prog.alt.c</a> - alternative source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh4/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh4/try.sh">try.sh</a> - how to run</li>
<li><a href="2015_endoh4.tar.bz2">2015_endoh4.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_endoh4.tar.bz2">2015_endoh4.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh4/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh4/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -51,7 +51,7 @@
},
{
"file_path" : "2015_hou.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+7 -6
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,16 +142,16 @@ Location: <a href="../../location.html#CN">CN</a> - <em>People’s Republic of C
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<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.html#2015_hou">2015 hou bugs</a>.</p>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> echo something | ./prog
<pre><code> echo something | ./prog
./prog &lt; file</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>A good start for understanding this entry might be
<a href="rfc1321.txt">rfc1321.txt</a>. How does it compute this using only a
@@ -159,11 +160,11 @@ algorithm is about 355 lines of code, yet this entry is only 199 lines with
one statement per line and it isn’t using lots of macro expansion tricks like
the reference code!</p>
<p>Some things that make you go, “huh?”</p>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; prog.c | cut -c-5
<pre><code> ./prog &lt; prog.c | cut -c-5
./prog &lt; Makefile | cut -c-4</code></pre>
<p>How are those values magically returned?</p>
<p>What happens with a large file? Something over 256K.</p>
<pre class="&lt;!---sh--&gt;"><code> ./prog &lt; large_file</code></pre>
<pre><code> ./prog &lt; large_file</code></pre>
<p>Where does that message come from?</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>This looks like a normal C program.</p>
@@ -240,10 +241,10 @@ result. Error messages become garbled, though.</p></li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/try.sh">try.sh</a> - how to run</li>
<li><a href="rfc1321.txt">rfc1321.txt</a> - RFC 1321 - MD5 Message-Digest Algorithm</li>
<li><a href="2015_hou.tar.bz2">2015_hou.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_hou.tar.bz2">2015_hou.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -115,7 +115,7 @@
},
{
"file_path" : "2015_howe.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+6 -5
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,20 +142,20 @@ Location: <a href="../../location.html#CA">CA</a> - <em>Canada</em></li>
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<p>There is an alternate version provided. See <a href="#alternate-code">Alternate code</a>
below.</p>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog file1 file2
<pre><code> ./prog file1 file2
./prog -d file1 file2</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<p>This alternate version does not use a 64-bit FNV hash. This was the original
entry but was changed to be the alt version.</p>
<h3 id="alternate-build">Alternate build:</h3>
<pre class="&lt;!---sh--&gt;"><code> make alt</code></pre>
<pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
@@ -265,10 +266,10 @@ Comm. of ACM, Vol. 18, June 1975, pages 341-343<br />
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/spoiler/err.h">spoiler/err.h</a> - SPOILER WARNING</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/spoiler/prog.c">spoiler/prog.c</a> - SPOILER WARNING</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/war-and-peace.txt">war-and-peace.txt</a> - War and Peace translated to English</li>
<li><a href="2015_howe.tar.bz2">2015_howe.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_howe.tar.bz2">2015_howe.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1
View File
@@ -86,6 +86,7 @@
<div class="sidenav">
<a href="../news.html">IOCCC News</a>
<a href="../status.html">Contest status</a>
<a href="../next/index.html">Rules and Guidelines</a>
<a href="../faq.html#submit">How to enter the IOCCC</a>
<a href="../faq.html">FAQ</a>
</div>
+1 -1
View File
@@ -43,7 +43,7 @@
},
{
"file_path" : "2015_mills1.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+9 -8
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,19 +142,19 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<pre><code> ./prog</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog</code></pre>
<pre><code> ./prog</code></pre>
<p>Press the up arrow and the down arrow at the right time.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Did you find that mobile application game a bit frustrating?
Well you can adjust the Makefile parameters to make life a
bit easier for you:</p>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<p>which runs:</p>
<pre class="&lt;!---sh--&gt;"><code> make clobber all DW=199999 DW=22 DH=16 DA=50 DI=-150
<pre><code> make clobber all DW=199999 DW=22 DH=16 DA=50 DI=-150
./prog</code></pre>
<p>From the Makefile:</p>
<pre><code> # Game parameters
@@ -240,9 +241,9 @@ characters (needed for UTF-8 support, which is needed for emojis), you may need
to make some changes to the <code>Makefile</code> to get emojis to work on your system.
To help you get started, I’ve included some example substitutions for emojis
sprites and instruction text; for example, type</p>
<pre class="&lt;!---sh--&gt;"><code> make EMOJI=beer LANGUAGE=spanish</code></pre>
<pre><code> make EMOJI=beer LANGUAGE=spanish</code></pre>
<p>or</p>
<pre class="&lt;!---sh--&gt;"><code> make EMOJI=globe</code></pre>
<pre><code> make EMOJI=globe</code></pre>
<p>for some examples (the full list of options is in the <code>Makefile</code>). Don’t forget
to <code>make clobber</code> first (or use <code>make -B</code>). If the output doesn’t look right,
you may need to link with the “wide” version of <code>ncurses</code>. On MacOSX 10.11, it
@@ -282,10 +283,10 @@ live-streamed targeted video advertising.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills1/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills1/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills1/try.sh">try.sh</a> - how to run</li>
<li><a href="2015_mills1.tar.bz2">2015_mills1.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_mills1.tar.bz2">2015_mills1.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills1/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills1/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -59,7 +59,7 @@
},
{
"file_path" : "2015_mills2.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+7 -6
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,22 +142,22 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<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.html#2015_mills2">2015 mills2 bugs</a>.</p>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog compressed_file.Z</code></pre>
<pre><code> ./prog compressed_file.Z</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Without ASCII art, the source code of this entry would have been exactly 256
bytes. Compared to <a href="../../years.html#1990_jaw">1990/jaw</a>, it is very
impressive, even taking into account the missing <code>atob</code> functionality. Now we wish
for a <code>compress(1)</code>-like compressor using a similar idea.</p>
<p>Why is the sad smiley on line 12 in that particular place?</p>
<pre class="&lt;!---c--&gt;"><code> c=0) :( O</code></pre>
<pre><code> c=0) :( O</code></pre>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="the-program">The Program</h3>
<p>This program is an implementation of the unix <code>zcat(1)</code> command for printing
@@ -174,7 +175,7 @@ single function and a few <code>int</code>s.</p>
on the command line. On the odd chance you don’t have <code>compress(1)</code> hanging about
on your system, I’ve provided compressed copies of this year’s IOCCC rules
and guidelines files. To print them, just do</p>
<pre class="&lt;!---sh--&gt;"><code> ./prog ioccc_guidelines.txt.Z
<pre><code> ./prog ioccc_guidelines.txt.Z
./prog ioccc_rules.txt.Z</code></pre>
<h3 id="the-details">The Details</h3>
<p>The basic cleverness here comes from realizing that the compressed data is
@@ -260,10 +261,10 @@ you might want to compile this for.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills2/try.sh">try.sh</a> - how to run</li>
<li><a href="ioccc_guidelines.txt.Z">ioccc_guidelines.txt.Z</a> - compressed IOCCC 2015 guidelines</li>
<li><a href="ioccc_rules.txt.Z">ioccc_rules.txt.Z</a> - compressed IOCCC 2015 rules</li>
<li><a href="2015_mills2.tar.bz2">2015_mills2.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_mills2.tar.bz2">2015_mills2.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills2/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills2/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -163,7 +163,7 @@
},
{
"file_path" : "2015_muth.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+9 -8
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,11 +142,11 @@ Location: <a href="../../location.html#DE">DE</a> - <em>Federal Republic of Germ
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> make -B [MACHINE=your_machine.h] [TAPE=your_tape.h] [X=[0|1|2|3|4|5|6|7|8|9]] [V=[0|1|2]] run</code></pre>
<pre><code> make -B [MACHINE=your_machine.h] [TAPE=your_tape.h] [X=[0|1|2|3|4|5|6|7|8|9]] [V=[0|1|2]] run</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This is something we were fearing all along: that the C preprocessor is Turing-complete
even without conditionals and recursive file inclusion as some kind of a
@@ -179,13 +180,13 @@ macros in the output.</p>
files for examples.</p>
<h4 id="tape-symbols">Tape Symbols</h4>
<p>Every symbol used (except <code>_</code>) must be explicitly declared using</p>
<pre class="&lt;!---c--&gt;"><code> #define sym_SYMBOL(sym, _SYMBOL) sym</code></pre>
<pre><code> #define sym_SYMBOL(sym, _SYMBOL) sym</code></pre>
<p>Example:</p>
<pre class="&lt;!---c--&gt;"><code> #define sym_1(sym, _1) sym</code></pre>
<pre><code> #define sym_1(sym, _1) sym</code></pre>
<h4 id="tape">Tape</h4>
<p>The initial content of the tape must be defined in the tape header using a
triple like:</p>
<pre class="&lt;!---c--&gt;"><code> #define tape ((((,),...l2), l1), c, (r1, (r2..., (,))))</code></pre>
<pre><code> #define tape ((((,),...l2), l1), c, (r1, (r2..., (,))))</code></pre>
<ul>
<li><code>l1</code>, <code>l2</code>, … are the symbols to the left</li>
<li><code>c</code> is the symbol at the current position</li>
@@ -209,7 +210,7 @@ want no movement.</li>
<p>There must be a state <code>A</code> defined, which becomes the initial state of the
machine.</p>
<p>To halt the machine, use the keyword <code>break</code> as in</p>
<pre class="&lt;!---c--&gt;"><code> #define A_1 (2, break)</code></pre>
<pre><code> #define A_1 (2, break)</code></pre>
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
@@ -252,10 +253,10 @@ machine.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_77_55.h">tape_77_55.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_empty.h">tape_empty.h</a> - cpp macros</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/tape_five.h">tape_five.h</a> - cpp macros</li>
<li><a href="2015_muth.tar.bz2">2015_muth.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_muth.tar.bz2">2015_muth.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -43,7 +43,7 @@
},
{
"file_path" : "2015_schweikhardt.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+24 -23
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,25 +142,25 @@ Location: <a href="../../location.html#DE">DE</a> - <em>Federal Republic of Germ
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<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.html#2015_schweikhardt">2015 schweikhardt bugs</a>.</p>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./prog n</code></pre>
<pre><code> ./prog n</code></pre>
<p>where n is a base 16 number of any size.</p>
<p>NOTE: although it’s supposed to be a base 16 number nothing will stop you from
doing something else. The author explains this in more details.</p>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<p>After running it once to see what commands are run, you might wish to run it a
second time and just hold down space to see a fun scroll of numbers especially
where zeroes move to the right.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This code is clean. When you compile with all warnings enabled,
such as with clang:</p>
<pre class="&lt;!---sh--&gt;"><code> cc -Weverything -pedantic -std=c11 -Dtyp=uint64\_t -O3 prog.c -o prog</code></pre>
<pre><code> cc -Weverything -pedantic -std=c11 -Dtyp=uint64\_t -O3 prog.c -o prog</code></pre>
<p>The code compiles without warnings on the systems that we tested!</p>
<p>Even more, the code was 100% clean when we ran it against various
static source checkers.</p>
@@ -177,7 +178,7 @@ would be a good warm-up exercise for someone to get ready to begin to work on
the <a href="https://en.wikipedia.org/wiki/Collatz_conjecture">Collatz conjecture</a>.</p>
</blockquote>
<p>You may explore this famous conjecture using this entry:</p>
<pre class="&lt;!---sh--&gt;"><code> ./prog 2410
<pre><code> ./prog 2410
./prog abfff
./prog 27f8cebf
./prog 246f8fddf
@@ -238,7 +239,7 @@ and stops at <code>1</code>. The number <code>n</code> is specified in hexadecim
prefix) as the first argument. The program prints the given number in
zero-padded hex and each iteration along with a line count in decimal.
The example above looks like this (compiled with 64 bit word size):</p>
<pre class="&lt;!---sh--&gt;"><code> $ ./prog 6
<pre><code> $ ./prog 6
0000000000000006
0000000000000003 1
000000000000000A 2
@@ -251,7 +252,7 @@ The example above looks like this (compiled with 64 bit word size):</p>
<p>The size of <code>n</code> is only limited by the argument size limit of your
shell/OS (the program implements arbitrary size <code>bignum</code>s).
To query this on your POSIX system, run</p>
<pre class="&lt;!---sh--&gt;"><code> $ getconf ARG_MAX
<pre><code> $ getconf ARG_MAX
262144</code></pre>
<p>which reports the limit in bytes, here 256KB. This allows to test
whether a <a href="https://en.wikipedia.org/wiki/Googol">Googol</a>, which is
@@ -259,7 +260,7 @@ whether a <a href="https://en.wikipedia.org/wiki/Googol">Googol</a>, which is
Fear not,
<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html">bc(1)</a>
to the rescue:</p>
<pre class="&lt;!---sh--&gt;"><code> $ printf &#39;obase=16;10^100\n&#39; | bc
<pre><code> $ printf &#39;obase=16;10^100\n&#39; | bc
1249AD2594C37CEB0B2784C4CE0BF38ACE408E211A7CAAB24308A82E8F1000000000\
0000000000000000
$ ./prog 1249AD2594C37CEB0B2784C4CE0BF38ACE408E211A7CAAB24308A82E8F10000000000000000000000000 \
@@ -373,7 +374,7 @@ hard, I could use <code>__LINE__</code> and <code>stdio.h</code> macros <code>EO
<h3 id="run-it-through-a-c-beautifier">Run it through a C beautifier</h3>
<p>Another identity operation. I’ve done it for you already. Use this
<code>.indent.pro</code> with FreeBSD indent:</p>
<pre class="&lt;!---sh--&gt;"><code> $ cat .indent.pro
<pre><code> $ cat .indent.pro
-bad /* blank line after decls */
-bap /* blank line after functions */
-br /* braces on if line */
@@ -415,7 +416,7 @@ to be.</p>
<h3 id="examine-the-algorithm">Examine the algorithm</h3>
<p>Spoilers ahead. Duh!</p>
<p>Pseudocode, with comments matching those in the C source:</p>
<pre class="&lt;!---c--&gt;"><code> /* run */
<pre><code> /* run */
if (non-NULL and nonempty argv[1]) {
n = convert(argv[1])
print n /* 2hx */
@@ -432,7 +433,7 @@ to be.</p>
}
}</code></pre>
<p><code>Bignum</code>s are represented as the two member <code>struct</code>s:</p>
<pre class="&lt;!---c--&gt;"><code> typedef struct {
<pre><code> typedef struct {
size_t places; /* number of places in base 2 to the power of (8*sizeof(type)) */
type *number; /* dynamically allocated memory for number */
} bignum</code></pre>
@@ -452,7 +453,7 @@ expected.</p>
<p>This means however, that the program accepts <strong>any string</strong>, turns it
into a starting number (which is output as the first line), and starts
crunching. Nothing stops you from executing</p>
<pre class="&lt;!---sh--&gt;"><code> ./prog &quot;$(cat prog.c)&quot; # Kind of quine?
<pre><code> ./prog &quot;$(cat prog.c)&quot; # Kind of quine?
./prog &quot;$(cat rules guidelines)&quot; # A jackpot? Maybe next year...
./prog &quot;$(cat /bin/ls)&quot; # Number cut short at first NUL byte.</code></pre>
<p>In a certain way, the program is character set and encoding agnostic.</p>
@@ -475,14 +476,14 @@ use <code>8 * sizeof(typ)</code> bits per place. It does not work when <code>CHA
<p>The open source static checker <a href="http://cppcheck.sourceforge.net/">cppcheck</a>
checks various problems with respect to style, performance, portability
and general fishiness. To enable all checks, run</p>
<pre class="&lt;!---sh--&gt;"><code> cppcheck --enable=all --force -I/usr/include -Dtyp=uint32_t prog.c</code></pre>
<pre><code> cppcheck --enable=all --force -I/usr/include -Dtyp=uint32_t prog.c</code></pre>
<p>No issues found.</p>
<h3 id="flawfinder">flawfinder</h3>
<p>The open source static checker <a href="http://www.dwheeler.com/flawfinder/">flawfinder</a>
checks various problems with respect to security like buffer overflows,
function arguments to known troublemaker functions and more. It doesn’t need to
pre-process code, so can be run without the <code>typ</code> macro being defined:</p>
<pre class="&lt;!---sh--&gt;"><code> $ flawfinder prog.c
<pre><code> $ flawfinder prog.c
Flawfinder version 1.31, (C) 2001-2014 David A. Wheeler.
Number of rules (primarily dangerous function names) in C/C++ ruleset: 169
Examining prog.c
@@ -572,7 +573,7 @@ demonstrator</a> you can
use for checking your C programs and I highly recommend trying it. For a start,
paste the well know first program in the form and press “Analyze Code”. Note
the FlexeLint configuration options in comments (no space between <code>/*</code> and <code>lint</code>).</p>
<pre class="&lt;!---c--&gt;"><code> /*lint -w4 turn on everything */
<pre><code> /*lint -w4 turn on everything */
/*lint +esym(534,*) no demonstrator defaults */
/*lint -e966 indirectly included header file not used */
/*lint -esym(9058,_*) tag not used outside typedef */
@@ -675,7 +676,7 @@ use of character values.” This forbids using character constants in
expressions other than assignments to <code>char</code> objects. A consequence is
that printing digits with <code>'0' + digit</code> is not allowed (even though
<code>'0'</code> is technically an <code>int</code>!) so I am forced to output hex digits with</p>
<pre class="&lt;!---c--&gt;"><code> printf(&quot;%c&quot;, (met)tyr + 32 + 16 + ((8 + EOF) * ((met)tyr / (8 + 2))));</code></pre>
<pre><code> printf(&quot;%c&quot;, (met)tyr + 32 + 16 + ((8 + EOF) * ((met)tyr / (8 + 2))));</code></pre>
<p>because of the “no magic numbers other than powers of two” rule. How is this
an improvement over <code>printf("%c", '0' + tyr + 7 * (tyr / 10)</code>, MISRA?</p>
<p>MISRA 6.3: “<code>typedef</code>s that indicate size and signedness should be used in
@@ -691,7 +692,7 @@ redundant casting ensues. It gets worse with the next rule…</p>
precedence rules in expressions.” This requires parentheses for almost
all expressions involving more than one operator, especially those for which
a cast is required, leading to hard to understand expressions such as</p>
<pre class="&lt;!---c--&gt;"><code> const ser glx = (ser)((asx &gt; (ser)64u) ? (ser)((ser)asx + (ser)8u + (ser)1u) : (ser)asx);
<pre><code> const ser glx = (ser)((asx &gt; (ser)64u) ? (ser)((ser)asx + (ser)8u + (ser)1u) : (ser)asx);
not.not[leu] = (and)((and)not.not[leu] | (and)(((and)glx % (and)16u) &lt;&lt; (and)lys));</code></pre>
<p>MISRA 14.7: “A function shall have a single point of exit at the end of
the function.” Sigh. Since I must use eloquent prototypes (8.1, 16.3,
@@ -703,11 +704,11 @@ too high for a sane function.</p>
<p>MISRA 16.10: “If a function returns error information, then that error
information shall be tested.” A cast to <code>void</code> would draw a lint warning, so
I use the <code>printf(3)</code> result in expressions,</p>
<pre class="&lt;!---c--&gt;"><code> lys -= 4 * printf(&quot;%c&quot;, (met)tyr + 32 + 16 + ((8 + EOF) * ((met)tyr / (8 + 2))));
<pre><code> lys -= 4 * printf(&quot;%c&quot;, (met)tyr + 32 + 16 + ((8 + EOF) * ((met)tyr / (8 + 2))));
val += printf(&quot;\n&quot;) / ((__LINE__ * L_tmpnam) + TMP_MAX);
val -= (printf(&quot; %d\n&quot;, val) &gt; BUFSIZ) ? FILENAME_MAX : EOF;</code></pre>
<p>which are, in the absence of errors, equivalent to</p>
<pre class="&lt;!---c--&gt;"><code> lys -= 4;
<pre><code> lys -= 4;
/*nop*/
++val;</code></pre>
<p>MISRA 13.1: “Assignment operators shall not be used in expressions that
@@ -716,7 +717,7 @@ yield a Boolean value.” Forbids the idiomatic <code>if ((p = malloc(n)) == NUL
declared as pointer to <code>const</code> if the pointer is not used to modify the
addressed object.” in conjunction with lint’s “Note 952: Parameter could
be declared <code>const</code>” causes <code>const</code>-poisoning for all functions,</p>
<pre class="&lt;!---c--&gt;"><code> static void phe(const ala not);
<pre><code> static void phe(const ala not);
static void gly(ala *const not, const and his);
met main(met val, const pro *const his[]);</code></pre>
<p>and quite a number of automatic variables.</p>
@@ -726,9 +727,9 @@ up :-) (humor really helps!)”</p>
<h3 id="if-you-have-a-128-bit-type">If you have a 128 bit type</h3>
<p>If your compiler supports a 128 bit wide type (e.g. clang, gcc) then
you can use it via the <code>typ</code> macro:</p>
<pre class="&lt;!---sh--&gt;"><code> clang -Dtyp=__uint128_t -o prog prog.c</code></pre>
<pre><code> clang -Dtyp=__uint128_t -o prog prog.c</code></pre>
<p>Indeed, the program can use (and lints clean for) all of</p>
<pre class="&lt;!---sh--&gt;"><code> clang -Dtyp=uint8_t -o prog8 prog.c
<pre><code> clang -Dtyp=uint8_t -o prog8 prog.c
clang -Dtyp=uint16_t -o prog16 prog.c
clang -Dtyp=uint32_t -o prog32 prog.c
clang -Dtyp=uint64_t -o prog64 prog.c
@@ -785,10 +786,10 @@ memory resources with the <code>ulimit(1)</code> built-in of your shell.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/schweikhardt/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/schweikhardt/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/schweikhardt/try.sh">try.sh</a> - how to run</li>
<li><a href="2015_schweikhardt.tar.bz2">2015_schweikhardt.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_schweikhardt.tar.bz2">2015_schweikhardt.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/schweikhardt/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/schweikhardt/.entry.json">.entry.json</a> - description of entry in JSON</li>
+1 -1
View File
@@ -51,7 +51,7 @@
},
{
"file_path" : "2015_yang.tar.bz2",
"inventory_order" : 100000,
"inventory_order" : 1415926535,
"OK_to_edit" : false,
"display_as" : "tbz2",
"display_via_github" : false,
+10 -9
View File
@@ -88,6 +88,7 @@
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../status.html">Contest status</a>
<a href="../../next/index.html">Rules and Guidelines</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
@@ -141,11 +142,11 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<h2 id="to-build">To build:</h2>
<pre class="&lt;!---sh--&gt;"><code> make</code></pre>
<pre><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<pre class="&lt;!---sh--&gt;"><code> echo Some text | ./prog</code></pre>
<pre><code> echo Some text | ./prog</code></pre>
<h2 id="try">Try:</h2>
<pre class="&lt;!---sh--&gt;"><code> ./try.sh</code></pre>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Before analysing the code in detail we were able to guess two out of four tests
this entry uses to tell the 5 languages/flavors apart. Can you find all four?</p>
@@ -157,25 +158,25 @@ so you need not worry about this.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p><code>Fuuko</code> is a <a href="https://en.wikipedia.org/wiki/Starfish">sea star</a> generator. Feed
her some input through <code>stdin</code> to get lots of sea star patterns on <code>stdout</code>.</p>
<pre class="&lt;!---sh--&gt;"><code> cc -O3 -std=c90 fuuko.c -lm -o fuuko_c90
<pre><code> cc -O3 -std=c90 fuuko.c -lm -o fuuko_c90
echo IOCCC | ./fuuko_c90 &gt; output_c90.c</code></pre>
<p>If you compile with a C99 compiler instead of C90, the sea stars will
have eyes.</p>
<pre class="&lt;!---sh--&gt;"><code> cc -O3 -std=c99 fuuko.c -lm -o fuuko_c99
<pre><code> cc -O3 -std=c99 fuuko.c -lm -o fuuko_c99
echo IOCCC | ./fuuko_c99 &gt; output_c99.c</code></pre>
<p>Don’t like <a href="https://en.wikipedia.org/wiki/Starfish">sea stars</a>? Use a C++98
compiler to get a <a href="https://en.wikipedia.org/wiki/Dango">dango</a> instead.</p>
<pre class="&lt;!---sh--&gt;"><code> g++ -O3 -std=c++98 fuuko.c -lm -o fuuko_cpp98
<pre><code> g++ -O3 -std=c++98 fuuko.c -lm -o fuuko_cpp98
echo IOCCC | ./fuuko_cpp98 &gt; output_cpp98.c</code></pre>
<p>Don’t like <a href="https://en.wikipedia.org/wiki/Dango">dango</a> either? Use a C++11
compiler to get just <a href="https://en.wikipedia.org/wiki/Circle">circles</a> (or <a href="https://en.wikipedia.org/wiki/Swiss_cheeses_and_dairy_products">Swiss
cheese</a>, if you
prefer that).</p>
<pre class="&lt;!---sh--&gt;"><code> g++ -O3 -std=c++11 fuuko.c -lm -o fuuko_cpp11
<pre><code> g++ -O3 -std=c++11 fuuko.c -lm -o fuuko_cpp11
echo IOCCC | ./fuuko_cpp11 &gt; output_cpp11.c</code></pre>
<p>Don’t like any of these patterns? Use a C11 compiler and there will be
no extra pattern.</p>
<pre class="&lt;!---sh--&gt;"><code> cc -O3 -std=c11 fuuko.c -lm -o fuuko_c11
<pre><code> cc -O3 -std=c11 fuuko.c -lm -o fuuko_c11
echo IOCCC | ./fuuko_c11 &gt; output_c11.c</code></pre>
<p>Regardless of which of these C/C++ dialects you choose, the output
will all be valid C90 code that reproduces original input on <code>stdout</code>,
@@ -245,10 +246,10 @@ Fuuko</a>, for her love of sea stars.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/yang/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/yang/try.sh">try.sh</a> - how to run</li>
<li><a href="spoiler.html">spoiler.html</a> - SPOILER WARNING</li>
<li><a href="2015_yang.tar.bz2">2015_yang.tar.bz2</a> - download entry tarball</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="2015_yang.tar.bz2">2015_yang.tar.bz2</a> - download entry tarball</li>
<li><a href="index.html">index.html</a> - this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/yang/README.md">README.md</a> - markdown source for this web page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/yang/.entry.json">.entry.json</a> - description of entry in JSON</li>