fix more broken markdown links

Fixed stuff we broke by mistake, previously.

Ran `make www` to perform the above.

TODO: Fix stuff we broke by mistake doing the above.

TODO: Fix more broken markdown links.
This commit is contained in:
Landon Curt Noll committed 2024-04-26 16:25:17 -07:00
1 parent 4f95e3f3d6
commit 8bca099534
62 files changed
+181 -168

No files matched your search

+1 -1
View File
@@ -194,7 +194,7 @@ and repeat the process above
The new file now contains all lines which match
```
^.[^5|m^]*[m^]([e=p,;]|[^e=+p,;].*)$
^.[^5|m^]*[m^]\([e=p,;]|[^e=+p,;].*\)$
```
Compile and run. This is an `echo(1)` clone. Note the efficient algorithm
+1 -1
View File
@@ -502,7 +502,7 @@ adjusting the <code>adrian.c</code> file. Change the first line to read</p>
<p>and repeat the process above</p>
<pre><code> ./adrian &lt;adrian.c &gt; adecho.c</code></pre>
<p>The new file now contains all lines which match</p>
<pre><code> ^.[^5|m^]*[m^]([e=p,;]|[^e=+p,;].*)$</code></pre>
<pre><code> ^.[^5|m^]*[m^]\([e=p,;]|[^e=+p,;].*\)$</code></pre>
<p>Compile and run. This is an <code>echo(1)</code> clone. Note the efficient algorithm
employed.</p>
<p>Two other adjustments to the first line also yield useful results. By
+1 -1
View File
@@ -228,7 +228,7 @@ therein.
- The points and ways in which C and Perl connect are *really*
obscure. They're also incredibly poorly documented, as they're
primarily used in machine-generated code. However, there's a
wealth of example code on [CPAN (www.cpan.org)](https://www.cpan.org).
wealth of example code on [CPAN](https://www.cpan.org).
- The Perl API functions are almost all macros, so you will probably
find that preprocessor expansion will only make things worse. They
+1 -1
View File
@@ -551,7 +551,7 @@ therein.</p></li>
<li><p>The points and ways in which C and Perl connect are <em>really</em>
obscure. They’re also incredibly poorly documented, as they’re
primarily used in machine-generated code. However, there’s a
wealth of example code on <a href="https://www.cpan.org">CPAN (www.cpan.org)</a>.</p></li>
wealth of example code on <a href="https://www.cpan.org">CPAN</a>.</p></li>
<li><p>The Perl API functions are almost all macros, so you will probably
find that preprocessor expansion will only make things worse. They
also have helpful, verbose names like <code>SvNV</code>, <code>SvIV</code>, and <code>newSVpv</code>. I
+1 -1
View File
@@ -7,7 +7,7 @@
NOTE: if you don't have curses or SDL1 installed both modes will fail to compile. In
that case see the [FAQ 3.8 - How do I compile an IOCCC entry that requires SDL1
or SDL2?](../../faq.html#SDL) and [FAQ 3.9 - How do I compile an IOCCC entry that
requires (n)curses?](../../faq.html#curses) for more information.
requires ncurses?](../../faq.html#curses) for more information.
We recommend that you use the alternate code so you can see what this entry
looked like back in 2000 (with a configurable speed). See the
+1 -1
View File
@@ -407,7 +407,7 @@ Location: <a href="../../location.html#GB">GB</a> - <em>United Kingdom of Great
<p>NOTE: if you don’t have curses or SDL1 installed both modes will fail to compile. In
that case see the <a href="../../faq.html#SDL">FAQ 3.8 - How do I compile an IOCCC entry that requires SDL1
or SDL2?</a> and <a href="../../faq.html#curses">FAQ 3.9 - How do I compile an IOCCC entry that
requires (n)curses?</a> for more information.</p>
requires ncurses?</a> for more information.</p>
<p>We recommend that you use the alternate code so you can see what this entry
looked like back in 2000 (with a configurable speed). See the
<a href="#original-code">original code</a> section for the original entry.</p>
+1 -2
View File
@@ -111,8 +111,7 @@ To stop the server:
* Supports all [MIME](https://en.wikipedia.org/wiki/MIME) types.
* Supports [Common Gateway Interface
(CGI)](https://en.wikipedia.org/wiki/Common_Gateway_Interface) scripts and programs.
* Supports CGI: [Common Gateway Interface](https://en.wikipedia.org/wiki/Common_Gateway_Interface) scripts and programs.
* Supports multiple `index.*` file extensions and types:
+1 -2
View File
@@ -452,8 +452,7 @@ examples. In which case the preferred build commands are:</p>
<ul>
<li><p>Supports virtual hosts.</p></li>
<li><p>Supports all <a href="https://en.wikipedia.org/wiki/MIME">MIME</a> types.</p></li>
<li><p>Supports <a href="https://en.wikipedia.org/wiki/Common_Gateway_Interface">Common Gateway Interface
(CGI)</a> scripts and programs.</p></li>
<li><p>Supports CGI: <a href="https://en.wikipedia.org/wiki/Common_Gateway_Interface">Common Gateway Interface</a> scripts and programs.</p></li>
<li><p>Supports multiple <code>index.*</code> file extensions and types:</p>
<p>index.htm, index.html, index.php, index.pl, index.sh, index.rb, index.py</p></li>
<li><p>Supports subset of <a href="https://datatracker.ietf.org/doc/html/rfc2616">RFC 2616</a>
+14 -14
View File
@@ -31,42 +31,42 @@ We believe you will be impressed with this year's winning entries.
In particular:
+ The [Abuse of the rules (klausler)](klausler/index.html) used local dictionary data to
+ The [Abuse of the rules - 2005/klausler](klausler/index.html) used local dictionary data to
get around the size limit.
+ The [Most beauteous visuals (vince)](vince/index.html) made clever use of `{}`s and
+ The [Most beauteous visuals - 2005/vince](vince/index.html) made clever use of `{}`s and
whitespace in their source code and during execution.
+ The [Most circuitous walk (vik)](vik/index.html) entry is just amazing.
+ The [Most circuitous walk - 2005/vik](vik/index.html) entry is just amazing.
+ The [Best game (toledo)](toledo/index.html) makes full use of its single function.
+ The [Best game - 2005/toledo](toledo/index.html) makes full use of its single function.
+ The [Best emulator (sykes)](sykes/index.html) may allow you to reconnect to your first
+ The [Best emulator - 2005/sykes](sykes/index.html) may allow you to reconnect to your first
[PET](https://en.wikipedia.org/wiki/Commodore_PET).
+ Our [Best of Show (persano)](persano/index.html) this year was simply (or non-simply :-) ) the best!
+ Our [Best of Show - 2005/persano](persano/index.html) this year was simply (or non-simply :-) ) the best!
+ (And we need only mention (parenthetically speaking) that the [Best use of
parenthesis](mikeash/index.html) is self reproducing).
+ The [Most sonorous output (jetro)](jetro/index.html) might `sound` :-) like a good idea.
+ The [Most sonorous output - 2005/jetro](jetro/index.html) might `sound` :-) like a good idea.
+ The [Best 2D puzzle (giljade)](giljade/index.html) takes editorial license with expressions as well as the
+ The [Best 2D puzzle - 2005/giljade](giljade/index.html) takes editorial license with expressions as well as the
with the [vi editor](https://en.wikipedia.org/wiki/Vi).
+ The [Most ambiguous language (chia)](chia/index.html) entry is really a C program.
+ The [Most ambiguous language - 2005/chia](chia/index.html) entry is really a C program.
+ The [Most superfluous output (boutines)](boutines/index.html) entry is simply
+ The [Most superfluous output - 2005/boutines](boutines/index.html) entry is simply
[Voronoi](Voronoi)-lific!
+ Try not to have your sense of good coding offended by the [Most
discourteous interpreter (timwi)](timwi/index.html) entry.
discourteous interpreter - 2005/timwi](timwi/index.html) entry.
+ The [Best use of the www (mynx)](mynx/index.html) doesn't include those letters.
+ The [Best use of the www - 2005/mynx](mynx/index.html) doesn't include those letters.
+ You will be puzzled by the [Best 3D puzzle (anon)](anon/index.html) entry; we are sure!
+ You will be puzzled by the [Best 3D puzzle - 2005/anon](anon/index.html) entry; we are sure!
+ The [Most ingenious puzzle solution (aidan)](aidan/index.html) might puzzle you more while it
+ The [Most ingenious puzzle solution - 2005/aidan](aidan/index.html) might puzzle you more while it
puzzles out some puzzles: all in a puzzling way! :-)
### Remarks on some of the losing entries
+14 -14
View File
@@ -403,28 +403,28 @@ local compiler.</p>
<p>We believe you will be impressed with this year’s winning entries.</p>
<p>In particular:</p>
<ul>
<li><p>The <a href="klausler/index.html">Abuse of the rules (klausler)</a> used local dictionary data to
<li><p>The <a href="klausler/index.html">Abuse of the rules - 2005/klausler</a> used local dictionary data to
get around the size limit.</p></li>
<li><p>The <a href="vince/index.html">Most beauteous visuals (vince)</a> made clever use of <code>{}</code>s and
<li><p>The <a href="vince/index.html">Most beauteous visuals - 2005/vince</a> made clever use of <code>{}</code>s and
whitespace in their source code and during execution.</p></li>
<li><p>The <a href="vik/index.html">Most circuitous walk (vik)</a> entry is just amazing.</p></li>
<li><p>The <a href="toledo/index.html">Best game (toledo)</a> makes full use of its single function.</p></li>
<li><p>The <a href="sykes/index.html">Best emulator (sykes)</a> may allow you to reconnect to your first
<li><p>The <a href="vik/index.html">Most circuitous walk - 2005/vik</a> entry is just amazing.</p></li>
<li><p>The <a href="toledo/index.html">Best game - 2005/toledo</a> makes full use of its single function.</p></li>
<li><p>The <a href="sykes/index.html">Best emulator - 2005/sykes</a> may allow you to reconnect to your first
<a href="https://en.wikipedia.org/wiki/Commodore_PET">PET</a>.</p></li>
<li><p>Our <a href="persano/index.html">Best of Show (persano)</a> this year was simply (or non-simply :-) ) the best!</p></li>
<li><p>Our <a href="persano/index.html">Best of Show - 2005/persano</a> this year was simply (or non-simply :-) ) the best!</p></li>
<li><p>(And we need only mention (parenthetically speaking) that the <a href="mikeash/index.html">Best use of
parenthesis</a> is self reproducing).</p></li>
<li><p>The <a href="jetro/index.html">Most sonorous output (jetro)</a> might <code>sound</code> :-) like a good idea.</p></li>
<li><p>The <a href="giljade/index.html">Best 2D puzzle (giljade)</a> takes editorial license with expressions as well as the
<li><p>The <a href="jetro/index.html">Most sonorous output - 2005/jetro</a> might <code>sound</code> :-) like a good idea.</p></li>
<li><p>The <a href="giljade/index.html">Best 2D puzzle - 2005/giljade</a> takes editorial license with expressions as well as the
with the <a href="https://en.wikipedia.org/wiki/Vi">vi editor</a>.</p></li>
<li><p>The <a href="chia/index.html">Most ambiguous language (chia)</a> entry is really a C program.</p></li>
<li><p>The <a href="boutines/index.html">Most superfluous output (boutines)</a> entry is simply
<li><p>The <a href="chia/index.html">Most ambiguous language - 2005/chia</a> entry is really a C program.</p></li>
<li><p>The <a href="boutines/index.html">Most superfluous output - 2005/boutines</a> entry is simply
<a href="Voronoi">Voronoi</a>-lific!</p></li>
<li><p>Try not to have your sense of good coding offended by the <a href="timwi/index.html">Most
discourteous interpreter (timwi)</a> entry.</p></li>
<li><p>The <a href="mynx/index.html">Best use of the www (mynx)</a> doesn’t include those letters.</p></li>
<li><p>You will be puzzled by the <a href="anon/index.html">Best 3D puzzle (anon)</a> entry; we are sure!</p></li>
<li><p>The <a href="aidan/index.html">Most ingenious puzzle solution (aidan)</a> might puzzle you more while it
discourteous interpreter - 2005/timwi</a> entry.</p></li>
<li><p>The <a href="mynx/index.html">Best use of the www - 2005/mynx</a> doesn’t include those letters.</p></li>
<li><p>You will be puzzled by the <a href="anon/index.html">Best 3D puzzle - 2005/anon</a> entry; we are sure!</p></li>
<li><p>The <a href="aidan/index.html">Most ingenious puzzle solution - 2005/aidan</a> might puzzle you more while it
puzzles out some puzzles: all in a puzzling way! :-)</p></li>
</ul>
<h3 id="remarks-on-some-of-the-losing-entries">Remarks on some of the losing entries</h3>
+2 -2
View File
@@ -99,8 +99,8 @@ pretty pictures. I figured it would be nice to add some more fractals to the
IOCCC, since one hasn't won since 1994.
Instead of something that has already won I figured I would go with
another kind of fractal, those from the [Iterated Function System
(IFS)](https://en.wikipedia.org/wiki/Iterated_function_system).
another kind of fractal, those from the IFS:
[Iterated Function System](https://en.wikipedia.org/wiki/Iterated_function_system).
### Input File
+2 -2
View File
@@ -451,8 +451,8 @@ set</a>. Those do make for some
pretty pictures. I figured it would be nice to add some more fractals to the
IOCCC, since one hasn’t won since 1994.</p>
<p>Instead of something that has already won I figured I would go with
another kind of fractal, those from the <a href="https://en.wikipedia.org/wiki/Iterated_function_system">Iterated Function System
(IFS)</a>.</p>
another kind of fractal, those from the IFS:
<a href="https://en.wikipedia.org/wiki/Iterated_function_system">Iterated Function System</a>.</p>
<h3 id="input-file">Input File</h3>
<p>The format of the input file is as follows:</p>
<pre><code> &lt;num ifs&gt; &lt;x min&gt; &lt;y min&gt; &lt;x max&gt; &lt;y max&gt;
+2 -1
View File
@@ -99,7 +99,8 @@ operation, then the results are undefined.
For test-runs, use a resolution of 32. For simple expressions, the
[GIF](https://en.wikipedia.org/wiki/GIF) generation should take only
a few seconds with a modern processor and full optimization. Runtime scales as
[O(N^3)](https://en.wikipedia.org/wiki/Big_O_notation) with resolution `N`,
O^(N^3), (see [Big O notation](https://en.wikipedia.org/wiki/Big_O_notation) web page)
with resolution `N`,
and more complex expressions take longer to compute. For example, increasing the
resolution of `ripple.gif`
to 250 took ~35 minutes to render on an [i7
+2 -1
View File
@@ -453,7 +453,8 @@ operation, then the results are undefined.</p>
<p>For test-runs, use a resolution of 32. For simple expressions, the
<a href="https://en.wikipedia.org/wiki/GIF">GIF</a> generation should take only
a few seconds with a modern processor and full optimization. Runtime scales as
<a href="https://en.wikipedia.org/wiki/Big_O_notation">O(N^3)</a> with resolution <code>N</code>,
O<sup>(N</sup>3), (see <a href="https://en.wikipedia.org/wiki/Big_O_notation">Big O notation</a> web page)
with resolution <code>N</code>,
and more complex expressions take longer to compute. For example, increasing the
resolution of <code>ripple.gif</code>
to 250 took ~35 minutes to render on an <a href="https://en.wikipedia.org/wiki/Intel_Core#Core_i7">i7
+2 -2
View File
@@ -216,8 +216,8 @@ than 80 x 25.
```
This program is a fluid simulator using the [Smoothed-particle hydrodynamics
(SPH)](http://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics) method.
This program is a fluid simulator using the SPH:
[Smoothed-particle hydrodynamics](http://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics) method.
The SPH particles represent the fluid flow. Particles have information about
the position, density, and velocity. In every simulation step, they are
+2 -2
View File
@@ -521,8 +521,8 @@ than 80 x 25.</p>
`-&#39;`&#39; `-&#39;`-&#39; `-&#39;`-&#39; `-&#39;`&#39; `&#39;`&#39; `&#39;`&#39; `&#39;`&#39;
</code></pre>
<p>This program is a fluid simulator using the <a href="http://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics">Smoothed-particle hydrodynamics
(SPH)</a> method.</p>
<p>This program is a fluid simulator using the SPH:
<a href="http://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics">Smoothed-particle hydrodynamics</a> method.</p>
<p>The SPH particles represent the fluid flow. Particles have information about
the position, density, and velocity. In every simulation step, they are
changed by pressure force, viscosity force, and external force (i.e., gravity).</p>
+1 -1
View File
@@ -35,7 +35,7 @@ and:
A
[pi](https://en.wikipedia.org/wiki/Pi)/[e](https://en.wikipedia.org/wiki/E_&#x28;mathematical_constant&#x29;)
printing quasi-[quine](https://en.wikipedia.org/wiki/Quine_(computing) in [ASCII
printing quasi-[quine](https://en.wikipedia.org/wiki/Quine_&#x28;computing&#x29;) in [ASCII
art](https://en.wikipedia.org/wiki/ASCII_art) with a compressed font in it; what
else to wish for in this program? [Virtual
machine](https://en.wikipedia.org/wiki/Virtual_machine) emulation?
+1 -1
View File
@@ -413,7 +413,7 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>A
<a href="https://en.wikipedia.org/wiki/Pi">pi</a>/<a href="https://en.wikipedia.org/wiki/E_(mathematical_constant)">e</a>
printing quasi-[quine](https://en.wikipedia.org/wiki/Quine_(computing) in <a href="https://en.wikipedia.org/wiki/ASCII_art">ASCII
printing quasi-<a href="https://en.wikipedia.org/wiki/Quine_(computing)">quine</a> in <a href="https://en.wikipedia.org/wiki/ASCII_art">ASCII
art</a> with a compressed font in it; what
else to wish for in this program? <a href="https://en.wikipedia.org/wiki/Virtual_machine">Virtual
machine</a> emulation?</p>
+1 -1
View File
@@ -132,7 +132,7 @@ As an extra tweak, the text message actually does something useful. Remove the
[^1]: [Russ Cox, Regular Expression Matching: the Virtual Machine Approach](http://swtch.com/~rsc/regexp/regexp2.html)
[^2]: [Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...)](http://swtch.com/~rsc/regexp/regexp1.html)
[^2]: [Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...](http://swtch.com/~rsc/regexp/regexp1.html)
<!--
+1 -1
View File
@@ -460,7 +460,7 @@ amount of spaghetti branches and virtual thread creations. Finally, the VM in
“Make a contract with me” catch line and the program would cease to function.</p>
<h3 id="references">References</h3>
<p>[1] <a href="http://swtch.com/~rsc/regexp/regexp2.html">Russ Cox, Regular Expression Matching: the Virtual Machine Approach</a></p>
<p>[2] <a href="http://swtch.com/~rsc/regexp/regexp1.html">Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, …)</a></p>
<p>[2] <a href="http://swtch.com/~rsc/regexp/regexp1.html">Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, …</a></p>
<hr style="width:10%;text-align:left;margin-left:0">
<p>Jump to: <a href="#">top</a></p>
<!--
+1 -1
View File
@@ -129,7 +129,7 @@ As an extra tweak, the text message actually does something useful. Remove the
[1] [Russ Cox, Regular Expression Matching: the Virtual Machine Approach](http://swtch.com/~rsc/regexp/regexp2.html)
[2] [Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...)](http://swtch.com/~rsc/regexp/regexp1.html)
[2] [Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...](http://swtch.com/~rsc/regexp/regexp1.html)
<hr style="width:10%;text-align:left;margin-left:0">
+1 -1
View File
@@ -492,7 +492,7 @@ amount of spaghetti branches and virtual thread creations. Finally, the VM in
<section id="footnotes" class="footnotes footnotes-end-of-document" role="doc-endnotes">
<h5>Footnotes</h5>
<ol>
<li id="fn1"><p><a href="http://swtch.com/~rsc/regexp/regexp1.html">Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, …)</a><a href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn1"><p><a href="http://swtch.com/~rsc/regexp/regexp1.html">Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, …</a><a href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn2"><p><a href="http://swtch.com/~rsc/regexp/regexp2.html">Russ Cox, Regular Expression Matching: the Virtual Machine Approach</a><a href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn3"><p><a href="http://swtch.com/~rsc/regexp/regexp2.html">Russ Cox, Regular Expression Matching: the Virtual Machine Approach</a><a href="#fnref3" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
+2 -2
View File
@@ -51,8 +51,8 @@ are more obfuscated than the entry itself.
## Author's remarks:
This program celebrates the close connection between obfuscation and conciseness,
by implementing the most concise language known, [Binary Lambda Calculus
(BLC)](https://tromp.github.io/cl/Binary_lambda_calculus.html).
by implementing the most concise language known, BLC:
[Binary Lambda Calculus](https://tromp.github.io/cl/Binary_lambda_calculus.html).
[BLC](https://tromp.github.io/cl/Binary_lambda_calculus.html) was developed to
make [Algorithmic Information
+2 -2
View File
@@ -418,8 +418,8 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
are more obfuscated than the entry itself.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>This program celebrates the close connection between obfuscation and conciseness,
by implementing the most concise language known, <a href="https://tromp.github.io/cl/Binary_lambda_calculus.html">Binary Lambda Calculus
(BLC)</a>.</p>
by implementing the most concise language known, BLC:
<a href="https://tromp.github.io/cl/Binary_lambda_calculus.html">Binary Lambda Calculus</a>.</p>
<p><a href="https://tromp.github.io/cl/Binary_lambda_calculus.html">BLC</a> was developed to
make <a href="https://en.wikipedia.org/wiki/Algorithmic_information_theory">Algorithmic Information
Theory</a>, the
+2 -2
View File
@@ -187,7 +187,7 @@ which reports the limit in bytes, here 256KB. This allows to test
whether a [Googol](https://en.wikipedia.org/wiki/Googol), which is
10<sup>100</sup>, satisfies the conjecture. But what is a googol in hex?
Fear not,
[bc(1)](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html)
[bc&#x28;&#x29;](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html)
to the rescue:
``` <!---sh-->
@@ -821,7 +821,7 @@ explore yet untested numbers for the rest of your life.
The number of hex digits in the start number is limited by `ARG_MAX`,
probably minus some overhead for the environment variables (use
[env(1)](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/env.html)
[env&#x28;&#x29;](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/env.html)
to trim your environment). In bits this leaves you with `2 to the power of (4 *
ARG_MAX)`.
+2 -2
View File
@@ -508,7 +508,7 @@ To query this on your POSIX system, run</p>
whether a <a href="https://en.wikipedia.org/wiki/Googol">Googol</a>, which is
10<sup>100</sup>, satisfies the conjecture. But what is a googol in hex?
Fear not,
<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html">bc(1)</a>
<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html">bc()</a>
to the rescue:</p>
<pre><code> $ printf &#39;obase=16;10^100\n&#39; | bc
1249AD2594C37CEB0B2784C4CE0BF38ACE408E211A7CAAB24308A82E8F10000000000000000000000000
@@ -988,7 +988,7 @@ explore yet untested numbers for the rest of your life.</p>
<h3 id="how-big-a-number-can-i-test-with-4-gb-of-ram">How big a number can I test with 4 GB of RAM?</h3>
<p>The number of hex digits in the start number is limited by <code>ARG_MAX</code>,
probably minus some overhead for the environment variables (use
<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/env.html">env(1)</a>
<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/env.html">env()</a>
to trim your environment). In bits this leaves you with <code>2 to the power of (4 * ARG_MAX)</code>.</p>
<p>The algorithm requires two <code>bignum</code>s in memory for addition.
If you hit a divergent number, this will cause out-of-memory (“laugh”)
+6 -6
View File
@@ -30,24 +30,24 @@ compiler.
We believe you will again be impressed with this year's winning entries.
The ["Best of show" (mills)](mills/index.html) is an amazing tribute to entries
The [Best of show - 2018/mills](mills/index.html) is an amazing tribute to entries
from 1984 and 2015.
Take a close look at the "[Most likely to top the charts" (hou)](hou/index.html).
Take a close look at the [Most likely to top the charts - 2018/hou](hou/index.html).
Observe that while it contains no variables and no operators, it
remains functional in what it does.
The ["Best one-liner" (burton1)](burton1/index.html), at 109 characters, is a
The [Best one-liner - 2018/burton1](burton1/index.html), at 109 characters, is a
short and sweet implementation of a classic utility and a nod to a winning entry
from 1986. Sometimes it takes 20 some years to do things the true IOCCC way.
The color of the remarks text this year was inspired by one of the stars
of the ["Most stellar" (poikola)](poikola/index.html).
of the [Most stellar - 2018/poikola](poikola/index.html).
The ["Best use of python" (endoh2)](endoh2/index.html) is a not what you might think it is.
The [Best use of python - 2018/endoh2](endoh2/index.html) is a not what you might think it is.
It is something completely different.
The ["Most likely to be awarded" (ciura)](ciura/index.html) has an amazing vocabulary!
The [Most likely to be awarded - 2018/ciura](ciura/index.html) has an amazing vocabulary!
There are also nods to entries of the years [2000/bellard](2000/bellard/index.html),
[1989/yang](1989/yang/index.html), ...
+1 -1
View File
@@ -181,7 +181,7 @@ And here are sample steps of scanning tokens with classes `to_be`,
Type B state machines are built by a variant of the algorithm described
in the paper
[How to squeeze a lexicon (PDF)](lexicon.pdf).
[How to squeeze a lexicon](lexicon.pdf).
Their states are represented as interlaced sparse arrays of transitions.
The `transition_label` is one of:
+1 -1
View File
@@ -528,7 +528,7 @@ and <code>uppercase</code>.</p>
<h3 id="type-b">Type B:</h3>
<p>Type B state machines are built by a variant of the algorithm described
in the paper
<a href="lexicon.pdf">How to squeeze a lexicon (PDF)</a>.
<a href="lexicon.pdf">How to squeeze a lexicon</a>.
Their states are represented as interlaced sparse arrays of transitions.</p>
<p>The <code>transition_label</code> is one of:</p>
<ul>
+1 -1
View File
@@ -1359,7 +1359,7 @@ for, who's always been here for me and whom I also inherit the keen analytical
mind from. I love you all!
I want to also thank [Dave Burton](../../authors.html#Dave_Burton) for acknowledging me in
his [Dave Burton]((../../authors.html#Dave_Burton) for his [2018/burton2](../burton2/index.html)
his [Dave Burton](../../authors.html#Dave_Burton) for his [2018/burton2](../burton2/index.html)
entry for as he put it 'being relentless with pursuit of bugs'. To think that it
was circumstantial to my entry too makes it all the more unlikely but that
doesn't take away the significance of it; for I am a very symbolic person and
+1 -1
View File
@@ -1342,7 +1342,7 @@ and don’t you forget it! &lt;3</p>
for, who’s always been here for me and whom I also inherit the keen analytical
mind from. I love you all!</p>
<p>I want to also thank <a href="../../authors.html#Dave_Burton">Dave Burton</a> for acknowledging me in
his [Dave Burton]((../../authors.html#Dave_Burton) for his <a href="../burton2/index.html">2018/burton2</a>
his <a href="../../authors.html#Dave_Burton">Dave Burton</a> for his <a href="../burton2/index.html">2018/burton2</a>
entry for as he put it ‘being relentless with pursuit of bugs’. To think that it
was circumstantial to my entry too makes it all the more unlikely but that
doesn’t take away the significance of it; for I am a very symbolic person and
+6 -6
View File
@@ -402,19 +402,19 @@ lacking, you may need to compile using clang or gcc instead of your local
compiler.</p>
<h2 id="remarks-on-some-of-the-winning-entries">Remarks on some of the winning entries</h2>
<p>We believe you will again be impressed with this year’s winning entries.</p>
<p>The <a href="mills/index.html">“Best of show” (mills)</a> is an amazing tribute to entries
<p>The <a href="mills/index.html">Best of show - 2018/mills</a> is an amazing tribute to entries
from 1984 and 2015.</p>
<p>Take a close look at the “<a href="hou/index.html">Most likely to top the charts” (hou)</a>.
<p>Take a close look at the <a href="hou/index.html">Most likely to top the charts - 2018/hou</a>.
Observe that while it contains no variables and no operators, it
remains functional in what it does.</p>
<p>The <a href="burton1/index.html">“Best one-liner” (burton1)</a>, at 109 characters, is a
<p>The <a href="burton1/index.html">Best one-liner - 2018/burton1</a>, at 109 characters, is a
short and sweet implementation of a classic utility and a nod to a winning entry
from 1986. Sometimes it takes 20 some years to do things the true IOCCC way.</p>
<p>The color of the remarks text this year was inspired by one of the stars
of the <a href="poikola/index.html">“Most stellar” (poikola)</a>.</p>
<p>The <a href="endoh2/index.html">“Best use of python” (endoh2)</a> is a not what you might think it is.
of the <a href="poikola/index.html">Most stellar - 2018/poikola</a>.</p>
<p>The <a href="endoh2/index.html">Best use of python - 2018/endoh2</a> is a not what you might think it is.
It is something completely different.</p>
<p>The <a href="ciura/index.html">“Most likely to be awarded” (ciura)</a> has an amazing vocabulary!</p>
<p>The <a href="ciura/index.html">Most likely to be awarded - 2018/ciura</a> has an amazing vocabulary!</p>
<p>There are also nods to entries of the years <a href="2000/bellard/index.html">2000/bellard</a>,
<a href="1989/yang/index.html">1989/yang</a>, …</p>
<p>…We’ll stop spouting spoilers now. Have fun exploring all the entries!</p>
+2 -2
View File
@@ -26,10 +26,10 @@ compiler.
This year's winning entries are impressive!
The ["Most in need of debugging" (endoh)](endoh/index.html) is very inventive in
The [Most in need of debugging - 2019/endoh](endoh/index.html) is very inventive in
a way it produces its own text!
The ["Most likely to be awarded" (ciura)](ciura/index.html) has an amazing
The [Most likely to be awarded - 2019/ciura](ciura/index.html) has an amazing
vocabulary!
There are again nods to entries of the years:
+1 -1
View File
@@ -35,7 +35,7 @@ the program and the script.
## Judges' remarks:
[1991/davidguy](../..//1991/davidguy/index.html),
[1991/davidguy](../../1991/davidguy/index.html),
[2011/blakely](../../2011/blakely/index.html), ...
...This entry likely concludes the IOCCC category "Cellular automata simulators";
+1 -1
View File
@@ -410,7 +410,7 @@ Location: <a href="../../location.html#IL">IL</a> - <em>State of Israel</em> (<e
<p>Make sure that you keep focus of windows in mind when going back and forth to
the program and the script.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p><a href="../..//1991/davidguy/index.html">1991/davidguy</a>,
<p><a href="../../1991/davidguy/index.html">1991/davidguy</a>,
<a href="../../2011/blakely/index.html">2011/blakely</a>, …</p>
<p>…This entry likely concludes the IOCCC category “Cellular automata simulators”;
it would be very hard to beat it on its field.</p>
+2 -2
View File
@@ -399,9 +399,9 @@ lacking, you may need to compile using clang or gcc instead of your local
compiler.</p>
<h2 id="remarks-on-some-of-the-winning-entries">Remarks on some of the winning entries</h2>
<p>This year’s winning entries are impressive!</p>
<p>The <a href="endoh/index.html">“Most in need of debugging” (endoh)</a> is very inventive in
<p>The <a href="endoh/index.html">Most in need of debugging - 2019/endoh</a> is very inventive in
a way it produces its own text!</p>
<p>The <a href="ciura/index.html">“Most likely to be awarded” (ciura)</a> has an amazing
<p>The <a href="ciura/index.html">Most likely to be awarded - 2019/ciura</a> has an amazing
vocabulary!</p>
<p>There are again nods to entries of the years:</p>
<ul>
+3 -3
View File
@@ -24,13 +24,13 @@ compiler.
## Remarks on some of the winning entries
This year's [Best of Show (carlini)](carlini/index.html) is such a novel way of
This year's [Best of Show - 2020/carlini](carlini/index.html) is such a novel way of
obfuscation that it would be worth of a special mention in the (future) Best of
IOCCC list!
For some reason, this year's set of winning entries contains three nostalgic games,
[Asteroids (tsoj)](tsoj/index.html), [Minesweeper (endoh1)](endoh1/index.html),
and [Snake (ferguson1)](ferguson1/index.html).
[Asteroids - 2020/tsoj](tsoj/index.html), [Minesweeper - 2020/endoh1](endoh1/index.html),
and [Snake - 2020/ferguson1](ferguson1/index.html).
An entry, [kurdyukov1](kurdyukov1/index.html), pays homage to previous entry
[2015/hou](2015/hou/index.html).
+1 -1
View File
@@ -742,7 +742,7 @@ snakeskin would be the same size the snake was and the snake would grow as it
slithered out. But that would fill the screen very quickly of course. Maybe the
snakeskin has some other purpose?</p>
<h2 id="snake-moves-faster-over-time">Snake moves faster over time</h2>
<p>In the game [Surround](https://en.wikipedia.org/wiki/Surround_(video_game) you
<p>In the game <a href="https://en.wikipedia.org/wiki/Surround_(video_game)">Surround</a> you
have no control over the speed. I believe there are five different speed levels
but the player has no control over it except the drawing mode. It would be
possible to make it so the snake moves faster over time. How often and by what
+1 -1
View File
@@ -505,7 +505,7 @@ snakeskin has some other purpose?
## Snake moves faster over time
In the game [Surround](https://en.wikipedia.org/wiki/Surround_(video_game) you
In the game [Surround](https://en.wikipedia.org/wiki/Surround_&#x28;video_game&#x29;) you
have no control over the speed. I believe there are five different speed levels
but the player has no control over it except the drawing mode. It would be
possible to make it so the snake moves faster over time. How often and by what
+1 -1
View File
@@ -233,7 +233,7 @@ very important.
<div id="toc">
* ['Bugs'](#bugs)
* [NAQs/IAQs (Never/Infrequently Asked Questions)](#naqs)
* [NAQs/IAQs - Never/Infrequently Asked Questions](#naqs)
- [Do I have any inspirations for this entry?](#inspirations)
- [Are there any features I thought of that I wanted to implement but did not get to for some reason or another?](#features)
- [Are there ways that one can make this game easier?](#easier)
+1 -1
View File
@@ -5,7 +5,7 @@
<div id="toc">
* [Built-in test unit for some features!](#builtin-test-unit)
* [The snake doesn't seem to be moving](#stillsnake)
* [getch() also accepts input from some input hardware other than keyboards](#getch)
* [getch&#x28;&#x29; also accepts input from some input hardware other than keyboards](#getch)
* [SIZE=0 is the same as SIZE=1 and other oddities](#size)
* ['I was a few places behind my tail and I ran into it!'](#bitetail)
* [With negative growth the snake drops from the middle of the body](#middleofsnake)
+3 -3
View File
@@ -401,12 +401,12 @@ for the input keys.</p>
<ul>
<li><a href="#warning"><strong>Photosensitive epilepsy/Stimulation overload trigger warnings</strong></a></li>
<li><a href="#drawing">Drawing / Practice mode</a></li>
<li><a href="#auto">Computer playing / Automatic mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a>
<li><a href="#auto">Computer playing / Automatic mode (Photosensitive epilepsy/Stimulation overload trigger)</a>
<ul>
<li><a href="#auto-variations">Variations</a></li>
</ul></li>
<li><a href="#grow-shrink">Grow-Shrink (Positive/Negative Winning) mode</a></li>
<li><a href="#hypnotic">Hypnotic / Sleepy mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a></li>
<li><a href="#hypnotic">Hypnotic / Sleepy mode (Photosensitive epilepsy/Stimulation overload trigger)</a></li>
<li><a href="#stim">Stimulation / Calming mode</a></li>
<li><a href="#other-ideas">Other ideas</a></li>
</ul></li>
@@ -901,7 +901,7 @@ also has this mode:</p>
of them (the above is option 5; others are 4, 15 and 16 but only options 4 and 5
are called Grow / Shrink).</p>
<div id="hypnotic">
<h2 id="hypnotic-sleepy-mode-photosensitive-epilepsystimulation-overload-trigger"><a href="#toc">Hypnotic / Sleepy mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a></h2>
<h2 id="hypnotic-sleepy-mode-photosensitive-epilepsystimulation-overload-trigger"><a href="#toc">Hypnotic / Sleepy mode (Photosensitive epilepsy/Stimulation overload trigger)</a></h2>
</div>
<p><strong>Photosensitive epilepsy/stimulation overload trigger warning:</strong>
For those who have epilepsy or are susceptible to stimulation overload from
+7 -7
View File
@@ -14,7 +14,7 @@ for the input keys.
* [Playing the game](#playing)
* [Walls](#walls)
* [Cannibalism](#cannibalism)
* [Stretching (shedding)](#shedding)
* [Stretching &#x28;shedding&#x29;](#shedding)
* [Winning](#winning)
* [Quitting](#quitting)
@@ -23,10 +23,10 @@ for the input keys.
* [**Photosensitive epilepsy/Stimulation overload trigger warnings**](#warning)
* [Drawing / Practice mode](#drawing)
* [Computer playing / Automatic mode (**Photosensitive epilepsy/Stimulation overload trigger**)](#auto)
* [Computer playing / Automatic mode &#x28;Photosensitive epilepsy/Stimulation overload trigger&#x29;](#auto)
* [Variations](#auto-variations)
* [Grow-Shrink (Positive/Negative Winning) mode](#grow-shrink)
* [Hypnotic / Sleepy mode (**Photosensitive epilepsy/Stimulation overload trigger**)](#hypnotic)
* [Grow-Shrink &#x28;Positive/Negative Winning&#x29; mode](#grow-shrink)
* [Hypnotic / Sleepy mode &#x28;Photosensitive epilepsy/Stimulation overload trigger&#x29;](#hypnotic)
* [Stimulation / Calming mode](#stim)
* [Other ideas](#other-ideas)
@@ -44,7 +44,7 @@ for the input keys.
* [GROW / SHEDS - Growth / Shedding sizes](#growth)
7. [Conclusion (and inspirational words for everyone)](#conclusions)
7. [Conclusion &#x28;and inspirational words for everyone&#x29;](#conclusions)
</div>
@@ -728,7 +728,7 @@ are called Grow / Shrink).
<div id="hypnotic">
## <a href="#toc">Hypnotic / Sleepy mode (**Photosensitive epilepsy/Stimulation overload trigger**)</a>
## <a href="#toc">Hypnotic / Sleepy mode &#x28;Photosensitive epilepsy/Stimulation overload trigger&#x29;</a>
</div>
**Photosensitive epilepsy/stimulation overload trigger warning:**
@@ -892,7 +892,7 @@ it will take the number of movements before it is 'its full size'.
<div id="conclusions">
# 7. <a href="#toc">Conclusion (and inspirational words for everyone)</a>
# 7. <a href="#toc">Conclusion &#x28;and inspirational words for everyone&#x29;</a>
</div>
I believe that this file has given more than enough information for anyone to
+1 -1
View File
@@ -578,7 +578,7 @@ very important.</p>
<div id="toc">
<ul>
<li><a href="#bugs">‘Bugs’</a></li>
<li><a href="#naqs">NAQs/IAQs (Never/Infrequently Asked Questions)</a>
<li><a href="#naqs">NAQs/IAQs - Never/Infrequently Asked Questions</a>
<ul>
<li><a href="#inspirations">Do I have any inspirations for this entry?</a></li>
<li><a href="#features">Are there any features I thought of that I wanted to implement but did not get to for some reason or another?</a></li>
+1 -1
View File
@@ -401,7 +401,7 @@ already knew that so no harm there, hey?</p>
<li><a href="#resizing">Collision detection when resizing the window of the game</a></li>
</ul></li>
<li><a href="#obfuscation">Obfuscation</a></li>
<li><a href="#skinning">Skinning the snake (i.e. decreasing the iocccsize)</a></li>
<li><a href="#skinning">Skinning the snake (i.e., decreasing the iocccsize)</a></li>
<li><a href="#size">A few more interesting size optimisations</a></li>
</ul>
</div>
+2 -2
View File
@@ -15,12 +15,12 @@ already knew that so no harm there, hey?
<div id="toc">
- [How does it work?](#works)
- [How does the snake movement work?](#movement)
- [Drawing (manual) and computer playing (automatic) modes](#manual-automatic)
- [Drawing &#x28;manual&#x29; and computer playing &#x28;automatic&#x29; modes](#manual-automatic)
- [Collision detection](#collision)
* [Cannibal collision detection](#cannibalcollision)
* [Collision detection when resizing the window of the game](#resizing)
- [Obfuscation](#obfuscation)
- [Skinning the snake (i.e. decreasing the iocccsize)](#skinning)
- [Skinning the snake &#x28;i.e., decreasing the iocccsize&#x29;](#skinning)
- [A few more interesting size optimisations](#size)
</div>
+1 -1
View File
@@ -379,7 +379,7 @@
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: 2020/ferguson1/troubleshooting.md -->
<h1 id="troubleshooting-snake">Troubleshooting Snake</h1>
<p>9 Troubleshooting Snake</p>
<p>In this file I have a list of a number of possible problems that could show up
under some situations as well as some things that might appear to be happening
or be a problem but actually are not. For each one I have included a summary, a
+4 -4
View File
@@ -1,4 +1,4 @@
# Troubleshooting Snake
9 Troubleshooting Snake
In this file I have a list of a number of possible problems that could show up
under some situations as well as some things that might appear to be happening
@@ -8,15 +8,15 @@ anything that can cause more than one issue I will list those separately to keep
it as structured as possible/easiest to find.
<div id="top">
* [The top wall isn't (all/some of the time) visible!](#topwall)
* [The top wall isn't &#x28;all/some of the time&#x29; visible!](#topwall)
* [The snake isn't moving!](#notmoving)
* [I can't see the snake head (or other part of the snake)!](#invisiblehead)
* [I can't see the snake head &#x28;or other part of the snake&#x29;!](#invisiblehead)
* [I can't see the bug!](#invisiblebug)
* [The game froze!](#froze)
* [The game gets slower as the snake gets bigger!](#bigsnake)
* [I set SIZE=0 GROW=1, ate a bug but still only the head was visible! Why?](#headonly)
* [I like black text on a white background but even with a white background terminal it ends up black!](#monochrome)
* [The text is hard to see (not bright enough)!](#toodark)
* [The text is hard to see &#x28;not bright enough&#x29;!](#toodark)
* [Can I move the snake faster temporarily without having to modify the wait time?](#movefaster)
* [On environmental variables more generally and string to int conversions](#envvars)
* [Errors and error reporting](#errors)
+3 -3
View File
@@ -452,9 +452,9 @@ For examples using it (and a delicious challenge) see [recode.html][] (or
### A parser subtlety that could cause confusion
</div>
The parser is in a sense rather rudimentary but allows for both interactive and
automatic (e.g. via the [recode]((%%REPO_URL%%/2020/ferguson2/recode.c) program) input. This does mean that
something like the following can happen:
The parser is in a sense rather rudimentary but allows for both interactive and automatic
(e.g., via the [recode](%%REPO_URL%%/2020/ferguson2/recode.c) program) input.
This does mean that something like the following can happen:
``` <!---sh-->
$ ./prog -
+3 -3
View File
@@ -707,9 +707,9 @@ make it more flexible by a wrapper program.</p>
<div id="parsersubtlety">
<h3 id="a-parser-subtlety-that-could-cause-confusion">A parser subtlety that could cause confusion</h3>
</div>
<p>The parser is in a sense rather rudimentary but allows for both interactive and
automatic (e.g. via the <a href="(https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/recode.c)%20program">recode</a> input. This does mean that
something like the following can happen:</p>
<p>The parser is in a sense rather rudimentary but allows for both interactive and automatic
(e.g., via the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/recode.c">recode</a> program) input.
This does mean that something like the following can happen:</p>
<pre><code> $ ./prog -
Ring 1: 1AB
Setting 1: Position 1: Ring 2: 2CD
+3 -3
View File
@@ -458,8 +458,8 @@ if you don’t give the option to read in a file for input.</p>
Plugboard pair #09: RU
Plugboard pair #10: VG
1WX5AK4RE1XEHJSAPYCIZBWDQNRUVGIOCCC</code></pre>
<p>Though you won’t find some of those strings in [recode.c]((https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/recode.c) or
[prog.c]((https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/prog.c). Yes the <code>WAR</code> for the Ringstellung (Ring settings) is an
<p>Though you won’t find some of those strings in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/recode.c">recode.c</a> or
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/prog.c">prog.c</a>. Yes the <code>WAR</code> for the Ringstellung (Ring settings) is an
amusing coincidence <em>but it really did happen!</em></p>
<p>As for <code>-f</code> the contents would be output with the settings e.g. to pipe to
<code>prog</code> itself (as if you redirected the file contents to the Enigma machine for
@@ -585,7 +585,7 @@ pair</a>; this can be done in
a number of ways but two dots is one. Notice also that it’s in a different order
than the simulator: because with the size restrictions on my entry I saved bytes
by using the same loop where I could. It just felt more natural to have them
grouped together in a configurator for the [simulator]((https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/prog.c).</p>
grouped together in a configurator for the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/prog.c">simulator</a>.</p>
<pre><code> $ echo 1AA2AA3AA2ABCD..EFGHIJKLMNOPQRIOCCC | ./prog - 2&gt;/dev/null
HQNVO
$ echo 1AA2AA3AA2ABCD..EFGHIJKLMNOPQRIOCCC | ./prog - 2&gt;/dev/null | echo 1AA2AA3AA2ABCD..EFGHIJKLMNOPQRHQNVO | ./prog - 2&gt;/dev/null
+4 -4
View File
@@ -18,7 +18,7 @@ have to if you don't wish to.
- [Only write config file](#onlyconfig)
- [Reusing a configuration](#reuseconfig)
- [Write config file, read data file and pass to Enigma simulator](#passtoenigma)
- [Piping directly to the Enigma code once (with randomised settings, saved)](#directlytoenigma)
- [Piping directly to the Enigma code once &#x28;with randomised settings, saved&#x29;](#directlytoenigma)
- [Usage conclusion](#conclusion)
- [Example additions](#additions)
- [Example uses](#exampleuses)
@@ -97,8 +97,8 @@ if you don't give the option to read in a file for input.
1WX5AK4RE1XEHJSAPYCIZBWDQNRUVGIOCCC
```
Though you won't find some of those strings in [recode.c]((%%REPO_URL%%/2020/ferguson2/recode.c) or
[prog.c]((%%REPO_URL%%/2020/ferguson2/prog.c). Yes the `WAR` for the Ringstellung (Ring settings) is an
Though you won't find some of those strings in [recode.c](%%REPO_URL%%/2020/ferguson2/recode.c) or
[prog.c](%%REPO_URL%%/2020/ferguson2/prog.c). Yes the `WAR` for the Ringstellung (Ring settings) is an
amusing coincidence *but it really did happen!*
As for `-f` the contents would be output with the settings e.g. to pipe to
@@ -265,7 +265,7 @@ pair](https://www.cryptomuseum.com/crypto/enigma/i/sb.htm); this can be done in
a number of ways but two dots is one. Notice also that it's in a different order
than the simulator: because with the size restrictions on my entry I saved bytes
by using the same loop where I could. It just felt more natural to have them
grouped together in a configurator for the [simulator]((%%REPO_URL%%/2020/ferguson2/prog.c).
grouped together in a configurator for the [simulator](%%REPO_URL%%/2020/ferguson2/prog.c).
``` <!---sh-->
$ echo 1AA2AA3AA2ABCD..EFGHIJKLMNOPQRIOCCC | ./prog - 2>/dev/null
+3 -3
View File
@@ -398,12 +398,12 @@ system may require certain changes (add or remove a library, add or remove a
lacking, you may need to compile using clang or gcc instead of your local
compiler.</p>
<h2 id="remarks-on-some-of-the-winning-entries">Remarks on some of the winning entries</h2>
<p>This year’s <a href="carlini/index.html">Best of Show (carlini)</a> is such a novel way of
<p>This year’s <a href="carlini/index.html">Best of Show - 2020/carlini</a> is such a novel way of
obfuscation that it would be worth of a special mention in the (future) Best of
IOCCC list!</p>
<p>For some reason, this year’s set of winning entries contains three nostalgic games,
<a href="tsoj/index.html">Asteroids (tsoj)</a>, <a href="endoh1/index.html">Minesweeper (endoh1)</a>,
and <a href="ferguson1/index.html">Snake (ferguson1)</a>.</p>
<a href="tsoj/index.html">Asteroids - 2020/tsoj</a>, <a href="endoh1/index.html">Minesweeper - 2020/endoh1</a>,
and <a href="ferguson1/index.html">Snake - 2020/ferguson1</a>.</p>
<p>An entry, <a href="kurdyukov1/index.html">kurdyukov1</a>, pays homage to previous entry
<a href="2015/hou/index.html">2015/hou</a>.</p>
<p>…We’ll stop spouting spoilers now. Have fun exploring all the entries!</p>
+1 -1
View File
@@ -66,7 +66,7 @@ the Elves in Tolkien's Legendarium. It means sound taste (plural is lámatyáver
and it refers to phonaesthesia - in other words, it refers to the pleasure of
sound and form of words. It's discussed in [Morgoth's
Ring](https://en.wikipedia.org/wiki/Morgoth%27s_Ring), volume X of [History of
Middle-earth (HoMe)](https://en.wikipedia.org/wiki/The_History_of_Middle-earth).
Middle-earth &#x28;HoMe&#x29;](https://en.wikipedia.org/wiki/The_History_of_Middle-earth).
Now can you appreciate the award title a bit better?
+15 -14
View File
@@ -417,7 +417,7 @@
<li><a href="#faq3_6">3.6 - An IOCCC entry messed up my terminal application, how do I fix this?</a></li>
<li><a href="#faq3_7">3.7 - How do I run an IOCCC entry that requires X11?</a></li>
<li><a href="#faq3_8">3.8 - How do I compile an IOCCC entry that requires SDL1 or SDL2?</a></li>
<li><a href="#faq3_9">3.9 - How do I compile an IOCCC entry that requires (n)curses?</a></li>
<li><a href="#faq3_9">3.9 - How do I compile an IOCCC entry that requires (n)?</a></li>
<li><a href="#faq3_10">3.10 - How do I compile and use an IOCCC entry that requires sound?</a></li>
<li><a href="#faq3_11">3.11 - Why do Makefiles use -Weverything with clang?</a></li>
<li><a href="#faq3_12">3.12 - How do I find out how to send interrupt/EOF etc. for entries that require it?</a></li>
@@ -432,7 +432,7 @@
<h2 id="section-4---changes-made-to-ioccc-entries">Section 4 - <a href="#faq4">Changes made to IOCCC entries</a></h2>
<ul>
<li><a href="#faq4_0">4.0 - Why are some winning author remarks incongruent with the winning IOCCC code?</a></li>
<li><a href="#faq4_1">4.1 - Why were some calls to the libc function <code>gets(3)</code> changed to use <code>fgets(3)</code>?</a></li>
<li><a href="#faq4_1">4.1 - Why were some calls to the libc function gets(3( changed to use fgets(3)?</a></li>
<li><a href="#faq4_2">4.2 - What was changed in an IOCCC entry source code?</a></li>
<li><a href="#faq4_3">4.3 - Why do author remarks sometimes not match the source and/or why are there
other inconsistencies with the original entry?</a></li>
@@ -817,15 +817,15 @@ web site.</p>
<h4 id="dec-28-bzip2-compressed-tarball-archive">2020 Dec 28 bzip2 compressed tarball archive</h4>
<p>Furthermore, a bzip2 compressed tarball containing the released
IOCCC entry source code may be found under the
<a href="/archive/histroic">archive/historic</a> directory. The file
<a href="/archive/historic/archive-all.tar.bz2">archive-all.tar.bz2</a> contains
<a href="archive/histroic">archive/historic</a> directory. The file
<a href="archive/historic/archive-all.tar.bz2">archive-all.tar.bz2</a> contains
all years and the individual years are in the form
<code>archive/historic/archive-YYYY.tar.bz2</code>.</p>
<p>These files were obtained from the <a href="https://web.archive.org">Internet Wayback
Machine</a> from the <a href="https://web.archive.org/web/20201228005211/https://www.ioccc.org/">snapshot of the website
on 2020 Dec
28</a>.
See <a href="archive/historic/index.html">/archive/historic/index.html</a> for
See <a href="archive/historic/index.html">archive/historic/index.html</a> for
details about these bzip2 compressed tarballs.</p>
<h4 id="dec-29-official-ioccc-winner-repo">2022 Dec 29 Official IOCCC winner repo</h4>
<p>The <a href="https://github.com/ioccc-src/winner">Official IOCCC winner repo</a>
@@ -934,16 +934,16 @@ with/in modern systems.</li>
<li>Reworking the Makefiles specific to the gcc and clang C compilers.</li>
<li>Replacing the various hint files with a index.html markdown (from README.md
files) that is more consistent across IOCCC years.</li>
<li>Generating HTML content from markdown files and JSON data files via a <a href="/bin/index.html">set of
<li>Generating HTML content from markdown files and JSON data files via a <a href="bin/index.html">set of
tools and scripts</a>.</li>
<li>Setting up a system whereby authors of IOCCC entries may update their own
contact information via a <a href="https://github.com/ioccc-src/temp-test-ioccc/pulls">GitHub pull
request</a>.</li>
<li>Setting up to generate the top level <a href="years.html">years.html</a> file via the
<a href="/bin/gen-years.sh">gen-years.sh</a> tool.</li>
<li>Setting up to generate the top level <a href="/authors.html">authors.html file</a>, renamed
from <code>winners.html</code>, via the <a href="/bin/gen-authors.sh">gen-authors.sh</a> tool.</li>
<li>Making use of a new and improved <a href="/ioccc.css">IOCCC CSS</a> for web site consistency</li>
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/bin/gen-years.sh">gen-years.sh</a> tool.</li>
<li>Setting up to generate the top level <a href="authors.html">authors.html file</a>, renamed
from <code>winners.html</code>, via the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/bin/gen-authors.sh">gen-authors.sh</a> tool.</li>
<li>Making use of a new and improved <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/ioccc.css">IOCCC CSS</a> for web site consistency</li>
<li>Etc.</li>
</ul>
<h4 id="y-mm-dd-the-great-fork-merge">202y mm dd The Great Fork Merge <!-- XXX - Fill in the date when Great Fork Merge happens --></h4>
@@ -1048,6 +1048,7 @@ rounds; we look at the author name only if an entry wins. See the guidelines if
this is not clear!</li>
<li>leaving the remark section empty.</li>
</ul>
https://github.com/ioccc-src/temp-test-ioccc/blob/master/
<div id="faq2_2">
<h3 id="faq-2.2-why-dont-you-publish-entries-that-do-not-win">FAQ 2.2: Why don’t you publish entries that do not win?</h3>
</div>
@@ -1457,7 +1458,7 @@ fix it and make a new pull request.</p>
as a GitHub pull request</a> for more information about pull requests.</p>
<div id="faq3_9">
<div id="curses">
<h3 id="faq-3.9-how-do-i-compile-an-ioccc-entry-that-requires-ncurses">FAQ 3.9: How do I compile an IOCCC entry that requires (n)curses?</h3>
<h3 id="faq-3.9-how-do-i-compile-an-ioccc-entry-that-requires-n">FAQ 3.9: How do I compile an IOCCC entry that requires (n)?</h3>
</div>
</div>
<p>This depends on your operating system but below are instructions for Linux and
@@ -1851,7 +1852,7 @@ version like <code>dirname.alt.c</code> or <code>prog.alt.c</code>. In fact it i
the original code when reading the author’s (and sometimes authors’) remarks.</p>
<div id="faq4_1">
<div id="gets">
<h3 id="faq-4.1-why-were-some-calls-to-the-libc-function-gets3-changed-to-use-fgets3">FAQ 4.1: Why were some calls to the libc function <code>gets(3)</code> changed to use <code>fgets(3)</code>?</h3>
<h3 id="faq-4.1-why-were-some-calls-to-the-libc-function-gets3-changed-to-use-fgets3">FAQ 4.1: Why were some calls to the libc function gets(3) changed to use fgets(3)?</h3>
</div>
</div>
<p>Some may wonder: “Doesn’t this tamper with the entry too much?”</p>
@@ -2224,7 +2225,7 @@ original winning entries as compressed tar files for a given year.</p>
“abuse of the rules” (although now blatant abuse of the rules to
get around rule 2 size limits is discouraged).</p>
<div id="faq6_1">
<h3 id="faq-6.1-is-there-a-list-of-known-bugs-and-misfeatures-of-ioccc-entries">FAQ 6.1: Is there a list of known bugs and misfeatures of IOCCC entries?</h3>
<h3 id="faq-6.1-is-there-a-list-of-known-bugs-and-misfeatures-of-ioccc-entries">FAQ 6.1: Is there a list of known bugs and (mis)features of IOCCC entries?</h3>
</div>
<p>Yes! Please see <a href="bugs.html">bugs.html</a> for a list of known bugs and/or issues of a
variety of kinds.</p>
@@ -2240,7 +2241,7 @@ something like that.</p>
</div>
<p>While IOCCC judges look favorably on most requests to use IOCCC material,
we request that you ask the <a href="judges.html">IOCCC judges</a> first.</p>
<p>Please send your request using the instructions on the <a href="/contact.html">contacting
<p>Please send your request using the instructions on the <a href="contact.html">contacting
the IOCCC Judges</a> page.</p>
<p>Please note that the content of the IOCCC is <a href="#copyright">Copyrighted and is under
the CC BY-SA 4.0 License</a>.</p>
+19 -19
View File
@@ -38,7 +38,7 @@
- [3.6 - An IOCCC entry messed up my terminal application, how do I fix this?](#faq3_6)
- [3.7 - How do I run an IOCCC entry that requires X11?](#faq3_7)
- [3.8 - How do I compile an IOCCC entry that requires SDL1 or SDL2?](#faq3_8)
- [3.9 - How do I compile an IOCCC entry that requires (n)curses?](#faq3_9)
- [3.9 - How do I compile an IOCCC entry that requires &#x28;n&#x29;?](#faq3_9)
- [3.10 - How do I compile and use an IOCCC entry that requires sound?](#faq3_10)
- [3.11 - Why do Makefiles use -Weverything with clang?](#faq3_11)
- [3.12 - How do I find out how to send interrupt/EOF etc. for entries that require it?](#faq3_12)
@@ -48,12 +48,12 @@
- [3.16 - How do I compile and install libjpeg-turbo for entries that require it?](#faq3_16)
- [3.17 - How do I compile and install ImageMagick for entries that require it?](#faq3_17)
- [3.18 - How do I compile and install OpenGL for entries that require it?](#faq3_18)
- [3.19 - What kind of make(1) compatibility does the IOCCC support and will it support other kinds?](#faq3_19)
- [3.19 - What kind of make&#x28;1&#x29; compatibility does the IOCCC support and will it support other kinds?](#faq3_19)
## Section 4 - [Changes made to IOCCC entries](#faq4)
- [4.0 - Why are some winning author remarks incongruent with the winning IOCCC code?](#faq4_0)
- [4.1 - Why were some calls to the libc function `gets(3)` changed to use `fgets(3)`?](#faq4_1)
- [4.1 - Why were some calls to the libc function gets&#x28;3&#x28; changed to use fgets&#x28;3&#x29;?](#faq4_1)
- [4.2 - What was changed in an IOCCC entry source code?](#faq4_2)
- [4.3 - Why do author remarks sometimes not match the source and/or why are there
other inconsistencies with the original entry?](#faq4_3)
@@ -72,7 +72,7 @@ other inconsistencies with the original entry?](#faq4_3)
## Section 6 - [Miscellaneous IOCCC](#faq6)
- [6.0 - How did an entry that breaks the size rule 2 win the IOCCC?](#faq6_0)
- [6.1 - Is there a list of known bugs and (mis)features of IOCCC entries?](#faq6_1)
- [6.1 - Is there a list of known bugs and &#x28;mis&#x29;features of IOCCC entries?](#faq6_1)
- [6.2 - May I mirror the IOCCC web site?](#faq6_2)
- [6.3 - May I use parts of the IOCCC in an article, book, newsletter, or instructional material?](#faq6_3)
- [6.4 - Why do you sometimes use the first person plural?](#faq6_4)
@@ -505,7 +505,7 @@ were posted on 17 April 1984.
There were 4 entries that won in 1984:
1. [(dis)honorable mention](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0)
1. [&#x28;dis&#x29;honorable mention](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0)
2. [3rd place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=843%40nsc.UUCP&rnum=7&filter=0)
3. [2nd place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=844%40nsc.UUCP&rnum=6&filter=0)
4. [1st place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=845%40nsc.UUCP&rnum=5&filter=0)
@@ -572,8 +572,8 @@ web site.
Furthermore, a bzip2 compressed tarball containing the released
IOCCC entry source code may be found under the
[archive/historic](/archive/histroic) directory. The file
[archive-all.tar.bz2](/archive/historic/archive-all.tar.bz2) contains
[archive/historic](archive/histroic) directory. The file
[archive-all.tar.bz2](archive/historic/archive-all.tar.bz2) contains
all years and the individual years are in the form
`archive/historic/archive-YYYY.tar.bz2`.
@@ -581,7 +581,7 @@ These files were obtained from the [Internet Wayback
Machine](https://web.archive.org) from the [snapshot of the website
on 2020 Dec
28](https://web.archive.org/web/20201228005211/https://www.ioccc.org/).
See [/archive/historic/index.html](archive/historic/index.html) for
See [archive/historic/index.html](archive/historic/index.html) for
details about these bzip2 compressed tarballs.
@@ -715,15 +715,15 @@ with/in modern systems.
* Replacing the various hint files with a index.html markdown (from README.md
files) that is more consistent across IOCCC years.
* Generating HTML content from markdown files and JSON data files via a [set of
tools and scripts](/bin/index.html).
tools and scripts](bin/index.html).
* Setting up a system whereby authors of IOCCC entries may update their own
contact information via a [GitHub pull
request](https://github.com/ioccc-src/temp-test-ioccc/pulls).
* Setting up to generate the top level [years.html](years.html) file via the
[gen-years.sh](/bin/gen-years.sh) tool.
* Setting up to generate the top level [authors.html file](/authors.html), renamed
from `winners.html`, via the [gen-authors.sh](/bin/gen-authors.sh) tool.
* Making use of a new and improved [IOCCC CSS](/ioccc.css) for web site consistency
[gen-years.sh](%%REPO_URL%%/bin/gen-years.sh) tool.
* Setting up to generate the top level [authors.html file](authors.html), renamed
from `winners.html`, via the [gen-authors.sh](%%REPO_URL%%/bin/gen-authors.sh) tool.
* Making use of a new and improved [IOCCC CSS](%%REPO_URL%%/ioccc.css) for web site consistency
* Etc.
#### 202y mm dd The Great Fork Merge <!-- XXX - Fill in the date when Great Fork Merge happens -->
@@ -852,7 +852,7 @@ this is not clear!
- leaving the remark section empty.
<div id="faq2_2">
%%REPO_URL%%/<div id="faq2_2">
### FAQ 2.2: Why don't you publish entries that do not win?
</div>
@@ -1467,7 +1467,7 @@ as a GitHub pull request](#ull_request) for more information about pull requests
<div id="faq3_9">
<div id="curses">
### FAQ 3.9: How do I compile an IOCCC entry that requires (n)curses?
### FAQ 3.9: How do I compile an IOCCC entry that requires &#x28;n&#x29;?
</div>
</div>
@@ -2122,7 +2122,7 @@ We recommend trying a method suitable for your environment first, if possible.
<div id="faq3_19">
<div id="make_compatibility">
### 3.19 - What kind of make(1) compatibility does the IOCCC support and will it support other kinds?
### 3.19 - What kind of make&#x28;1&#x29; compatibility does the IOCCC support and will it support other kinds?
</div>
</div>
@@ -2176,7 +2176,7 @@ the original code when reading the author's (and sometimes authors') remarks.
<div id="faq4_1">
<div id="gets">
### FAQ 4.1: Why were some calls to the libc function `gets(3)` changed to use `fgets(3)`?
### FAQ 4.1: Why were some calls to the libc function gets&#x28;3&#x29; changed to use fgets&#x28;3&#x29;?
</div>
</div>
@@ -2684,7 +2684,7 @@ get around rule 2 size limits is discouraged).
<div id="faq6_1">
### FAQ 6.1: Is there a list of known bugs and misfeatures of IOCCC entries?
### FAQ 6.1: Is there a list of known bugs and &#x28;mis&#x29;features of IOCCC entries?
</div>
Yes! Please see [bugs.html](bugs.html) for a list of known bugs and/or issues of a
@@ -2710,7 +2710,7 @@ While IOCCC judges look favorably on most requests to use IOCCC material,
we request that you ask the [IOCCC judges](judges.html) first.
Please send your request using the instructions on the [contacting
the IOCCC Judges](/contact.html) page.
the IOCCC Judges](contact.html) page.
Please note that the content of the IOCCC is [Copyrighted and is under
the CC BY-SA 4.0 License](#copyright).
+2 -2
View File
@@ -2888,7 +2888,7 @@ the prototype being included).</p>
<p><code>main()</code> also called itself but this was a problem so it now calls another
function <code>poke()</code> which calls itself instead (this is sometimes necessary
nowadays and other entries had to have this same kind of change,
<a href="/2001/anonymous/index.html">2001/anonymous</a> being a good example).</p>
<a href="2001/anonymous/index.html">2001/anonymous</a> being a good example).</p>
<p>Finally the optimiser cannot be enabled so the compiler flags were changed for
this, forcing <code>-O0</code>.</p>
<div id="2004_gavare">
@@ -4617,7 +4617,7 @@ it is <code>$(MAKE)</code>.</p>
<a href="var.mk">var.mk</a> file and removed another that was deemed problematic or
undesired. Other variable names had typos in them.</p>
<p>In at least one case, like the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/Makefile">top level Makefile</a>, where raw
commands that are in <a href="/var.mk">var.mk</a> were used, Cody updated them to use the
commands that are in <a href="var.mk">var.mk</a> were used, Cody updated them to use the
variables.</p>
<p>A comment was missing for the <code>diff_alt_orig</code> rule in all the Makefiles and
this, along with many other fixes and changes to the Makefiles were made by
+2 -2
View File
@@ -3562,7 +3562,7 @@ the prototype being included).
`main()` also called itself but this was a problem so it now calls another
function `poke()` which calls itself instead (this is sometimes necessary
nowadays and other entries had to have this same kind of change,
[2001/anonymous](/2001/anonymous/index.html) being a good example).
[2001/anonymous](2001/anonymous/index.html) being a good example).
Finally the optimiser cannot be enabled so the compiler flags were changed for
this, forcing `-O0`.
@@ -6005,7 +6005,7 @@ Cody also added missing variables like `BASH` and `PDFLATEX` to the
undesired. Other variable names had typos in them.
In at least one case, like the [top level Makefile](%%REPO_URL%%/Makefile), where raw
commands that are in [var.mk](/var.mk) were used, Cody updated them to use the
commands that are in [var.mk](var.mk) were used, Cody updated them to use the
variables.
A comment was missing for the `diff_alt_orig` rule in all the Makefiles and
+4 -1
View File
@@ -323,7 +323,10 @@ fi
#
# and output just paths
#
find . -name '*.md' -print |
# We do not process markdown.md because it contains examples
# of poor markdown use.
#
find . -name '*.md' ! -name markdown.md -print |
LANG=C sort -d |
xargs grep '\]([^)][^)]*)' /dev/null |
sed -E \
+4 -1
View File
@@ -295,7 +295,10 @@ fi
#
# markdown_path.md [pseudo title](path)
#
find . -name '*.md' -print |
# We do not process markdown.md because it contains examples
# of poor markdown use.
#
find . -name '*.md' ! -name markdown.md -print |
LANG=C sort -d |
xargs grep '\]([^)][^)]*)' /dev/null |
sed -E \
+4 -1
View File
@@ -306,7 +306,10 @@ fi
#
# markdown_path.md [pseudo title](path)
#
find . -name '*.md' -print |
# We do not process markdown.md because it contains examples
# of poor markdown use.
#
find . -name '*.md' ! -name markdown.md -print |
LANG=C sort -d |
xargs grep '\]([^)][^)]*)' /dev/null |
sed -E \
+4 -1
View File
@@ -295,7 +295,10 @@ fi
#
# markdown_path.md [pseudo title](%%TOKEN%%path)
#
find . -name '*.md' -print |
# We do not process markdown.md because it contains examples
# of poor markdown use.
#
find . -name '*.md' ! -name markdown.md -print |
LANG=C sort -d |
xargs grep '\](%%[A-Za-z][0-9A-Za-z_]*%%[^)]*)' /dev/null |
sed -E \