fix many internal links

Fixed a number of internal links that need to
go to the GitHub site.

Ran `make www` to perform the above.
This commit is contained in:
Landon Curt Noll committed 2024-04-24 02:37:42 -07:00
1 parent b84f8cbe28
commit e7d69bc232
175 files changed
+645 -631

No files matched your search

+2 -2
View File
@@ -71,8 +71,8 @@ to:
for(signal=0;*k *x * __FILE__ *i;) do { for(signal=0;*k *x * __FILE__ *i;) do {
``` ```
To see what we mean look at the [original source file](decot.orig.c). The To see what we mean look at the [original source file](%%REPO_URL%%/1984/decot/decot.orig.c). The
[alternate code](decot.alt.c) is the version that has this modification. The [alternate code](%%REPO_URL%%/1984/decot/decot.alt.c) is the version that has this modification. The
fixed version has instead: fixed version has instead:
``` <!---c--> ``` <!---c-->
+2 -2
View File
@@ -406,8 +406,8 @@ changed it from:</p>
<pre><code> for(signal=0;*k * x * __FILE__ *i;) do {</code></pre> <pre><code> for(signal=0;*k * x * __FILE__ *i;) do {</code></pre>
<p>to:</p> <p>to:</p>
<pre><code> for(signal=0;*k *x * __FILE__ *i;) do {</code></pre> <pre><code> for(signal=0;*k *x * __FILE__ *i;) do {</code></pre>
<p>To see what we mean look at the <a href="decot.orig.c">original source file</a>. The <p>To see what we mean look at the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1984/decot/decot.orig.c">original source file</a>. The
<a href="decot.alt.c">alternate code</a> is the version that has this modification. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1984/decot/decot.alt.c">alternate code</a> is the version that has this modification. The
fixed version has instead:</p> fixed version has instead:</p>
<pre><code> for(signal=0;*k *= * __FILE__ *i;) do {</code></pre> <pre><code> for(signal=0;*k *= * __FILE__ *i;) do {</code></pre>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
+3 -3
View File
@@ -125,8 +125,8 @@ favorite entries!
In 2023 remarks were discovered from [Sjoerd In 2023 remarks were discovered from [Sjoerd
Mullender](../../authors.html#Sjoerd_Mullender), one of the authors, and so was the Mullender](../../authors.html#Sjoerd_Mullender), one of the authors, and so was the
program that was used by the authors to generate the array that he referred to. program that was used by the authors to generate the array that he referred to.
Because [a.out.h](a.out.h), which [gentab.c](gentab.c) uses, is not available in Because [a.out.h](%%REPO_URL%%/1984/mullender/a.out.h), which [gentab.c](%%REPO_URL%%/1984/mullender/gentab.c) uses,
all systems (like macOS) and more importantly because we wanted it to be as is not available in all systems (like macOS) and more importantly because we wanted it to be as
close to as the original as possible we used a copy of close to as the original as possible we used a copy of
<https://raw.githubusercontent.com/dspinellis/unix-history-repo/Research-Release/usr/include/a.out.h> <https://raw.githubusercontent.com/dspinellis/unix-history-repo/Research-Release/usr/include/a.out.h>
in the *fabulous* [Unix History in the *fabulous* [Unix History
@@ -386,7 +386,7 @@ format randomly. So we wrote a program to choose an appropriate format at
random. The program we wrote for that follows. This program actually also random. The program we wrote for that follows. This program actually also
extracted the machine code from the object file. extracted the machine code from the object file.
NOTE from judges: see [gentab.c](gentab.c) for a copy of this file that can be NOTE from judges: see [gentab.c](%%REPO_URL%%/1984/mullender/gentab.c) for a copy of this file that can be
compiled in modern systems. compiled in modern systems.
``` <!---c--> ``` <!---c-->
+3 -3
View File
@@ -456,8 +456,8 @@ favorite entries!</p>
<p>In 2023 remarks were discovered from <a href="../../authors.html#Sjoerd_Mullender">Sjoerd <p>In 2023 remarks were discovered from <a href="../../authors.html#Sjoerd_Mullender">Sjoerd
Mullender</a>, one of the authors, and so was the Mullender</a>, one of the authors, and so was the
program that was used by the authors to generate the array that he referred to. program that was used by the authors to generate the array that he referred to.
Because <a href="a.out.h">a.out.h</a>, which <a href="gentab.c">gentab.c</a> uses, is not available in Because <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1984/mullender/a.out.h">a.out.h</a>, which <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1984/mullender/gentab.c">gentab.c</a> uses,
all systems (like macOS) and more importantly because we wanted it to be as is not available in all systems (like macOS) and more importantly because we wanted it to be as
close to as the original as possible we used a copy of close to as the original as possible we used a copy of
<a href="https://raw.githubusercontent.com/dspinellis/unix-history-repo/Research-Release/usr/include/a.out.h" class="uri">https://raw.githubusercontent.com/dspinellis/unix-history-repo/Research-Release/usr/include/a.out.h</a> <a href="https://raw.githubusercontent.com/dspinellis/unix-history-repo/Research-Release/usr/include/a.out.h" class="uri">https://raw.githubusercontent.com/dspinellis/unix-history-repo/Research-Release/usr/include/a.out.h</a>
in the <em>fabulous</em> <a href="https://github.com/dspinellis/unix-history-repo/tree/Research-Release">Unix History in the <em>fabulous</em> <a href="https://github.com/dspinellis/unix-history-repo/tree/Research-Release">Unix History
@@ -661,7 +661,7 @@ formats for each constant in the resulting array, and we wanted to choose the
format randomly. So we wrote a program to choose an appropriate format at format randomly. So we wrote a program to choose an appropriate format at
random. The program we wrote for that follows. This program actually also random. The program we wrote for that follows. This program actually also
extracted the machine code from the object file.</p> extracted the machine code from the object file.</p>
<p>NOTE from judges: see <a href="gentab.c">gentab.c</a> for a copy of this file that can be <p>NOTE from judges: see <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1984/mullender/gentab.c">gentab.c</a> for a copy of this file that can be
compiled in modern systems.</p> compiled in modern systems.</p>
<pre><code> #include &lt;stdio.h&gt; <pre><code> #include &lt;stdio.h&gt;
#include &lt;a.out.h&gt; #include &lt;a.out.h&gt;
+1 -1
View File
@@ -27,7 +27,7 @@ if nothing else.
Due to the different [conflicting problems](compilers.html) with gcc and clang, we Due to the different [conflicting problems](compilers.html) with gcc and clang, we
instead offer the problematic code as an alternate version whereas instead offer the problematic code as an alternate version whereas
[marshall.c](marshall.c) has both the infinite loop and the complicated arg to [marshall.c](%%REPO_URL%%/1986/marshall/marshall.c) has both the infinite loop and the complicated arg to
`_exit()` commented out, changing the value passed into `_exit()` to `1`. `_exit()` commented out, changing the value passed into `_exit()` to `1`.
+1 -1
View File
@@ -393,7 +393,7 @@ if nothing else.</p>
<h2 id="alternate-code">Alternate code:</h2> <h2 id="alternate-code">Alternate code:</h2>
<p>Due to the different <a href="compilers.html">conflicting problems</a> with gcc and clang, we <p>Due to the different <a href="compilers.html">conflicting problems</a> with gcc and clang, we
instead offer the problematic code as an alternate version whereas instead offer the problematic code as an alternate version whereas
<a href="marshall.c">marshall.c</a> has both the infinite loop and the complicated arg to <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1986/marshall/marshall.c">marshall.c</a> has both the infinite loop and the complicated arg to
<code>_exit()</code> commented out, changing the value passed into <code>_exit()</code> to <code>1</code>.</p> <code>_exit()</code> commented out, changing the value passed into <code>_exit()</code> to <code>1</code>.</p>
<h3 id="alternate-build">Alternate build:</h3> <h3 id="alternate-build">Alternate build:</h3>
<p>To see if your compiler has the problems noted:</p> <p>To see if your compiler has the problems noted:</p>
+3 -3
View File
@@ -8,15 +8,15 @@ You may then wish to look at the Author's remarks for even more details.
Instructions for use: Run `make` to compile entries (it is possible that on Instructions for use: Run `make` to compile entries (it is possible that on
System V or non-Unix systems the Makefile needs to be changed). System V or non-Unix systems the Makefile needs to be changed).
The Makefile for ["Best self modifying program"](fubar/indx.html) always uses The Makefile for ["Best self modifying program"](fubar/index.html) always uses
the most portable version because there is no loss of functionality in the most portable version because there is no loss of functionality in
using it. In the case of the ["Best game"](tromp/README) entry, however, some using it. In the case of the ["Best game"](tromp/index.html) entry, however, some
functionality is lost in the portable version and so its Makefile uses functionality is lost in the portable version and so its Makefile uses
the original program. the original program.
This year, the [Best of Show](jar.2/index.html) was given to the most useful program. This year, the [Best of Show](jar.2/index.html) was given to the most useful program.
The ["Strangest abuse of the rules"](jar.1/indx.html) award was given this year The ["Strangest abuse of the rules"](jar.1/index.html) award was given this year
to stress the fact that starting in 1990, compiling entries must result a to stress the fact that starting in 1990, compiling entries must result a
regular executable file. regular executable file.
+3 -3
View File
@@ -369,13 +369,13 @@ Look at the winning source and try to figure how it does what it does!
You may then wish to look at the Author’s remarks for even more details.</p> You may then wish to look at the Author’s remarks for even more details.</p>
<p>Instructions for use: Run <code>make</code> to compile entries (it is possible that on <p>Instructions for use: Run <code>make</code> to compile entries (it is possible that on
System V or non-Unix systems the Makefile needs to be changed).</p> System V or non-Unix systems the Makefile needs to be changed).</p>
<p>The Makefile for <a href="fubar/indx.html">“Best self modifying program”</a> always uses <p>The Makefile for <a href="fubar/index.html">“Best self modifying program”</a> always uses
the most portable version because there is no loss of functionality in the most portable version because there is no loss of functionality in
using it. In the case of the <a href="tromp/README">“Best game”</a> entry, however, some using it. In the case of the <a href="tromp/index.html">“Best game”</a> entry, however, some
functionality is lost in the portable version and so its Makefile uses functionality is lost in the portable version and so its Makefile uses
the original program.</p> the original program.</p>
<p>This year, the <a href="jar.2/index.html">Best of Show</a> was given to the most useful program.</p> <p>This year, the <a href="jar.2/index.html">Best of Show</a> was given to the most useful program.</p>
<p>The <a href="jar.1/indx.html">“Strangest abuse of the rules”</a> award was given this year <p>The <a href="jar.1/index.html">“Strangest abuse of the rules”</a> award was given this year
to stress the fact that starting in 1990, compiling entries must result a to stress the fact that starting in 1990, compiling entries must result a
regular executable file.</p> regular executable file.</p>
<p><a href="rules.txt">Rules</a> and <a href="../years.html#1989">results</a> were posted to <p><a href="rules.txt">Rules</a> and <a href="../years.html#1989">results</a> were posted to
+1 -1
View File
@@ -92,7 +92,7 @@ of the program which we include below:
e(x){x<0?write(2,"?\n$ "-x/4,2),x+1||(exit(1),0):5;} e(x){x<0?write(2,"?\n$ "-x/4,2),x+1||(exit(1),0):5;}
``` ```
and in the [alternate source](tbr.alt.c). It has the `exit()` returns `void` fix and in the [alternate source](%%REPO_URL%%/1990/tbr/tbr.alt.c). It has the `exit()` returns `void` fix
as well as the `gets()` to `fgets()` fix applied to it to make it functionally as well as the `gets()` to `fgets()` fix applied to it to make it functionally
equivalent like the authors intended. equivalent like the authors intended.
+1 -1
View File
@@ -436,7 +436,7 @@ of the program which we include below:</p>
0),e(open(*i,0)):5,t?dup2(t,1)D t):i[2]?9 D 0),e(open(*i,0)):5,t?dup2(t,1)D t):i[2]?9 D
1),e(creat(i[2],438)):2,e(execvp(*u,u))):e(chdir(u[1])*2):6;} 1),e(creat(i[2],438)):2,e(execvp(*u,u))):e(chdir(u[1])*2):6;}
e(x){x&lt;0?write(2,&quot;?\n$ &quot;-x/4,2),x+1||(exit(1),0):5;}</code></pre> e(x){x&lt;0?write(2,&quot;?\n$ &quot;-x/4,2),x+1||(exit(1),0):5;}</code></pre>
<p>and in the <a href="tbr.alt.c">alternate source</a>. It has the <code>exit()</code> returns <code>void</code> fix <p>and in the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1990/tbr/tbr.alt.c">alternate source</a>. It has the <code>exit()</code> returns <code>void</code> fix
as well as the <code>gets()</code> to <code>fgets()</code> fix applied to it to make it functionally as well as the <code>gets()</code> to <code>fgets()</code> fix applied to it to make it functionally
equivalent like the authors intended.</p> equivalent like the authors intended.</p>
<h3 id="alternate-build">Alternate build:</h3> <h3 id="alternate-build">Alternate build:</h3>
+1 -1
View File
@@ -61,7 +61,7 @@ game:
``` ```
The shell script determines when the game is over, and automatically replaces The shell script determines when the game is over, and automatically replaces
`merlyn.c` (copied from [westley.c](westley.c) with an improved version after a `merlyn.c` (copied from [westley.c](%%REPO_URL%%/1991/westley/westley.c) with an improved version after a
loss). The [ttt](%%REPO_URL%%/1991/westley/ttt.sh) script has two other modes: loss). The [ttt](%%REPO_URL%%/1991/westley/ttt.sh) script has two other modes:
``` <!---sh--> ``` <!---sh-->
+1 -1
View File
@@ -406,7 +406,7 @@ game:</p>
./ttt [first_move] # &lt;- omit first arg to have it move first ./ttt [first_move] # &lt;- omit first arg to have it move first
./ttt next_move</code></pre> ./ttt next_move</code></pre>
<p>The shell script determines when the game is over, and automatically replaces <p>The shell script determines when the game is over, and automatically replaces
<code>merlyn.c</code> (copied from <a href="westley.c">westley.c</a> with an improved version after a <code>merlyn.c</code> (copied from <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/westley/westley.c">westley.c</a> with an improved version after a
loss). The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/westley/ttt.sh">ttt</a> script has two other modes:</p> loss). The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/westley/ttt.sh">ttt</a> script has two other modes:</p>
<pre><code> ./ttt quitgame # cancel any game in progress, revert to merlyn.c <pre><code> ./ttt quitgame # cancel any game in progress, revert to merlyn.c
./ttt clobber # remove all game files, revert to original source</code></pre> ./ttt clobber # remove all game files, revert to original source</code></pre>
+1 -1
View File
@@ -57,7 +57,7 @@ judges this Email message:
``` ```
The [albert.alt.c](%%REPO_URL%%/1992/albert/albert.c) file is the fixed file, whereas the The [albert.alt.c](%%REPO_URL%%/1992/albert/albert.c) file is the fixed file, whereas the
[albert.c](1992/albert/1992/albert/lbert.c) is the file before applying Leo Broukhis' fix. [albert.c](%%REPO_URL%%/1992/albert/1992/albert/lbert.c) is the file before applying Leo Broukhis' fix.
### Alternate build: ### Alternate build:
+1 -1
View File
@@ -407,7 +407,7 @@ judges this Email message:</p>
Both albert and albert.orig loop without printing anything, although Both albert and albert.orig loop without printing anything, although
the first factor is 101 and is usually found in an instant.</code></pre> the first factor is 101 and is usually found in an instant.</code></pre>
<p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/albert/albert.c">albert.alt.c</a> file is the fixed file, whereas the <p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/albert/albert.c">albert.alt.c</a> file is the fixed file, whereas the
<a href="1992/albert/1992/albert/lbert.c">albert.c</a> is the file before applying Leo Broukhis’ fix.</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/albert/1992/albert/lbert.c">albert.c</a> is the file before applying Leo Broukhis’ fix.</p>
<h3 id="alternate-build">Alternate build:</h3> <h3 id="alternate-build">Alternate build:</h3>
<p>To compile this alternate version:</p> <p>To compile this alternate version:</p>
<pre><code> make alt</code></pre> <pre><code> make alt</code></pre>
+1 -1
View File
@@ -58,7 +58,7 @@ Then using the proper dictionary file it does:
where `/usr/share/dict/words` is the dictionary file. where `/usr/share/dict/words` is the dictionary file.
Then it uses the [mkdict.sh](%%REPO_URL%%/1992/gson/mkdict.sh) script to create a dictionary file out Then it uses the [mkdict.sh](%%REPO_URL%%/1992/gson/mkdict.sh) script to create a dictionary file out
of the files [README.md](%%REPO_URL%%/1992/gson/README.md), [try.sh](try.sh) (itself) and of the files [index.html](%%REPO_URL%%/1992/gson/index.html), [try.sh](%%REPO_URL%%/1992/gson/try.sh) (itself) and
[Makefile](%%REPO_URL%%/1992/gson/Makefile) and it repeats the same commands as above. In the case no [Makefile](%%REPO_URL%%/1992/gson/Makefile) and it repeats the same commands as above. In the case no
dictionary file can be found in the first step it only runs the commands once dictionary file can be found in the first step it only runs the commands once
with the created dictionary file. with the created dictionary file.
+1 -1
View File
@@ -406,7 +406,7 @@ following locations though the last one is more ironic:</p>
./ag paul e tsongas &lt; /usr/share/dict/words</code></pre> ./ag paul e tsongas &lt; /usr/share/dict/words</code></pre>
<p>where <code>/usr/share/dict/words</code> is the dictionary file.</p> <p>where <code>/usr/share/dict/words</code> is the dictionary file.</p>
<p>Then it uses the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/mkdict.sh">mkdict.sh</a> script to create a dictionary file out <p>Then it uses the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/mkdict.sh">mkdict.sh</a> script to create a dictionary file out
of the files <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/README.md">README.md</a>, <a href="try.sh">try.sh</a> (itself) and of the files <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/index.html">index.html</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/try.sh">try.sh</a> (itself) and
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/Makefile">Makefile</a> and it repeats the same commands as above. In the case no <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/Makefile">Makefile</a> and it repeats the same commands as above. In the case no
dictionary file can be found in the first step it only runs the commands once dictionary file can be found in the first step it only runs the commands once
with the created dictionary file.</p> with the created dictionary file.</p>
+1 -1
View File
@@ -77,7 +77,7 @@ you have with the program. :-)
NOTE: Some systems do not need (or have) `-lsocket -lresolv -lnsl`. NOTE: Some systems do not need (or have) `-lsocket -lresolv -lnsl`.
Such systems should compile using `-lX11`. Such systems should compile using `-lX11`.
NOTE: The original winning source [kivinen.orig.c](kivinen.orig.c) assumed that NOTE: The original winning source [kivinen.orig.c](%%REPO_URL%%/1992/kivinen/kivinen.orig.c) assumed that
`exit(3)` returned a value which cause problems for some systems where `exit(3)` returns `exit(3)` returned a value which cause problems for some systems where `exit(3)` returns
`void`. The file [kivinen.c](%%REPO_URL%%/1992/kivinen/kivinen.c) avoids this problem. `void`. The file [kivinen.c](%%REPO_URL%%/1992/kivinen/kivinen.c) avoids this problem.
+1 -1
View File
@@ -414,7 +414,7 @@ code.</p>
you have with the program. :-)</p> you have with the program. :-)</p>
<p>NOTE: Some systems do not need (or have) <code>-lsocket -lresolv -lnsl</code>. <p>NOTE: Some systems do not need (or have) <code>-lsocket -lresolv -lnsl</code>.
Such systems should compile using <code>-lX11</code>.</p> Such systems should compile using <code>-lX11</code>.</p>
<p>NOTE: The original winning source <a href="kivinen.orig.c">kivinen.orig.c</a> assumed that <p>NOTE: The original winning source <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/kivinen/kivinen.orig.c">kivinen.orig.c</a> assumed that
<code>exit(3)</code> returned a value which cause problems for some systems where <code>exit(3)</code> returns <code>exit(3)</code> returned a value which cause problems for some systems where <code>exit(3)</code> returns
<code>void</code>. The file <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/kivinen/kivinen.c">kivinen.c</a> avoids this problem.</p> <code>void</code>. The file <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/kivinen/kivinen.c">kivinen.c</a> avoids this problem.</p>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
+1 -1
View File
@@ -22,7 +22,7 @@ NOTE: Some compilers have had trouble optimizing this entry.
NOTE: Some systems need to compile with `-ltermcap` as well as `-lcurses`. NOTE: Some systems need to compile with `-ltermcap` as well as `-lcurses`.
NOTE: The original winning source [marangon.orig.c](marangon.orig.c), found in NOTE: The original winning source [marangon.orig.c](%%REPO_URL%%/1992/marangon/marangon.orig.c), found in
the archive directory, assumed that `exit(3)` returns a value which cause the archive directory, assumed that `exit(3)` returns a value which cause
problems for some systems where `exit(3)` returns a `void`. The file problems for some systems where `exit(3)` returns a `void`. The file
[marangon.c](%%REPO_URL%%/1992/marangon/marangon.c) avoids this problem. [marangon.c](%%REPO_URL%%/1992/marangon/marangon.c) avoids this problem.
+1 -1
View File
@@ -387,7 +387,7 @@ numbers as needed. It is the side effects that get you into trouble. If you
are not careful, you may find things “at 6’s and 7’s”. :-)</p> are not careful, you may find things “at 6’s and 7’s”. :-)</p>
<p>NOTE: Some compilers have had trouble optimizing this entry.</p> <p>NOTE: Some compilers have had trouble optimizing this entry.</p>
<p>NOTE: Some systems need to compile with <code>-ltermcap</code> as well as <code>-lcurses</code>.</p> <p>NOTE: Some systems need to compile with <code>-ltermcap</code> as well as <code>-lcurses</code>.</p>
<p>NOTE: The original winning source <a href="marangon.orig.c">marangon.orig.c</a>, found in <p>NOTE: The original winning source <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/marangon/marangon.orig.c">marangon.orig.c</a>, found in
the archive directory, assumed that <code>exit(3)</code> returns a value which cause the archive directory, assumed that <code>exit(3)</code> returns a value which cause
problems for some systems where <code>exit(3)</code> returns a <code>void</code>. The file problems for some systems where <code>exit(3)</code> returns a <code>void</code>. The file
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/marangon/marangon.c">marangon.c</a> avoids this problem.</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/marangon/marangon.c">marangon.c</a> avoids this problem.</p>
+1 -1
View File
@@ -49,7 +49,7 @@ and
to another value like 18 or 19 which you can do with the alternate code. to another value like 18 or 19 which you can do with the alternate code.
In the case of [rince.alt2.c](rince.alt2.c) the movement keys for the default In the case of [rince.alt2.c](%%REPO_URL%%/1993/rince/rince.alt2.c) the movement keys for the default
game are slightly different and will feel more familiar to vi users: `h` for game are slightly different and will feel more familiar to vi users: `h` for
left, `l` for right (that was not changed) and `k` for fire (that was also not left, `l` for right (that was not changed) and `k` for fire (that was also not
changed). changed).
+1 -1
View File
@@ -397,7 +397,7 @@ value 17 in the lines:</p>
<p>and</p> <p>and</p>
<pre><code> refresh(),c=select(k,&amp;y,0,0,(v.tv_usec=1&lt;&lt;17,&amp;v))?getch():0;</code></pre> <pre><code> refresh(),c=select(k,&amp;y,0,0,(v.tv_usec=1&lt;&lt;17,&amp;v))?getch():0;</code></pre>
<p>to another value like 18 or 19 which you can do with the alternate code.</p> <p>to another value like 18 or 19 which you can do with the alternate code.</p>
<p>In the case of <a href="rince.alt2.c">rince.alt2.c</a> the movement keys for the default <p>In the case of <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/rince/rince.alt2.c">rince.alt2.c</a> the movement keys for the default
game are slightly different and will feel more familiar to vi users: <code>h</code> for game are slightly different and will feel more familiar to vi users: <code>h</code> for
left, <code>l</code> for right (that was not changed) and <code>k</code> for fire (that was also not left, <code>l</code> for right (that was not changed) and <code>k</code> for fire (that was also not
changed).</p> changed).</p>
+2 -2
View File
@@ -84,8 +84,8 @@ in an effort to get around the 1994 version of Rule 2:
followed by either whitespace or end of file, must be <= 1536. followed by either whitespace or end of file, must be <= 1536.
``` ```
Indeed, when [dodsond2.gz](dodsond2.gz) is uncompressed, it is identical Indeed the [dodsond2.c](%%REPO_URL%%/1994/dodsond2/dodsond2.c) file is
to the [dodsond2.c](%%REPO_URL%%/1994/dodsond2/dodsond2.c) file you find today. what you find today.
The IOCCC rules and guidelines were modified in an effort to address The IOCCC rules and guidelines were modified in an effort to address
this fun "_abuse of the rules_" style hack. this fun "_abuse of the rules_" style hack.
+2 -2
View File
@@ -414,8 +414,8 @@ in an effort to get around the 1994 version of Rule 2:</p>
<pre><code> 2) Your entry must be &lt;= 3217 bytes in length. The number of characters <pre><code> 2) Your entry must be &lt;= 3217 bytes in length. The number of characters
excluding whitespace (tab, space, newline), and excluding any ; { or } excluding whitespace (tab, space, newline), and excluding any ; { or }
followed by either whitespace or end of file, must be &lt;= 1536.</code></pre> followed by either whitespace or end of file, must be &lt;= 1536.</code></pre>
<p>Indeed, when <a href="dodsond2.gz">dodsond2.gz</a> is uncompressed, it is identical <p>Indeed the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/dodsond2/dodsond2.c">dodsond2.c</a> file is
to the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/dodsond2/dodsond2.c">dodsond2.c</a> file you find today.</p> what you find today.</p>
<p>The IOCCC rules and guidelines were modified in an effort to address <p>The IOCCC rules and guidelines were modified in an effort to address
this fun “<em>abuse of the rules</em>” style hack.</p> this fun “<em>abuse of the rules</em>” style hack.</p>
<p>It is worth noting that without this compression “<em>abuse of the rules</em>” <p>It is worth noting that without this compression “<em>abuse of the rules</em>”
+5 -5
View File
@@ -51,7 +51,7 @@ source file is self documenting. :-)
From time to time, run `ps(1)` and look at the new processes. From time to time, run `ps(1)` and look at the new processes.
See [shapiro.html](shapiro.html) for more information in the internals of this program. See [shapiro.html](shapiro.html) for more information in the internals of this program.
The file [shapiro.alt.c](shapiro.alt.c) contains a non-obfuscated version of The file [shapiro.alt.c](%%REPO_URL%%/1994/shapiro/shapiro.alt.c) contains a non-obfuscated version of
this program. Note that this alt file is currently missing. See this program. Note that this alt file is currently missing. See
[1994 shapiro bugs](../../bugs.html#1994_shapiro) for details. [1994 shapiro bugs](../../bugs.html#1994_shapiro) for details.
@@ -67,18 +67,18 @@ The basic theme (pun) of this program is:
``` ```
My entry ([shapiro.c](shapiro.c)) is mostly comments, formatted in the shape of a My entry ([shapiro.c](%%REPO_URL%%/1994/shapiro/shapiro.c)) is mostly comments, formatted in the shape of a
clock. If you strip out the comments and look at the code you will clock. If you strip out the comments and look at the code you will
quickly realize that the comments were the important part and that quickly realize that the comments were the important part and that
the code does very little (see pun above). It writes (to `stdout`) the code does very little (see pun above). It writes (to `stdout`)
another C program ([shapiro_t2.c](shapiro_t2.c)). This is the first level of another C program ([shapiro_t2.c](%%REPO_URL%%/1994/shapiro/shapiro_t2.c)). This is the first level of
obfuscation. obfuscation.
The second program ([shapiro_t2.c](shapiro_t2.c) (use `make everything` first) The second program ([shapiro_t2.c](%%REPO_URL%%/1994/shapiro/shapiro_t2.c) (use `make everything` first)
prints a clock in the upper right hand corner of your VTxxx/ANSI display. prints a clock in the upper right hand corner of your VTxxx/ANSI display.
Most of the surface obfuscation in the second program Most of the surface obfuscation in the second program
([shapiro_t2.c](shapiro_t2.c)) was an attempt to make it as small as possible. ([shapiro_t2.c](%%REPO_URL%%/1994/shapiro/shapiro_t2.c)) was an attempt to make it as small as possible.
You should be able to see around this with `cb(1)` and some more intelligent You should be able to see around this with `cb(1)` and some more intelligent
variable names. Once you get past this you will realize that the third level of variable names. Once you get past this you will realize that the third level of
obfuscation is a six member client/server hierarchy. (See the obfuscation is a six member client/server hierarchy. (See the
+5 -5
View File
@@ -403,23 +403,23 @@ bring it back to the foreground.</p>
source file is self documenting. :-)</p> source file is self documenting. :-)</p>
<p>From time to time, run <code>ps(1)</code> and look at the new processes.</p> <p>From time to time, run <code>ps(1)</code> and look at the new processes.</p>
<p>See <a href="shapiro.html">shapiro.html</a> for more information in the internals of this program. <p>See <a href="shapiro.html">shapiro.html</a> for more information in the internals of this program.
The file <a href="shapiro.alt.c">shapiro.alt.c</a> contains a non-obfuscated version of The file <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro.alt.c">shapiro.alt.c</a> contains a non-obfuscated version of
this program. Note that this alt file is currently missing. See this program. Note that this alt file is currently missing. See
<a href="../../bugs.html#1994_shapiro">1994 shapiro bugs</a> for details.</p> <a href="../../bugs.html#1994_shapiro">1994 shapiro bugs</a> for details.</p>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
<p>The basic theme (pun) of this program is:</p> <p>The basic theme (pun) of this program is:</p>
<pre><code> &quot;This time (everything) is not where it should be.&quot; <pre><code> &quot;This time (everything) is not where it should be.&quot;
~~~~</code></pre> ~~~~</code></pre>
<p>My entry (<a href="shapiro.c">shapiro.c</a>) is mostly comments, formatted in the shape of a <p>My entry (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro.c">shapiro.c</a>) is mostly comments, formatted in the shape of a
clock. If you strip out the comments and look at the code you will clock. If you strip out the comments and look at the code you will
quickly realize that the comments were the important part and that quickly realize that the comments were the important part and that
the code does very little (see pun above). It writes (to <code>stdout</code>) the code does very little (see pun above). It writes (to <code>stdout</code>)
another C program (<a href="shapiro_t2.c">shapiro_t2.c</a>). This is the first level of another C program (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro_t2.c">shapiro_t2.c</a>). This is the first level of
obfuscation.</p> obfuscation.</p>
<p>The second program (<a href="shapiro_t2.c">shapiro_t2.c</a> (use <code>make everything</code> first) <p>The second program (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro_t2.c">shapiro_t2.c</a> (use <code>make everything</code> first)
prints a clock in the upper right hand corner of your VTxxx/ANSI display.</p> prints a clock in the upper right hand corner of your VTxxx/ANSI display.</p>
<p>Most of the surface obfuscation in the second program <p>Most of the surface obfuscation in the second program
(<a href="shapiro_t2.c">shapiro_t2.c</a>) was an attempt to make it as small as possible. (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro_t2.c">shapiro_t2.c</a>) was an attempt to make it as small as possible.
You should be able to see around this with <code>cb(1)</code> and some more intelligent You should be able to see around this with <code>cb(1)</code> and some more intelligent
variable names. Once you get past this you will realize that the third level of variable names. Once you get past this you will realize that the third level of
obfuscation is a six member client/server hierarchy. (See the obfuscation is a six member client/server hierarchy. (See the
+1 -1
View File
@@ -77,7 +77,7 @@ event of a system shutdown or reboot.
### Bugs ### Bugs
The alternative version ([weisberg.alt.c](weisberg.alt.c)) has never actually run The alternative version ([weisberg.alt.c](%%REPO_URL%%/1994/weisberg/weisberg.alt.c)) has never actually run
to completion. After running for close to a week it had reached somewhere around to completion. After running for close to a week it had reached somewhere around
250e6, when it became necessary to test the reboot feature (which worked 250e6, when it became necessary to test the reboot feature (which worked
remarkably well). As there are quite a lot of primes to be found before reaching remarkably well). As there are quite a lot of primes to be found before reaching
+1 -1
View File
@@ -413,7 +413,7 @@ run to completion, so as an added feature, it will cease execution upon
reception of a signal (any will do equally well), as well as in the reception of a signal (any will do equally well), as well as in the
event of a system shutdown or reboot.</p> event of a system shutdown or reboot.</p>
<h3 id="bugs">Bugs</h3> <h3 id="bugs">Bugs</h3>
<p>The alternative version (<a href="weisberg.alt.c">weisberg.alt.c</a>) has never actually run <p>The alternative version (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/weisberg/weisberg.alt.c">weisberg.alt.c</a>) has never actually run
to completion. After running for close to a week it had reached somewhere around to completion. After running for close to a week it had reached somewhere around
250e6, when it became necessary to test the reboot feature (which worked 250e6, when it became necessary to test the reboot feature (which worked
remarkably well). As there are quite a lot of primes to be found before reaching remarkably well). As there are quite a lot of primes to be found before reaching
+1 -1
View File
@@ -85,7 +85,7 @@ compiler line you will get a different message (**as compiler errors** due to
_This is independent of the previous (if there are any previous) compiler _This is independent of the previous (if there are any previous) compiler
invocations_ specified. That means with the right compiler invocation you can invocations_ specified. That means with the right compiler invocation you can
'win' the game on the first go. But unlike the [alternate code](westley.alt.c), 'win' the game on the first go. But unlike the [alternate code](%%REPO_URL%%/1994/westley/westley.alt.c),
you do not run this program as it will not compile: instead it will be compiler you do not run this program as it will not compile: instead it will be compiler
error messages; there is no running the program. error messages; there is no running the program.
+1 -1
View File
@@ -427,7 +427,7 @@ compiler line you will get a different message (<strong>as compiler errors</stro
(escape the dungeon) and others will show something else.</p> (escape the dungeon) and others will show something else.</p>
<p><em>This is independent of the previous (if there are any previous) compiler <p><em>This is independent of the previous (if there are any previous) compiler
invocations</em> specified. That means with the right compiler invocation you can invocations</em> specified. That means with the right compiler invocation you can
‘win’ the game on the first go. But unlike the <a href="westley.alt.c">alternate code</a>, ‘win’ the game on the first go. But unlike the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/westley/westley.alt.c">alternate code</a>,
you do not run this program as it will not compile: instead it will be compiler you do not run this program as it will not compile: instead it will be compiler
error messages; there is no running the program.</p> error messages; there is no running the program.</p>
<h3 id="original-try">Original try:</h3> <h3 id="original-try">Original try:</h3>
+1 -1
View File
@@ -104,7 +104,7 @@ of operators, and control constructs.
The compiler has absolutely no error checking, so things The compiler has absolutely no error checking, so things
can go wrong. But this is what seasoned C programmers are used to. can go wrong. But this is what seasoned C programmers are used to.
Assume that the interpreter has been compiled (source in [august.c](august.c) Assume that the interpreter has been compiled (source in [august.c](%%REPO_URL%%/1996/august/august.c)
and binary in august) and that we have this in a file named `test.oc`: and binary in august) and that we have this in a file named `test.oc`:
``` <!---c--> ``` <!---c-->
+1 -1
View File
@@ -429,7 +429,7 @@ syntax). Arrays can only be global. There is a rather limited set
of operators, and control constructs.</p> of operators, and control constructs.</p>
<p>The compiler has absolutely no error checking, so things <p>The compiler has absolutely no error checking, so things
can go wrong. But this is what seasoned C programmers are used to.</p> can go wrong. But this is what seasoned C programmers are used to.</p>
<p>Assume that the interpreter has been compiled (source in <a href="august.c">august.c</a> <p>Assume that the interpreter has been compiled (source in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/august/august.c">august.c</a>
and binary in august) and that we have this in a file named <code>test.oc</code>:</p> and binary in august) and that we have this in a file named <code>test.oc</code>:</p>
<pre><code> main() { putchar(&#39;!&#39;); putchar(&#39;\n&#39;); exit(0); }</code></pre> <pre><code> main() { putchar(&#39;!&#39;); putchar(&#39;\n&#39;); exit(0); }</code></pre>
<p>We can then compile by</p> <p>We can then compile by</p>
+1 -1
View File
@@ -48,7 +48,7 @@ make it easier to see what is happening.
## Judges' remarks: ## Judges' remarks:
The original program, with only slight obfuscations, may be found The original program, with only slight obfuscations, may be found
in [hunni.c](%%REPO_URL%%/1996/schweikh2/hunni.c). The perl script, [hunni.pl](hunni.pl), obfuscates it in [hunni.c](%%REPO_URL%%/1996/schweikh2/hunni.c). The perl script, [hunni.pl](%%REPO_URL%%/1996/schweikh2/hunni.pl), obfuscates it
appropriately. Try: appropriately. Try:
``` <!---sh--> ``` <!---sh-->
+1 -1
View File
@@ -399,7 +399,7 @@ ctrl-c to stop it. Observe how the <a href="https://github.com/ioccc-src/temp-te
make it easier to see what is happening.</p> make it easier to see what is happening.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>The original program, with only slight obfuscations, may be found <p>The original program, with only slight obfuscations, may be found
in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/schweikh2/hunni.c">hunni.c</a>. The perl script, <a href="hunni.pl">hunni.pl</a>, obfuscates it in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/schweikh2/hunni.c">hunni.c</a>. The perl script, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/schweikh2/hunni.pl">hunni.pl</a>, obfuscates it
appropriately. Try:</p> appropriately. Try:</p>
<pre><code> less hunni.c <pre><code> less hunni.c
+1 -1
View File
@@ -131,7 +131,7 @@ situation and effectively halts.
I had the pleasure and pain to find all three behaviours on the I had the pleasure and pain to find all three behaviours on the
platforms I use regularly. platforms I use regularly.
The file [schweikh3.info](schweikh3.info) has output for The file [schweikh3.info](%%REPO_URL%%/1996/schweikh3/schweikh3.info) has output for
Solaris, FreeBSD and Linux. The Linux case is interesting in that Solaris, FreeBSD and Linux. The Linux case is interesting in that
the behaviour changes when `calloc(3)` is used instead of `malloc(3)`. the behaviour changes when `calloc(3)` is used instead of `malloc(3)`.
For FreeBSD, the last two lines are not messages stemming from For FreeBSD, the last two lines are not messages stemming from
+1 -1
View File
@@ -463,7 +463,7 @@ situation and effectively halts.</p></li>
</ol> </ol>
<p>I had the pleasure and pain to find all three behaviours on the <p>I had the pleasure and pain to find all three behaviours on the
platforms I use regularly.</p> platforms I use regularly.</p>
<p>The file <a href="schweikh3.info">schweikh3.info</a> has output for <p>The file <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/schweikh3/schweikh3.info">schweikh3.info</a> has output for
Solaris, FreeBSD and Linux. The Linux case is interesting in that Solaris, FreeBSD and Linux. The Linux case is interesting in that
the behaviour changes when <code>calloc(3)</code> is used instead of <code>malloc(3)</code>. the behaviour changes when <code>calloc(3)</code> is used instead of <code>malloc(3)</code>.
For FreeBSD, the last two lines are not messages stemming from For FreeBSD, the last two lines are not messages stemming from
+2 -2
View File
@@ -60,8 +60,8 @@ This 1-line program allows various analog ASCII clocks to print out the time;
the ASCII clock is built from the command line arguments, so many different the ASCII clock is built from the command line arguments, so many different
types of clocks can be generated. Three different scripts are supplied to print types of clocks can be generated. Three different scripts are supplied to print
out a grandfather clock, a mantle clock that runs backwards, and a linear-style out a grandfather clock, a mantle clock that runs backwards, and a linear-style
clock. (they are [clock1.sh](clock1.sh), [clock2.sh](clock2.sh), and clock. (they are [clock1.sh](%%REPO_URL%%/1996/westley/clock1.sh), [clock2.sh](%%REPO_URL%%/1996/westley/clock2.sh), and
[clock3.sh](clock3.sh)) [clock3.sh](%%REPO_URL%%/1996/westley/clock3.sh))
The program makes the following (possibly non-portable) assumptions: The program makes the following (possibly non-portable) assumptions:
+2 -2
View File
@@ -406,8 +406,8 @@ understand it.</p>
the ASCII clock is built from the command line arguments, so many different the ASCII clock is built from the command line arguments, so many different
types of clocks can be generated. Three different scripts are supplied to print types of clocks can be generated. Three different scripts are supplied to print
out a grandfather clock, a mantle clock that runs backwards, and a linear-style out a grandfather clock, a mantle clock that runs backwards, and a linear-style
clock. (they are <a href="clock1.sh">clock1.sh</a>, <a href="clock2.sh">clock2.sh</a>, and clock. (they are <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/westley/clock1.sh">clock1.sh</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/westley/clock2.sh">clock2.sh</a>, and
<a href="clock3.sh">clock3.sh</a>)</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/westley/clock3.sh">clock3.sh</a>)</p>
<p>The program makes the following (possibly non-portable) assumptions:</p> <p>The program makes the following (possibly non-portable) assumptions:</p>
<ol type="1"> <ol type="1">
<li><p>Command line strings can be written to.</p></li> <li><p>Command line strings can be written to.</p></li>
+1 -1
View File
@@ -219,7 +219,7 @@ Here is a brief description of the scenery files:
Simple obstacle course. Try to fly over the buildings and under the Simple obstacle course. Try to fly over the buildings and under the
bridges. bridges.
- [pyramids.sc](1998/banks/pyramids.sc) - [pyramids.sc](%%REPO_URL%%/1998/banks/pyramids.sc)
Fly over the tombs of the ancient Pharaohs, in this (fictitious) Egyptian Fly over the tombs of the ancient Pharaohs, in this (fictitious) Egyptian
landscape. landscape.
+1 -1
View File
@@ -519,7 +519,7 @@ to your right.</p></li>
<li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/banks/bb.sc">bb.sc</a></p> <li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/banks/bb.sc">bb.sc</a></p>
<p>Simple obstacle course. Try to fly over the buildings and under the <p>Simple obstacle course. Try to fly over the buildings and under the
bridges.</p></li> bridges.</p></li>
<li><p><a href="1998/banks/pyramids.sc">pyramids.sc</a></p> <li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/banks/pyramids.sc">pyramids.sc</a></p>
<p>Fly over the tombs of the ancient Pharaohs, in this (fictitious) Egyptian <p>Fly over the tombs of the ancient Pharaohs, in this (fictitious) Egyptian
landscape.</p></li> landscape.</p></li>
<li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/banks/river.sc">river.sc</a></p> <li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/banks/river.sc">river.sc</a></p>
+1 -1
View File
@@ -28,7 +28,7 @@ Enter an expression on standard input. To try some we have selected:
### Historical aside: ### Historical aside:
At a time the code in [fanf.c](%%REPO_URL%%/1998/fanf/fanf.c) was that of [fanf.orig.c](fanf.orig.c) At a time the code in [fanf.c](%%REPO_URL%%/1998/fanf/fanf.c) was that of [fanf.orig.c](%%REPO_URL%%/1998/fanf/fanf.orig.c)
but to get this to compile in modern systems it had to be translated to what you but to get this to compile in modern systems it had to be translated to what you
now see. The intermediate steps can still be performed but they might be now see. The intermediate steps can still be performed but they might be
different from the past. This should be kept in mind as you read the below different from the past. This should be kept in mind as you read the below
+1 -1
View File
@@ -388,7 +388,7 @@ this entry because of the system resources it requires.</p>
<pre><code> ./try.sh</code></pre> <pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<h3 id="historical-aside">Historical aside:</h3> <h3 id="historical-aside">Historical aside:</h3>
<p>At a time the code in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/fanf/fanf.c">fanf.c</a> was that of <a href="fanf.orig.c">fanf.orig.c</a> <p>At a time the code in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/fanf/fanf.c">fanf.c</a> was that of <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/fanf/fanf.orig.c">fanf.orig.c</a>
but to get this to compile in modern systems it had to be translated to what you but to get this to compile in modern systems it had to be translated to what you
now see. The intermediate steps can still be performed but they might be now see. The intermediate steps can still be performed but they might be
different from the past. This should be kept in mind as you read the below different from the past. This should be kept in mind as you read the below
+1 -1
View File
@@ -78,7 +78,7 @@ the letter `e`.
The IOCCC has been no stranger to this concept. Several winning entries from The IOCCC has been no stranger to this concept. Several winning entries from
years past have accomplished interesting feats while completely avoiding the use years past have accomplished interesting feats while completely avoiding the use
of certain C constructs thought to be essential (e.g. of certain C constructs thought to be essential (e.g.
[1988/robison.c](../../1988/robison/robison.c)). If you have to ask why they would [1988/robison.c](%%REPO_URL%%/1988/robison/robison.c)). If you have to ask why they would
do it this way, then this contest just isn't for you. do it this way, then this contest just isn't for you.
In continuing with this fine tradition, this program suggests to the ANSI In continuing with this fine tradition, this program suggests to the ANSI
+1 -1
View File
@@ -422,7 +422,7 @@ the letter <code>e</code>.</p>
<p>The IOCCC has been no stranger to this concept. Several winning entries from <p>The IOCCC has been no stranger to this concept. Several winning entries from
years past have accomplished interesting feats while completely avoiding the use years past have accomplished interesting feats while completely avoiding the use
of certain C constructs thought to be essential (e.g. of certain C constructs thought to be essential (e.g.
<a href="../../1988/robison/robison.c">1988/robison.c</a>). If you have to ask why they would <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/robison/robison.c">1988/robison.c</a>). If you have to ask why they would
do it this way, then this contest just isn’t for you.</p> do it this way, then this contest just isn’t for you.</p>
<p>In continuing with this fine tradition, this program suggests to the ANSI <p>In continuing with this fine tradition, this program suggests to the ANSI
committee some new practical simplifications for the C language. For instance, committee some new practical simplifications for the C language. For instance,
+1 -1
View File
@@ -247,7 +247,7 @@ printer when you make a hard copy of the source...
While I'm at it, the rules state that only space, tab and newline While I'm at it, the rules state that only space, tab and newline
are ignored for the count (plus '`{`', '`}`', '`;`' followed by are ignored for the count (plus '`{`', '`}`', '`;`' followed by
whitespace). The [mkentry.c](../mkentry.c) program, however, uses `isspace(3)` which whitespace). The [mkentry.c](%%REPO_URL%%/1998/mkentry.c) program, however, uses `isspace(3)` which
returns nonzero for `\v` and `\f` and other characters as well. returns nonzero for `\v` and `\f` and other characters as well.
I could have used a lot more `^K` and `^L` probably undetected by your I could have used a lot more `^K` and `^L` probably undetected by your
counter but decided to err on the side of safety. I use a perl counter but decided to err on the side of safety. I use a perl
+1 -1
View File
@@ -546,7 +546,7 @@ something new – after 14 years of IOCCC. Be sure to have enough paper in your
printer when you make a hard copy of the source…</p> printer when you make a hard copy of the source…</p>
<p>While I’m at it, the rules state that only space, tab and newline <p>While I’m at it, the rules state that only space, tab and newline
are ignored for the count (plus ‘<code>{</code>’, ‘<code>}</code>’, ‘<code>;</code>’ followed by are ignored for the count (plus ‘<code>{</code>’, ‘<code>}</code>’, ‘<code>;</code>’ followed by
whitespace). The <a href="../mkentry.c">mkentry.c</a> program, however, uses <code>isspace(3)</code> which whitespace). The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/mkentry.c">mkentry.c</a> program, however, uses <code>isspace(3)</code> which
returns nonzero for <code>\v</code> and <code>\f</code> and other characters as well. returns nonzero for <code>\v</code> and <code>\f</code> and other characters as well.
I could have used a lot more <code>^K</code> and <code>^L</code> probably undetected by your I could have used a lot more <code>^K</code> and <code>^L</code> probably undetected by your
counter but decided to err on the side of safety. I use a perl counter but decided to err on the side of safety. I use a perl
+1 -1
View File
@@ -45,7 +45,7 @@ them for the next IOCCC.
We believe you will be impressed with this year's winning entries. The [Best of We believe you will be impressed with this year's winning entries. The [Best of
Show](jarijyrki/index.html) is a fine example of compact obfuscation. But don't Show](jarijyrki/index.html) is a fine example of compact obfuscation. But don't
ignore the shorter entries. The [Best Small Program](natori/index.html), [Best ignore the shorter entries. The [Best Small Program](natori/index.html), [Best
Abuse of User](briddlebane/README.m) and [Most Complete Program](tomx/index.html) Abuse of User](briddlebane/index.html) and [Most Complete Program](tomx/index.html)
are well worth studying in detail. are well worth studying in detail.
The [Worst Abuse of the Rules](dlowe/index.html) is technically allowed by the The [Worst Abuse of the Rules](dlowe/index.html) is technically allowed by the
+1 -1
View File
@@ -324,7 +324,7 @@ en/decoded[^4].
### Photo Credit: ### Photo Credit:
[Lavabus](%%REPO_URL%%/2000/bmeyer/lavabus.pgm) was taken by the judge, Landon Curt Noll. [Lavabus](%%REPO_URL%%/2000/bmeyer/lavabus.pgm) was taken by the judge, Landon Curt Noll.
[Michael](%%REPO_URL%%/2000/bmeyer/michael.pgm) was provided by the author. [Lenna](lenna.glic) is a [Michael](%%REPO_URL%%/2000/bmeyer/michael.pgm) was provided by the author. [Lenna](%%REPO_URL%%/2000/bmeyer/lenna.glic) is a
1972 Playboy centerfold (doesn't show very much). 1972 Playboy centerfold (doesn't show very much).
- [michael.pgm](%%REPO_URL%%/2000/bmeyer/michael.pgm) - [michael.pgm](%%REPO_URL%%/2000/bmeyer/michael.pgm)
+1 -1
View File
@@ -584,7 +584,7 @@ interval halving repeated until the precise value has been
en/decoded<a href="#fn5" class="footnote-ref" id="fnref5" role="doc-noteref"><sup>5</sup></a>.</p> en/decoded<a href="#fn5" class="footnote-ref" id="fnref5" role="doc-noteref"><sup>5</sup></a>.</p>
<h3 id="photo-credit">Photo Credit:</h3> <h3 id="photo-credit">Photo Credit:</h3>
<p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/bmeyer/lavabus.pgm">Lavabus</a> was taken by the judge, Landon Curt Noll. <p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/bmeyer/lavabus.pgm">Lavabus</a> was taken by the judge, Landon Curt Noll.
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/bmeyer/michael.pgm">Michael</a> was provided by the author. <a href="lenna.glic">Lenna</a> is a <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/bmeyer/michael.pgm">Michael</a> was provided by the author. <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/bmeyer/lenna.glic">Lenna</a> is a
1972 Playboy centerfold (doesn’t show very much).</p> 1972 Playboy centerfold (doesn’t show very much).</p>
<ul> <ul>
<li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/bmeyer/michael.pgm">michael.pgm</a></p> <li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/bmeyer/michael.pgm">michael.pgm</a></p>
+1 -1
View File
@@ -394,7 +394,7 @@ that was not supplied with the entry.</li>
them for the next IOCCC.</p> them for the next IOCCC.</p>
<p>We believe you will be impressed with this year’s winning entries. The <a href="jarijyrki/index.html">Best of <p>We believe you will be impressed with this year’s winning entries. The <a href="jarijyrki/index.html">Best of
Show</a> is a fine example of compact obfuscation. But don’t Show</a> is a fine example of compact obfuscation. But don’t
ignore the shorter entries. The <a href="natori/index.html">Best Small Program</a>, <a href="briddlebane/README.m">Best ignore the shorter entries. The <a href="natori/index.html">Best Small Program</a>, <a href="briddlebane/index.html">Best
Abuse of User</a> and <a href="tomx/index.html">Most Complete Program</a> Abuse of User</a> and <a href="tomx/index.html">Most Complete Program</a>
are well worth studying in detail.</p> are well worth studying in detail.</p>
<p>The <a href="dlowe/index.html">Worst Abuse of the Rules</a> is technically allowed by the <p>The <a href="dlowe/index.html">Worst Abuse of the Rules</a> is technically allowed by the
+1 -1
View File
@@ -81,7 +81,7 @@ Julian day number (given as a fractional component). E.g.:
A Julian day is defined to be the number of days since January 1st in the year A Julian day is defined to be the number of days since January 1st in the year
`-4712 (4713BC)`, starting at 12 noon GMT.[^1][^2] To aid conversion from our time `-4712 (4713BC)`, starting at 12 noon GMT.[^1][^2] To aid conversion from our time
(GMT) to Julian day there is a supplementary program named: (GMT) to Julian day there is a supplementary program named:
[dmy2jd.c](dmy2jd.c). Run it with `day_float month year` as arguments. See below [dmy2jd.c](%%REPO_URL%%/2000/rince/dmy2jd.c). Run it with `day_float month year` as arguments. See below
for an example. for an example.
+1 -1
View File
@@ -417,7 +417,7 @@ Julian day number (given as a fractional component). E.g.:</p>
<p>A Julian day is defined to be the number of days since January 1st in the year <p>A Julian day is defined to be the number of days since January 1st in the year
<code>-4712 (4713BC)</code>, starting at 12 noon GMT.<a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a><a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a> To aid conversion from our time <code>-4712 (4713BC)</code>, starting at 12 noon GMT.<a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a><a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a> To aid conversion from our time
(GMT) to Julian day there is a supplementary program named: (GMT) to Julian day there is a supplementary program named:
<a href="dmy2jd.c">dmy2jd.c</a>. Run it with <code>day_float month year</code> as arguments. See below <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/rince/dmy2jd.c">dmy2jd.c</a>. Run it with <code>day_float month year</code> as arguments. See below
for an example.</p> for an example.</p>
<h3 id="what-it-does">What it does</h3> <h3 id="what-it-does">What it does</h3>
<p>This program plots the positions of the four <a href="https://en.wikipedia.org/wiki/Galilean_moons">Galilean <p>This program plots the positions of the four <a href="https://en.wikipedia.org/wiki/Galilean_moons">Galilean
+1 -1
View File
@@ -61,7 +61,7 @@ FWIW, none of the compilers with which this entry was tested issued
any warnings or errors in compiling the source for this entry. No any warnings or errors in compiling the source for this entry. No
doubt lint will complain about the goto statements. doubt lint will complain about the goto statements.
The [schneiderwent.data](schneiderwent.data) file consists of the values used by The [schneiderwent.data](%%REPO_URL%%/2000/schneiderwent/schneiderwent.data) file consists of the values used by
multiple table lookups. This is simply good program design, separating these multiple table lookups. This is simply good program design, separating these
values from the source code allows changing the behavior of the application values from the source code allows changing the behavior of the application
without recompiling. without recompiling.
+1 -1
View File
@@ -406,7 +406,7 @@ keeping the program portable between different encodings
<p>FWIW, none of the compilers with which this entry was tested issued <p>FWIW, none of the compilers with which this entry was tested issued
any warnings or errors in compiling the source for this entry. No any warnings or errors in compiling the source for this entry. No
doubt lint will complain about the goto statements.</p> doubt lint will complain about the goto statements.</p>
<p>The <a href="schneiderwent.data">schneiderwent.data</a> file consists of the values used by <p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/schneiderwent/schneiderwent.data">schneiderwent.data</a> file consists of the values used by
multiple table lookups. This is simply good program design, separating these multiple table lookups. This is simply good program design, separating these
values from the source code allows changing the behavior of the application values from the source code allows changing the behavior of the application
without recompiling.</p> without recompiling.</p>
+1 -1
View File
@@ -4,7 +4,7 @@
make make
``` ```
There is an alternate version that compiles [mkentry.c](mkentry.c). See There is an alternate version that compiles [mkentry.c](%%REPO_URL%%/2000/mkentry.c). See
[alternate code](#alternate-code). [alternate code](#alternate-code).
+1 -1
View File
@@ -379,7 +379,7 @@ Location: <a href="../../location.html#NL">NL</a> - <em>Kingdom of the Netherlan
<!-- BEFORE: 1st line of markdown file: 2000/tomx/README.md --> <!-- BEFORE: 1st line of markdown file: 2000/tomx/README.md -->
<h2 id="to-build">To build:</h2> <h2 id="to-build">To build:</h2>
<pre><code> make</code></pre> <pre><code> make</code></pre>
<p>There is an alternate version that compiles <a href="mkentry.c">mkentry.c</a>. See <p>There is an alternate version that compiles <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/mkentry.c">mkentry.c</a>. See
<a href="#alternate-code">alternate code</a>.</p> <a href="#alternate-code">alternate code</a>.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<pre><code> ./tomx</code></pre> <pre><code> ./tomx</code></pre>
+4 -4
View File
@@ -41,7 +41,7 @@ For more detailed information see [2001 anonymous bugs](../../bugs.html#2001_ano
``` ```
NOTE: if the 32-bit version cannot be compiled the script will at least compile NOTE: if the 32-bit version cannot be compiled the script will at least compile
[anonymous.ten](anonymous.ten.c) as a 64-bit program (or whatever your system is [anonymous.ten](%%REPO_URL%%/2001/anonymous/anonymous.ten.c) as a 64-bit program (or whatever your system is
set to) and run it directly. set to) and run it directly.
What happens if the x86 program has already been modified by this program? The What happens if the x86 program has already been modified by this program? The
@@ -105,7 +105,7 @@ run x86 programs on any machine (x86 or otherwise).
I have included a simple [10 Green I have included a simple [10 Green
Bottles](https://www.bbc.co.uk/teach/school-radio/nursery-rhymes-ten-green-bottles/zncyt39) Bottles](https://www.bbc.co.uk/teach/school-radio/nursery-rhymes-ten-green-bottles/zncyt39)
[program](anonymous.ten.c) (try `make anonymous.ten`), meant to be compiled as a [program](%%REPO_URL%%/2001/anonymous/anonymous.ten.c) (try `make anonymous.ten`), meant to be compiled as a
32-bit ELF binary. 32-bit ELF binary.
The program `anonymous.ten`, and its source (dull) are included as data The program `anonymous.ten`, and its source (dull) are included as data
@@ -129,7 +129,7 @@ generates a translation for an entire basic block of subject code. Having
translated a block once, the target code generated will be stored for the translated a block once, the target code generated will be stored for the
duration that the program is running, so as a program runs its performance will duration that the program is running, so as a program runs its performance will
improve, as it hits cached blocks. This can be clearly observed in the example improve, as it hits cached blocks. This can be clearly observed in the example
program, [anonymous.ten](anonymous.ten.c) which must be compiled as a 32-bit ELF program, [anonymous.ten](%%REPO_URL%%/2001/anonymous/anonymous.ten.c) which must be compiled as a 32-bit ELF
binary. binary.
### Target Library Linking: ### Target Library Linking:
@@ -221,7 +221,7 @@ Despite all this, the translator is not exclusively limited to running the
[anonymous.ten](%%REPO_URL%%/2001/anonymous/anonymous.ten.c) program. Other trivial **_x86_** programs may [anonymous.ten](%%REPO_URL%%/2001/anonymous/anonymous.ten.c) program. Other trivial **_x86_** programs may
run on the translator \- and I have successfully run a wide range of "Hello run on the translator \- and I have successfully run a wide range of "Hello
World" programs, including one of last year's IOCCC entries, World" programs, including one of last year's IOCCC entries,
[tomx](2001/anonymous/2000/tomx/tomx.c). [tomx](%%REPO_URL%%/2000/tomx/index.html).
### Complete Program ### Complete Program
+4 -4
View File
@@ -398,7 +398,7 @@ whatever your system will compile them as).</p>
./anonymous anonymous.bed # if able to compile as a 32-bit (-m32) ELF binary</code></pre> ./anonymous anonymous.bed # if able to compile as a 32-bit (-m32) ELF binary</code></pre>
<p>NOTE: if the 32-bit version cannot be compiled the script will at least compile <p>NOTE: if the 32-bit version cannot be compiled the script will at least compile
<a href="anonymous.ten.c">anonymous.ten</a> as a 64-bit program (or whatever your system is <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/anonymous/anonymous.ten.c">anonymous.ten</a> as a 64-bit program (or whatever your system is
set to) and run it directly.</p> set to) and run it directly.</p>
<p>What happens if the x86 program has already been modified by this program? The <p>What happens if the x86 program has already been modified by this program? The
judges’ remarks below might give you a hint!</p> judges’ remarks below might give you a hint!</p>
@@ -436,7 +436,7 @@ quite a lot of bit twiddling.</p>
run x86 programs on any machine (x86 or otherwise).</p> run x86 programs on any machine (x86 or otherwise).</p>
<p>I have included a simple <a href="https://www.bbc.co.uk/teach/school-radio/nursery-rhymes-ten-green-bottles/zncyt39">10 Green <p>I have included a simple <a href="https://www.bbc.co.uk/teach/school-radio/nursery-rhymes-ten-green-bottles/zncyt39">10 Green
Bottles</a> Bottles</a>
<a href="anonymous.ten.c">program</a> (try <code>make anonymous.ten</code>), meant to be compiled as a <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/anonymous/anonymous.ten.c">program</a> (try <code>make anonymous.ten</code>), meant to be compiled as a
32-bit ELF binary.</p> 32-bit ELF binary.</p>
<p>The program <code>anonymous.ten</code>, and its source (dull) are included as data <p>The program <code>anonymous.ten</code>, and its source (dull) are included as data
files.</p> files.</p>
@@ -453,7 +453,7 @@ generates a translation for an entire basic block of subject code. Having
translated a block once, the target code generated will be stored for the translated a block once, the target code generated will be stored for the
duration that the program is running, so as a program runs its performance will duration that the program is running, so as a program runs its performance will
improve, as it hits cached blocks. This can be clearly observed in the example improve, as it hits cached blocks. This can be clearly observed in the example
program, <a href="anonymous.ten.c">anonymous.ten</a> which must be compiled as a 32-bit ELF program, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/anonymous/anonymous.ten.c">anonymous.ten</a> which must be compiled as a 32-bit ELF
binary.</p> binary.</p>
<h3 id="target-library-linking">Target Library Linking:</h3> <h3 id="target-library-linking">Target Library Linking:</h3>
<p>The program runs <a href="https://en.wikipedia.org/wiki/Dynamic_linker">dynamically <p>The program runs <a href="https://en.wikipedia.org/wiki/Dynamic_linker">dynamically
@@ -523,7 +523,7 @@ turn up - yes the program is unsafe, but it’s pretty cool anyway.</p>
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/anonymous/anonymous.ten.c">anonymous.ten</a> program. Other trivial <strong><em>x86</em></strong> programs may <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/anonymous/anonymous.ten.c">anonymous.ten</a> program. Other trivial <strong><em>x86</em></strong> programs may
run on the translator - and I have successfully run a wide range of “Hello run on the translator - and I have successfully run a wide range of “Hello
World” programs, including one of last year’s IOCCC entries, World” programs, including one of last year’s IOCCC entries,
<a href="2001/anonymous/2000/tomx/tomx.c">tomx</a>.</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/tomx/index.html">tomx</a>.</p>
<h3 id="complete-program">Complete Program</h3> <h3 id="complete-program">Complete Program</h3>
<p>The fact that the program makes calls to <code>system(3)</code> and <code>execv(3)</code> may imply that <p>The fact that the program makes calls to <code>system(3)</code> and <code>execv(3)</code> may imply that
it is not a complete program in its own right, as it relies on other programs. it is not a complete program in its own right, as it relies on other programs.
+4 -1
View File
@@ -82,7 +82,10 @@ put `#!/usr/local/bin/otcc` at the beginning of your C source if
you installed `otcc` at this place. you installed `otcc` at this place.
### Supported C language subset (read joint example [bellard.otccex.c](bellard.otccex.c) to have an introduction to `OTCC` dialect) ### Supported C language subset
Read joint example [bellard.otccex.c](%%REPO_URL%%/2001/bellard/bellard.otccex.c) to have an introduction to `OTCC` dialect.
#### Expressions: #### Expressions:
+2 -1
View File
@@ -418,7 +418,8 @@ program.</p>
<p>An alternate syntax is to use it as a script interpreter: you can <p>An alternate syntax is to use it as a script interpreter: you can
put <code>#!/usr/local/bin/otcc</code> at the beginning of your C source if put <code>#!/usr/local/bin/otcc</code> at the beginning of your C source if
you installed <code>otcc</code> at this place.</p> you installed <code>otcc</code> at this place.</p>
<h3 id="supported-c-language-subset-read-joint-example-bellard.otccex.c-to-have-an-introduction-to-otcc-dialect">Supported C language subset (read joint example <a href="bellard.otccex.c">bellard.otccex.c</a> to have an introduction to <code>OTCC</code> dialect)</h3> <h3 id="supported-c-language-subset">Supported C language subset</h3>
<p>Read joint example <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.otccex.c">bellard.otccex.c</a> to have an introduction to <code>OTCC</code> dialect.</p>
<h4 id="expressions">Expressions:</h4> <h4 id="expressions">Expressions:</h4>
<ul> <ul>
<li><p>binary operators, in decreasing precedence order: <code>*</code> <code>/</code> <code>%</code>, <li><p>binary operators, in decreasing precedence order: <code>*</code> <code>/</code> <code>%</code>,
+2 -2
View File
@@ -26,11 +26,11 @@ local compiler.
## Remarks on some of the entries ## Remarks on some of the entries
We believe you will be impressed with this year's winning entries. The [Best of We believe you will be impressed with this year's winning entries. The [Best of
Show](gavin/gavin.c) is a fine example of obfuscation. But don't ignore the Show](%%REPO_URL%%/2004/gavin/gavin.c) is a fine example of obfuscation. But don't ignore the
other entries! There are games, utilities, programs that output images and a other entries! There are games, utilities, programs that output images and a
one-liner that is incredibly compact for what it can do. one-liner that is incredibly compact for what it can do.
The [Best Abuse of the Guidelines](hibachi/hibachi.c) is technically allowed by The [Best Abuse of the Guidelines](%%REPO_URL%%/2004/hibachi/hibachi.c) is technically allowed by
the rules. This year we allowed it due to the functionality of the program. the rules. This year we allowed it due to the functionality of the program.
This entry is one of the easiest to read! Don't assume you can win using This entry is one of the easiest to read! Don't assume you can win using
similar techniques next time ... :-) similar techniques next time ... :-)
+2 -2
View File
@@ -379,11 +379,11 @@ require certain changes (add or remove a library, add or remove a
yours is lacking, you may need to compile using <code>gcc</code> instead of your yours is lacking, you may need to compile using <code>gcc</code> instead of your
local compiler.</p> local compiler.</p>
<h2 id="remarks-on-some-of-the-entries">Remarks on some of the entries</h2> <h2 id="remarks-on-some-of-the-entries">Remarks on some of the entries</h2>
<p>We believe you will be impressed with this year’s winning entries. The <a href="gavin/gavin.c">Best of <p>We believe you will be impressed with this year’s winning entries. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/gavin/gavin.c">Best of
Show</a> is a fine example of obfuscation. But don’t ignore the Show</a> is a fine example of obfuscation. But don’t ignore the
other entries! There are games, utilities, programs that output images and a other entries! There are games, utilities, programs that output images and a
one-liner that is incredibly compact for what it can do.</p> one-liner that is incredibly compact for what it can do.</p>
<p>The <a href="hibachi/hibachi.c">Best Abuse of the Guidelines</a> is technically allowed by <p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/hibachi/hibachi.c">Best Abuse of the Guidelines</a> is technically allowed by
the rules. This year we allowed it due to the functionality of the program. the rules. This year we allowed it due to the functionality of the program.
This entry is one of the easiest to read! Don’t assume you can win using This entry is one of the easiest to read! Don’t assume you can win using
similar techniques next time … :-)</p> similar techniques next time … :-)</p>
+5 -5
View File
@@ -114,7 +114,7 @@ last digit. Four common elements could also be written as isotopes of these two
elements: `He=Np(2)`, `Li=Pu(2)`, `Ta=Np(3)`, `W=Pu(3)`. To get other isotopes, elements: `He=Np(2)`, `Li=Pu(2)`, `Ta=Np(3)`, `W=Pu(3)`. To get other isotopes,
just change the last digit to a number greater than 3. just change the last digit to a number greater than 3.
The build file runs [jdalbec.c](jdalbec.c) through the C preprocessor to The build file runs [jdalbec.c](%%REPO_URL%%/2004/jdalbec/jdalbec.c) through the C preprocessor to
generate `jdalbec2.c` which is edited with `ed(1)` (NOTE: this was generate `jdalbec2.c` which is edited with `ed(1)` (NOTE: this was
changed to `sed(1)` by the judges) to correct spacing changed to `sed(1)` by the judges) to correct spacing
problems caused by some preprocessors. (I know you dislike problems caused by some preprocessors. (I know you dislike
@@ -122,10 +122,10 @@ Perl, but hopefully `ed(1)` is more common on POSIX systems than
Perl.) The build file then compiles `jdalbec2.c]` and removes the Perl.) The build file then compiles `jdalbec2.c]` and removes the
`jdalbec2.c` file. `jdalbec2.c` file.
I don't think I'm abusing the [Makefile](Makefile) since I'm only using I don't think I'm abusing the [Makefile](%%REPO_URL%%/2004/jdalbec/Makefile) since I'm only using
147 characters including white space and the `#!` line and the 147 characters including white space and the `#!` line and the
commented-out `-Wall -pedantic` options. The [rules for the commented-out `-Wall -pedantic` options. The [rules for the
16th IOCCC](../../2004/rules.txt) specifically allowed build files up to 521 16th IOCCC](../rules.txt) specifically allowed build files up to 521
characters long so my build file would have been well within characters long so my build file would have been well within
those limits. (What typo?) those limits. (What typo?)
@@ -168,7 +168,7 @@ line 3 because the compiler doesn't recognize `??=` as a trigraph
step on Mac OS X 10.1.5 generates lots of errors in "smart step on Mac OS X 10.1.5 generates lots of errors in "smart
mode" because the "smart" preprocessor expects a valid C mode" because the "smart" preprocessor expects a valid C
program as input. The preprocessor then falls back to "basic program as input. The preprocessor then falls back to "basic
mode" and preprocesses [jdalbec.c](jdalbec.c) successfully without warnings, mode" and preprocesses [jdalbec.c](%%REPO_URL%%/2004/jdalbec/jdalbec.c) successfully without warnings,
even when I give it the `-Wall -pedantic` options. It inserts even when I give it the `-Wall -pedantic` options. It inserts
a lot of extra spaces into the preprocessed output which is a lot of extra spaces into the preprocessed output which is
why I had to add the `ed(1)` step to the build file so that my why I had to add the `ed(1)` step to the build file so that my
@@ -191,7 +191,7 @@ it if you run into this feature (e.g. `1 22` instead of `122`).
Note: you may want to be sure you have a limit on stack size before trying this. Note: you may want to be sure you have a limit on stack size before trying this.
I ran it on Debian GNU/Linux and discovered that I did not have a limit on stack I ran it on Debian GNU/Linux and discovered that I did not have a limit on stack
size. Fortunately the OS killed the process after a while. This is consistent size. Fortunately the OS killed the process after a while. This is consistent
with the output of [1996/schweikh3](../../1996/schweikh3/schweikh3.c) which reports with the output of [1996/schweikh3](%%REPO_URL%%/1996/schweikh3/schweikh3.c) which reports
`malloc lied! Killed by SIGKILL`. `malloc lied! Killed by SIGKILL`.
Arguments matching `/(?:.){10,}/` will produce visually incorrect Arguments matching `/(?:.){10,}/` will produce visually incorrect
+5 -5
View File
@@ -434,16 +434,16 @@ the <a href="https://en.wikipedia.org/wiki/Isotope">isotopes</a> of
last digit. Four common elements could also be written as isotopes of these two last digit. Four common elements could also be written as isotopes of these two
elements: <code>He=Np(2)</code>, <code>Li=Pu(2)</code>, <code>Ta=Np(3)</code>, <code>W=Pu(3)</code>. To get other isotopes, elements: <code>He=Np(2)</code>, <code>Li=Pu(2)</code>, <code>Ta=Np(3)</code>, <code>W=Pu(3)</code>. To get other isotopes,
just change the last digit to a number greater than 3.</p> just change the last digit to a number greater than 3.</p>
<p>The build file runs <a href="jdalbec.c">jdalbec.c</a> through the C preprocessor to <p>The build file runs <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/jdalbec/jdalbec.c">jdalbec.c</a> through the C preprocessor to
generate <code>jdalbec2.c</code> which is edited with <code>ed(1)</code> (NOTE: this was generate <code>jdalbec2.c</code> which is edited with <code>ed(1)</code> (NOTE: this was
changed to <code>sed(1)</code> by the judges) to correct spacing changed to <code>sed(1)</code> by the judges) to correct spacing
problems caused by some preprocessors. (I know you dislike problems caused by some preprocessors. (I know you dislike
Perl, but hopefully <code>ed(1)</code> is more common on POSIX systems than Perl, but hopefully <code>ed(1)</code> is more common on POSIX systems than
Perl.) The build file then compiles <code>jdalbec2.c]</code> and removes the Perl.) The build file then compiles <code>jdalbec2.c]</code> and removes the
<code>jdalbec2.c</code> file.</p> <code>jdalbec2.c</code> file.</p>
<p>I don’t think I’m abusing the <a href="Makefile">Makefile</a> since I’m only using <p>I don’t think I’m abusing the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/jdalbec/Makefile">Makefile</a> since I’m only using
147 characters including white space and the <code>#!</code> line and the 147 characters including white space and the <code>#!</code> line and the
commented-out <code>-Wall -pedantic</code> options. The <a href="../../2004/rules.txt">rules for the commented-out <code>-Wall -pedantic</code> options. The <a href="../rules.txt">rules for the
16th IOCCC</a> specifically allowed build files up to 521 16th IOCCC</a> specifically allowed build files up to 521
characters long so my build file would have been well within characters long so my build file would have been well within
those limits. (What typo?)</p> those limits. (What typo?)</p>
@@ -481,7 +481,7 @@ line 3 because the compiler doesn’t recognize <code>??=</code> as a trigraph
step on Mac OS X 10.1.5 generates lots of errors in “smart step on Mac OS X 10.1.5 generates lots of errors in “smart
mode” because the “smart” preprocessor expects a valid C mode” because the “smart” preprocessor expects a valid C
program as input. The preprocessor then falls back to “basic program as input. The preprocessor then falls back to “basic
mode” and preprocesses <a href="jdalbec.c">jdalbec.c</a> successfully without warnings, mode” and preprocesses <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/jdalbec/jdalbec.c">jdalbec.c</a> successfully without warnings,
even when I give it the <code>-Wall -pedantic</code> options. It inserts even when I give it the <code>-Wall -pedantic</code> options. It inserts
a lot of extra spaces into the preprocessed output which is a lot of extra spaces into the preprocessed output which is
why I had to add the <code>ed(1)</code> step to the build file so that my why I had to add the <code>ed(1)</code> step to the build file so that my
@@ -500,7 +500,7 @@ it if you run into this feature (e.g. <code>1 22</code> instead of <code>122</c
<p>Note: you may want to be sure you have a limit on stack size before trying this. <p>Note: you may want to be sure you have a limit on stack size before trying this.
I ran it on Debian GNU/Linux and discovered that I did not have a limit on stack I ran it on Debian GNU/Linux and discovered that I did not have a limit on stack
size. Fortunately the OS killed the process after a while. This is consistent size. Fortunately the OS killed the process after a while. This is consistent
with the output of <a href="../../1996/schweikh3/schweikh3.c">1996/schweikh3</a> which reports with the output of <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/schweikh3/schweikh3.c">1996/schweikh3</a> which reports
<code>malloc lied! Killed by SIGKILL</code>.</p> <code>malloc lied! Killed by SIGKILL</code>.</p>
<p>Arguments matching <code>/(?:.){10,}/</code> will produce visually incorrect <p>Arguments matching <code>/(?:.){10,}/</code> will produce visually incorrect
results (e.g., generation 1 starting from 1111111111 will results (e.g., generation 1 starting from 1111111111 will
+1 -1
View File
@@ -101,7 +101,7 @@ the number from 8 to 11 that it thinks it is.
(`$?` is shorter) (`$?` is shorter)
* I achieved some additional tightness by `-Dif=while` which saved 9 chars of * I achieved some additional tightness by `-Dif=while` which saved 9 chars of
source for the cost of 11 chars of the [Makefile](Makefile). If I used source for the cost of 11 chars of the [Makefile](%%REPO_URL%%/2004/kopczynski/Makefile). If I used
`-DB=while`, I would save 12 for 10, but I think the current version is slightly `-DB=while`, I would save 12 for 10, but I think the current version is slightly
more obfuscated. more obfuscated.
+1 -1
View File
@@ -436,7 +436,7 @@ number, not to print it, but if you think otherwise, the change would
cost 6 chars (plus a warning). Change <code>return *</code> to <code>printf("%d",*)</code>. cost 6 chars (plus a warning). Change <code>return *</code> to <code>printf("%d",*)</code>.
(<code>$?</code> is shorter)</p></li> (<code>$?</code> is shorter)</p></li>
<li><p>I achieved some additional tightness by <code>-Dif=while</code> which saved 9 chars of <li><p>I achieved some additional tightness by <code>-Dif=while</code> which saved 9 chars of
source for the cost of 11 chars of the <a href="Makefile">Makefile</a>. If I used source for the cost of 11 chars of the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/kopczynski/Makefile">Makefile</a>. If I used
<code>-DB=while</code>, I would save 12 for 10, but I think the current version is slightly <code>-DB=while</code>, I would save 12 for 10, but I think the current version is slightly
more obfuscated.</p></li> more obfuscated.</p></li>
</ul> </ul>
+3 -3
View File
@@ -58,7 +58,7 @@ more while it puzzles out some puzzles: all in a puzzling way!
`goto` the source and notice the lack of functions. Jump `goto` the source and notice the lack of functions. Jump
to the `switch` statement. And if you think you can puzzle to the `switch` statement. And if you think you can puzzle
it out better, try solving [insane1.sudoku](insane1.sudoku) all by yourself! it out better, try solving [insane1.sudoku](%%REPO_URL%%/2005/aidan/insane1.sudoku) all by yourself!
NOTE: the tarball named by the author was removed after the files were extracted NOTE: the tarball named by the author was removed after the files were extracted
into the directory instead. These files were added to the list. into the directory instead. These files were added to the list.
@@ -91,7 +91,7 @@ Yes, the test suite really is 5 times larger than the actual program. You
### IMPORTANT ### IMPORTANT
[test.perl](test-su.perl) expects the `sudoku-sf` executable to be [test.perl](%%REPO_URL%%/2005/aidan/test-su.perl) expects the `sudoku-sf` executable to be
`./sudoku-sf`. If you rename it, please change the definition of `$sf_exe` to the `./sudoku-sf`. If you rename it, please change the definition of `$sf_exe` to the
new name. new name.
@@ -219,7 +219,7 @@ Input should be the numbers of each row in turn. Empty spaces can be
represented as a full stop (`.`) or zero (`0`). Other characters are ignored, so you represented as a full stop (`.`) or zero (`0`). Other characters are ignored, so you
can cut-and-paste either example sudoku puzzle from above into a file and feed that can cut-and-paste either example sudoku puzzle from above into a file and feed that
in. The program has coped with every input I've thrown at it so far, including in. The program has coped with every input I've thrown at it so far, including
an [empty grid](blank.sudoku). an [empty grid](%%REPO_URL%%/2005/aidan/blank.sudoku).
Output consists of the problem, then the solution, then a message of Output consists of the problem, then the solution, then a message of
success/failure. success/failure.
+3 -3
View File
@@ -402,7 +402,7 @@ which is slower, inelegant and not as obscure, as the author put it.</p>
more while it puzzles out some puzzles: all in a puzzling way!</p> more while it puzzles out some puzzles: all in a puzzling way!</p>
<p><code>goto</code> the source and notice the lack of functions. Jump <p><code>goto</code> the source and notice the lack of functions. Jump
to the <code>switch</code> statement. And if you think you can puzzle to the <code>switch</code> statement. And if you think you can puzzle
it out better, try solving <a href="insane1.sudoku">insane1.sudoku</a> all by yourself!</p> it out better, try solving <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/aidan/insane1.sudoku">insane1.sudoku</a> all by yourself!</p>
<p>NOTE: the tarball named by the author was removed after the files were extracted <p>NOTE: the tarball named by the author was removed after the files were extracted
into the directory instead. These files were added to the list.</p> into the directory instead. These files were added to the list.</p>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
@@ -425,7 +425,7 @@ generate new ones.</p>
<p>Yes, the test suite really is 5 times larger than the actual program. You <p>Yes, the test suite really is 5 times larger than the actual program. You
<strong>did</strong> say this was a parody of the software development process…</p> <strong>did</strong> say this was a parody of the software development process…</p>
<h3 id="important">IMPORTANT</h3> <h3 id="important">IMPORTANT</h3>
<p><a href="test-su.perl">test.perl</a> expects the <code>sudoku-sf</code> executable to be <p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/aidan/test-su.perl">test.perl</a> expects the <code>sudoku-sf</code> executable to be
<code>./sudoku-sf</code>. If you rename it, please change the definition of <code>$sf_exe</code> to the <code>./sudoku-sf</code>. If you rename it, please change the definition of <code>$sf_exe</code> to the
new name.</p> new name.</p>
<p><strong>Judges’ note</strong>: this was done.</p> <p><strong>Judges’ note</strong>: this was done.</p>
@@ -507,7 +507,7 @@ really.</p>
represented as a full stop (<code>.</code>) or zero (<code>0</code>). Other characters are ignored, so you represented as a full stop (<code>.</code>) or zero (<code>0</code>). Other characters are ignored, so you
can cut-and-paste either example sudoku puzzle from above into a file and feed that can cut-and-paste either example sudoku puzzle from above into a file and feed that
in. The program has coped with every input I’ve thrown at it so far, including in. The program has coped with every input I’ve thrown at it so far, including
an <a href="blank.sudoku">empty grid</a>.</p> an <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/aidan/blank.sudoku">empty grid</a>.</p>
<p>Output consists of the problem, then the solution, then a message of <p>Output consists of the problem, then the solution, then a message of
success/failure.</p> success/failure.</p>
<p><code>./aidan U</code> may also be useful, or perhaps not. It only took <p><code>./aidan U</code> may also be useful, or perhaps not. It only took
+2 -2
View File
@@ -37,8 +37,8 @@ NOTE: if your move is invalid it will prompt you again but not show the board.
This entry turns a newspaper solitaire puzzle into a competition This entry turns a newspaper solitaire puzzle into a competition
with the computer to be the last one moving. The object of this with the computer to be the last one moving. The object of this
[source code](meyer.c) is to determine the object of this [source [source code](%%REPO_URL%%/2006/meyer/meyer.c) is to determine the object of this [source
code](meyer.c)! :-) code](%%REPO_URL%%/2006/meyer/meyer.c)! :-)
## Author's remarks: ## Author's remarks:
+1 -1
View File
@@ -393,7 +393,7 @@ more text to fulfil the program’s requirements.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This entry turns a newspaper solitaire puzzle into a competition <p>This entry turns a newspaper solitaire puzzle into a competition
with the computer to be the last one moving. The object of this with the computer to be the last one moving. The object of this
<a href="meyer.c">source code</a> is to determine the object of this <a href="meyer.c">source <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/meyer/meyer.c">source code</a> is to determine the object of this <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/meyer/meyer.c">source
code</a>! :-)</p> code</a>! :-)</p>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
<p>I wanted submit a fully object-oriented entry to show that <p>I wanted submit a fully object-oriented entry to show that
+2 -2
View File
@@ -4,7 +4,7 @@
make make
``` ```
There is an alt version based on the author's remarks. The [try.sh](try.sh) There is an alt version based on the author's remarks. The [try.sh](%%REPO_URL%%/2006/sykes1/try.sh)
script will compile and use both but if you wish to see the alternate version script will compile and use both but if you wish to see the alternate version
specifically see the [Alternate code](#alternate-code) section below. specifically see the [Alternate code](#alternate-code) section below.
@@ -127,7 +127,7 @@ Some instructions on how to make your own cube are in the included file
[bedlam-cubes.pdf](%%REPO_URL%%/2006/sykes1/bedlam-cubes.pdf). [bedlam-cubes.pdf](%%REPO_URL%%/2006/sykes1/bedlam-cubes.pdf).
Finally, you can watch it being solved with the video file here, Finally, you can watch it being solved with the video file here,
[solving-bedlam-cube.mp4](solving-bedlam-cube.mp4). [solving-bedlam-cube.mp4](%%REPO_URL%%/2006/sykes1/solving-bedlam-cube.mp4).
Actually the cube is very hard to do by hand by just trying to fit it Actually the cube is very hard to do by hand by just trying to fit it
together. I have not known anyone to solve it in this way - you would together. I have not known anyone to solve it in this way - you would
+2 -2
View File
@@ -379,7 +379,7 @@ Location: <a href="../../location.html#FI">FI</a> - <em>Republic of Finland </em
<!-- BEFORE: 1st line of markdown file: 2006/sykes1/README.md --> <!-- BEFORE: 1st line of markdown file: 2006/sykes1/README.md -->
<h2 id="to-build">To build:</h2> <h2 id="to-build">To build:</h2>
<pre><code> make</code></pre> <pre><code> make</code></pre>
<p>There is an alt version based on the author’s remarks. The <a href="try.sh">try.sh</a> <p>There is an alt version based on the author’s remarks. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/sykes1/try.sh">try.sh</a>
script will compile and use both but if you wish to see the alternate version script will compile and use both but if you wish to see the alternate version
specifically see the <a href="#alternate-code">Alternate code</a> section below.</p> specifically see the <a href="#alternate-code">Alternate code</a> section below.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3> <h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
@@ -431,7 +431,7 @@ puzzles in wikipedia</a>.</p>
<p>Some instructions on how to make your own cube are in the included file <p>Some instructions on how to make your own cube are in the included file
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/sykes1/bedlam-cubes.pdf">bedlam-cubes.pdf</a>.</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/sykes1/bedlam-cubes.pdf">bedlam-cubes.pdf</a>.</p>
<p>Finally, you can watch it being solved with the video file here, <p>Finally, you can watch it being solved with the video file here,
<a href="solving-bedlam-cube.mp4">solving-bedlam-cube.mp4</a>.</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/sykes1/solving-bedlam-cube.mp4">solving-bedlam-cube.mp4</a>.</p>
<p>Actually the cube is very hard to do by hand by just trying to fit it <p>Actually the cube is very hard to do by hand by just trying to fit it
together. I have not known anyone to solve it in this way - you would together. I have not known anyone to solve it in this way - you would
need to be very lucky indeed to stumble across a solution.</p> need to be very lucky indeed to stumble across a solution.</p>
+2 -2
View File
@@ -102,8 +102,8 @@ and a disk controller, just like at the start of the personal computers
revolution (circa 1975). revolution (circa 1975).
It needs an initial memory image to do something usable, so along with it you It needs an initial memory image to do something usable, so along with it you
will find two files: ([C.BASIC](C.BASIC) and [C.BIOS](C.BIOS)). Rename will find two files: ([C.BASIC](%%REPO_URL%%/2006/toledo2/C.BASIC) and [C.BIOS](%%REPO_URL%%/2006/toledo2/C.BIOS)). Rename
[C.BASIC](C.BASIC) to `C` (NOTE from the judges: running `make` will do this for [C.BASIC](%%REPO_URL%%/2006/toledo2/C.BASIC) to `C` (NOTE from the judges: running `make` will do this for
you), run the emulator, and et voila! you have the public domain Palo Alto [Tiny you), run the emulator, and et voila! you have the public domain Palo Alto [Tiny
BASIC](https://en.wikipedia.org/wiki/Tiny_BASIC) (by Li-Chen Wang), published in BASIC](https://en.wikipedia.org/wiki/Tiny_BASIC) (by Li-Chen Wang), published in
the very first volume of [Dr. Dobb's the very first volume of [Dr. Dobb's
+2 -2
View File
@@ -432,8 +432,8 @@ removes those files extracted from the <code>KAYPROII.ZIP</code>.</p>
and a disk controller, just like at the start of the personal computers and a disk controller, just like at the start of the personal computers
revolution (circa 1975).</p> revolution (circa 1975).</p>
<p>It needs an initial memory image to do something usable, so along with it you <p>It needs an initial memory image to do something usable, so along with it you
will find two files: (<a href="C.BASIC">C.BASIC</a> and <a href="C.BIOS">C.BIOS</a>). Rename will find two files: (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo2/C.BASIC">C.BASIC</a> and <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo2/C.BIOS">C.BIOS</a>). Rename
<a href="C.BASIC">C.BASIC</a> to <code>C</code> (NOTE from the judges: running <code>make</code> will do this for <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo2/C.BASIC">C.BASIC</a> to <code>C</code> (NOTE from the judges: running <code>make</code> will do this for
you), run the emulator, and et voila! you have the public domain Palo Alto <a href="https://en.wikipedia.org/wiki/Tiny_BASIC">Tiny you), run the emulator, and et voila! you have the public domain Palo Alto <a href="https://en.wikipedia.org/wiki/Tiny_BASIC">Tiny
BASIC</a> (by Li-Chen Wang), published in BASIC</a> (by Li-Chen Wang), published in
the very first volume of <a href="https://en.wikipedia.org/wiki/Dr._Dobb%27s_Journal">Dr. Dobb’s the very first volume of <a href="https://en.wikipedia.org/wiki/Dr._Dobb%27s_Journal">Dr. Dobb’s
+1 -1
View File
@@ -96,7 +96,7 @@ When evolving forwards, the code can only be stopped by killing the
program. In the reverse direction, the code can either be killed, or program. In the reverse direction, the code can either be killed, or
will stop if it is unable to find a grid that will evolve to the will stop if it is unable to find a grid that will evolve to the
current layout correctly. This can be seen with the sample grid current layout correctly. This can be seen with the sample grid
[t0_3.dat](t0_3.dat), which evolves backwards by only two time-steps. [t0_3.dat](%%REPO_URL%%/2011/blakely/t0_3.dat), which evolves backwards by only two time-steps.
### Input file format ### Input file format
+1 -1
View File
@@ -428,7 +428,7 @@ line option.</p>
program. In the reverse direction, the code can either be killed, or program. In the reverse direction, the code can either be killed, or
will stop if it is unable to find a grid that will evolve to the will stop if it is unable to find a grid that will evolve to the
current layout correctly. This can be seen with the sample grid current layout correctly. This can be seen with the sample grid
<a href="t0_3.dat">t0_3.dat</a>, which evolves backwards by only two time-steps.</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/blakely/t0_3.dat">t0_3.dat</a>, which evolves backwards by only two time-steps.</p>
<h3 id="input-file-format">Input file format</h3> <h3 id="input-file-format">Input file format</h3>
<p>The input files must encode a square grid, where a space is a dead cell, and any <p>The input files must encode a square grid, where a space is a dead cell, and any
other character (except a newline) is a living cell. Each line must be the same other character (except a newline) is a living cell. Each line must be the same
+4 -4
View File
@@ -228,11 +228,11 @@ The learning rate is hard-coded as `0.3`. No momentum factor is used.
#### png corpora #### png corpora
The [png-1](dlowe-aux-data/png-1) corpus was obtained by manually scraping the first results from an The `dlowe-aux-data/png-1` corpus was obtained by manually scraping the first results from an
<https://images.google.com> search for "[obfuscate <https://images.google.com> search for "[obfuscate
filetype:png](https://www.google.com/search?tbm=isch&sxsrf=APwXEddqIU34dxhpFdjEa8emNJKHOkYXIw:1683049158657&source=hp&biw=1727&bih=952&ei=xkpRZLapJtLKkPIP8bGKkAk&iflsig=AOEireoAAAAAZFFY1nbmEUHC74Cmg3Y5rEY1fV7ocASZ&ved=0ahUKEwi2pPXZltf-AhVSJUQIHfGYApIQ4dUDCAY&uact=5&oq=obfuscate+filetype:png&gs_lcp=CgNpbWcQA1AAWABg9QNoAHAAeACAATuIATuSAQExmAEAoAECoAEBqgELZ3dzLXdpei1pbWc&sclient=img&q=obfuscate&tbs=ift:png)". filetype:png](https://www.google.com/search?tbm=isch&sxsrf=APwXEddqIU34dxhpFdjEa8emNJKHOkYXIw:1683049158657&source=hp&biw=1727&bih=952&ei=xkpRZLapJtLKkPIP8bGKkAk&iflsig=AOEireoAAAAAZFFY1nbmEUHC74Cmg3Y5rEY1fV7ocASZ&ved=0ahUKEwi2pPXZltf-AhVSJUQIHfGYApIQ4dUDCAY&uact=5&oq=obfuscate+filetype:png&gs_lcp=CgNpbWcQA1AAWABg9QNoAHAAeACAATuIATuSAQExmAEAoAECoAEBqgELZ3dzLXdpei1pbWc&sclient=img&q=obfuscate&tbs=ift:png)".
The [png-0](dlowe-aux-data/png-0) corpus was obtained by manually scraping the first results from an The `dlowe-aux-data/png-0` corpus was obtained by manually scraping the first results from an
<https://images.google.com> search for "[obfuscate <https://images.google.com> search for "[obfuscate
filetype:gif](https://www.google.com/search?tbm=isch&ved=2ahUKEwiowo7fltf-AhXSOUQIHbJBDp8Q2-cCegQIABAA&oq=obfuscate+filetype:gif&gs_lcp=CgNpbWcQAzoECCMQJzoHCAAQigUQQzoFCAAQgARQ6AxY6AxgpBJoAHAAeACAAUeIAcsBkgEBM5gBAKABAaoBC2d3cy13aXotaW1nwAEB&sclient=img&ei=0UpRZOiVINLzkPIPsoO5-Ak&bih=952&biw=1727&q=obfuscate&tbs=ift:gif)". filetype:gif](https://www.google.com/search?tbm=isch&ved=2ahUKEwiowo7fltf-AhXSOUQIHbJBDp8Q2-cCegQIABAA&oq=obfuscate+filetype:gif&gs_lcp=CgNpbWcQAzoECCMQJzoHCAAQigUQQzoFCAAQgARQ6AxY6AxgpBJoAHAAeACAAUeIAcsBkgEBM5gBAKABAaoBC2d3cy13aXotaW1nwAEB&sclient=img&ei=0UpRZOiVINLzkPIPsoO5-Ak&bih=952&biw=1727&q=obfuscate&tbs=ift:gif)".
@@ -242,7 +242,7 @@ filetype:gif](https://www.google.com/search?tbm=isch&ved=2ahUKEwiowo7fltf-AhXSOU
* Using these corpora as a training set; * Using these corpora as a training set;
* Using several hundred random `*.gif` and `*.png` files from my home computer as * Using several hundred random `*.gif` and `*.png` files from my home computer as
a test set; a test set;
* Using the included [earlystop.pl](earlystop.pl) script, which stopped after 67000 iterations. * Using the included [earlystop.pl](%%REPO_URL%%/2011/dlowe/earlystop.pl) script, which stopped after 67000 iterations.
* Interpreting output of `> 0.5` as "probably a `.png`" and `< 0.5` as "probably * Interpreting output of `> 0.5` as "probably a `.png`" and `< 0.5` as "probably
a `.gif`" a `.gif`"
@@ -303,7 +303,7 @@ representation and [endianness](https://en.wikipedia.org/wiki/Endianness).
Making sure not to Making sure not to
[overfit](https://en.wikipedia.org/wiki/Overfitting#Machine_learning) the network to the training data is a bit of a [overfit](https://en.wikipedia.org/wiki/Overfitting#Machine_learning) the network to the training data is a bit of a
black art. I have enclosed [earlystop.pl](earlystop.pl), a wrapper script that implements black art. I have enclosed [earlystop.pl](%%REPO_URL%%/2011/dlowe/earlystop.pl), a wrapper script that implements
a simple 'early stopping' algorithm; other techniques are possible. a simple 'early stopping' algorithm; other techniques are possible.
Bad input (e.g. nonexistent files, non-numeric number of iterations, etc.) Bad input (e.g. nonexistent files, non-numeric number of iterations, etc.)
+4 -4
View File
@@ -501,10 +501,10 @@ assigned a target value of <code>0</code>. Intervening directories (if any) will
intermediate target values.</p> intermediate target values.</p>
<p>The learning rate is hard-coded as <code>0.3</code>. No momentum factor is used.</p> <p>The learning rate is hard-coded as <code>0.3</code>. No momentum factor is used.</p>
<h4 id="png-corpora">png corpora</h4> <h4 id="png-corpora">png corpora</h4>
<p>The <a href="dlowe-aux-data/png-1">png-1</a> corpus was obtained by manually scraping the first results from an <p>The <code>dlowe-aux-data/png-1</code> corpus was obtained by manually scraping the first results from an
<a href="https://images.google.com" class="uri">https://images.google.com</a> search for “<a href="https://www.google.com/search?tbm=isch&amp;sxsrf=APwXEddqIU34dxhpFdjEa8emNJKHOkYXIw:1683049158657&amp;source=hp&amp;biw=1727&amp;bih=952&amp;ei=xkpRZLapJtLKkPIP8bGKkAk&amp;iflsig=AOEireoAAAAAZFFY1nbmEUHC74Cmg3Y5rEY1fV7ocASZ&amp;ved=0ahUKEwi2pPXZltf-AhVSJUQIHfGYApIQ4dUDCAY&amp;uact=5&amp;oq=obfuscate+filetype:png&amp;gs_lcp=CgNpbWcQA1AAWABg9QNoAHAAeACAATuIATuSAQExmAEAoAECoAEBqgELZ3dzLXdpei1pbWc&amp;sclient=img&amp;q=obfuscate&amp;tbs=ift:png">obfuscate <a href="https://images.google.com" class="uri">https://images.google.com</a> search for “<a href="https://www.google.com/search?tbm=isch&amp;sxsrf=APwXEddqIU34dxhpFdjEa8emNJKHOkYXIw:1683049158657&amp;source=hp&amp;biw=1727&amp;bih=952&amp;ei=xkpRZLapJtLKkPIP8bGKkAk&amp;iflsig=AOEireoAAAAAZFFY1nbmEUHC74Cmg3Y5rEY1fV7ocASZ&amp;ved=0ahUKEwi2pPXZltf-AhVSJUQIHfGYApIQ4dUDCAY&amp;uact=5&amp;oq=obfuscate+filetype:png&amp;gs_lcp=CgNpbWcQA1AAWABg9QNoAHAAeACAATuIATuSAQExmAEAoAECoAEBqgELZ3dzLXdpei1pbWc&amp;sclient=img&amp;q=obfuscate&amp;tbs=ift:png">obfuscate
filetype:png</a>”.</p> filetype:png</a>”.</p>
<p>The <a href="dlowe-aux-data/png-0">png-0</a> corpus was obtained by manually scraping the first results from an <p>The <code>dlowe-aux-data/png-0</code> corpus was obtained by manually scraping the first results from an
<a href="https://images.google.com" class="uri">https://images.google.com</a> search for “<a href="https://www.google.com/search?tbm=isch&amp;ved=2ahUKEwiowo7fltf-AhXSOUQIHbJBDp8Q2-cCegQIABAA&amp;oq=obfuscate+filetype:gif&amp;gs_lcp=CgNpbWcQAzoECCMQJzoHCAAQigUQQzoFCAAQgARQ6AxY6AxgpBJoAHAAeACAAUeIAcsBkgEBM5gBAKABAaoBC2d3cy13aXotaW1nwAEB&amp;sclient=img&amp;ei=0UpRZOiVINLzkPIPsoO5-Ak&amp;bih=952&amp;biw=1727&amp;q=obfuscate&amp;tbs=ift:gif">obfuscate <a href="https://images.google.com" class="uri">https://images.google.com</a> search for “<a href="https://www.google.com/search?tbm=isch&amp;ved=2ahUKEwiowo7fltf-AhXSOUQIHbJBDp8Q2-cCegQIABAA&amp;oq=obfuscate+filetype:gif&amp;gs_lcp=CgNpbWcQAzoECCMQJzoHCAAQigUQQzoFCAAQgARQ6AxY6AxgpBJoAHAAeACAAUeIAcsBkgEBM5gBAKABAaoBC2d3cy13aXotaW1nwAEB&amp;sclient=img&amp;ei=0UpRZOiVINLzkPIPsoO5-Ak&amp;bih=952&amp;biw=1727&amp;q=obfuscate&amp;tbs=ift:gif">obfuscate
filetype:gif</a>”.</p> filetype:gif</a>”.</p>
<h5 id="results">Results:</h5> <h5 id="results">Results:</h5>
@@ -512,7 +512,7 @@ filetype:gif</a>”.</p>
<li>Using these corpora as a training set;</li> <li>Using these corpora as a training set;</li>
<li>Using several hundred random <code>*.gif</code> and <code>*.png</code> files from my home computer as <li>Using several hundred random <code>*.gif</code> and <code>*.png</code> files from my home computer as
a test set;</li> a test set;</li>
<li>Using the included <a href="earlystop.pl">earlystop.pl</a> script, which stopped after 67000 iterations.</li> <li>Using the included <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/earlystop.pl">earlystop.pl</a> script, which stopped after 67000 iterations.</li>
<li>Interpreting output of <code>&gt; 0.5</code> as “probably a <code>.png</code>” and <code>&lt; 0.5</code> as “probably <li>Interpreting output of <code>&gt; 0.5</code> as “probably a <code>.png</code>” and <code>&lt; 0.5</code> as “probably
a <code>.gif</code>”</li> a <code>.gif</code>”</li>
</ul> </ul>
@@ -554,7 +554,7 @@ figuring out how to concatenate directory and file names…).</p>
representation and <a href="https://en.wikipedia.org/wiki/Endianness">endianness</a>.</p> representation and <a href="https://en.wikipedia.org/wiki/Endianness">endianness</a>.</p>
<p>Making sure not to <p>Making sure not to
<a href="https://en.wikipedia.org/wiki/Overfitting#Machine_learning">overfit</a> the network to the training data is a bit of a <a href="https://en.wikipedia.org/wiki/Overfitting#Machine_learning">overfit</a> the network to the training data is a bit of a
black art. I have enclosed <a href="earlystop.pl">earlystop.pl</a>, a wrapper script that implements black art. I have enclosed <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/dlowe/earlystop.pl">earlystop.pl</a>, a wrapper script that implements
a simple ‘early stopping’ algorithm; other techniques are possible.</p> a simple ‘early stopping’ algorithm; other techniques are possible.</p>
<p>Bad input (e.g. nonexistent files, non-numeric number of iterations, etc.) <p>Bad input (e.g. nonexistent files, non-numeric number of iterations, etc.)
tends to result in empty output.</p> tends to result in empty output.</p>
+2 -2
View File
@@ -159,7 +159,7 @@ cannot execute deeper recursions).
First of all, as you see, my program looks like a nonogram puzzle which results First of all, as you see, my program looks like a nonogram puzzle which results
in a [dragon](https://www.draconika.com/what). This puzzle is in a [dragon](https://www.draconika.com/what). This puzzle is
[dragon.nono](dragon.nono) in this directory. Note that whitespaces in character [dragon.nono](%%REPO_URL%%/2011/hamaji/dragon.nono) in this directory. Note that whitespaces in character
literals, a string literal, and around the last comment are considered as a literals, a string literal, and around the last comment are considered as a
boxed cell. boxed cell.
@@ -214,7 +214,7 @@ The second author wrote the picture, and the first author did
everything else. everything else.
The [dragon.nono](%%REPO_URL%%/2011/hamaji/dragon.nono), [samurai.nono](%%REPO_URL%%/2011/hamaji/samurai.nono), and The [dragon.nono](%%REPO_URL%%/2011/hamaji/dragon.nono), [samurai.nono](%%REPO_URL%%/2011/hamaji/samurai.nono), and
[penguin.nono](penguin.nono) were written by the [penguin.nono](%%REPO_URL%%/2011/hamaji/penguin.nono) were written by the
second author. The [soccer.nono](%%REPO_URL%%/2011/hamaji/soccer.nono) was from a wikipedia entry. This file second author. The [soccer.nono](%%REPO_URL%%/2011/hamaji/soccer.nono) was from a wikipedia entry. This file
is important because it requires some guesses. The [random.nono](%%REPO_URL%%/2011/hamaji/random.nono) file is important because it requires some guesses. The [random.nono](%%REPO_URL%%/2011/hamaji/random.nono) file
was randomly generated. The [codegolf.nono](%%REPO_URL%%/2011/hamaji/codegolf.nono) and was randomly generated. The [codegolf.nono](%%REPO_URL%%/2011/hamaji/codegolf.nono) and
+2 -2
View File
@@ -484,7 +484,7 @@ cannot execute deeper recursions).</p>
<h3 id="obfuscation">Obfuscation</h3> <h3 id="obfuscation">Obfuscation</h3>
<p>First of all, as you see, my program looks like a nonogram puzzle which results <p>First of all, as you see, my program looks like a nonogram puzzle which results
in a <a href="https://www.draconika.com/what">dragon</a>. This puzzle is in a <a href="https://www.draconika.com/what">dragon</a>. This puzzle is
<a href="dragon.nono">dragon.nono</a> in this directory. Note that whitespaces in character <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/dragon.nono">dragon.nono</a> in this directory. Note that whitespaces in character
literals, a string literal, and around the last comment are considered as a literals, a string literal, and around the last comment are considered as a
boxed cell.</p> boxed cell.</p>
<p>My program is based on bit operations for speed. Many values are <p>My program is based on bit operations for speed. Many values are
@@ -518,7 +518,7 @@ dragon</a>.</p>
<p>The second author wrote the picture, and the first author did <p>The second author wrote the picture, and the first author did
everything else.</p> everything else.</p>
<p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/dragon.nono">dragon.nono</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/samurai.nono">samurai.nono</a>, and <p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/dragon.nono">dragon.nono</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/samurai.nono">samurai.nono</a>, and
<a href="penguin.nono">penguin.nono</a> were written by the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/penguin.nono">penguin.nono</a> were written by the
second author. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/soccer.nono">soccer.nono</a> was from a wikipedia entry. This file second author. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/soccer.nono">soccer.nono</a> was from a wikipedia entry. This file
is important because it requires some guesses. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/random.nono">random.nono</a> file is important because it requires some guesses. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/random.nono">random.nono</a> file
was randomly generated. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/codegolf.nono">codegolf.nono</a> and was randomly generated. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/hamaji/codegolf.nono">codegolf.nono</a> and
+1 -1
View File
@@ -8,7 +8,7 @@ If you have X11 installed:
There are two alternate versions, [one that lets you reconfigure the There are two alternate versions, [one that lets you reconfigure the
controls and size](%%REPO_URL%%/2011/toledo/toledo.alt.c) and [another that should work for controls and size](%%REPO_URL%%/2011/toledo/toledo.alt.c) and [another that should work for
Windows](toledo.alt2.c). See [Alternate code](#alternate-code) below. Windows](%%REPO_URL%%/2011/toledo/toledo.alt2.c). See [Alternate code](#alternate-code) below.
## To use: ## To use:
+1 -1
View File
@@ -381,7 +381,7 @@ Location: <a href="../../location.html#MX">MX</a> - <em>United Mexican States</e
<p>If you have X11 installed:</p> <p>If you have X11 installed:</p>
<pre><code> make</code></pre> <pre><code> make</code></pre>
<p>There are two alternate versions, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/toledo/toledo.alt.c">one that lets you reconfigure the <p>There are two alternate versions, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/toledo/toledo.alt.c">one that lets you reconfigure the
controls and size</a> and <a href="toledo.alt2.c">another that should work for controls and size</a> and <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/toledo/toledo.alt2.c">another that should work for
Windows</a>. See <a href="#alternate-code">Alternate code</a> below.</p> Windows</a>. See <a href="#alternate-code">Alternate code</a> below.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<pre><code> ./toledo</code></pre> <pre><code> ./toledo</code></pre>
+2 -2
View File
@@ -102,13 +102,13 @@ etc.
The program expects *two command line arguments*. The first is a (very long) The program expects *two command line arguments*. The first is a (very long)
string that contains the complete music font. Note that it should *not* be given string that contains the complete music font. Note that it should *not* be given
as a file name! The default music font is encoded in the (whitespace of the) as a file name! The default music font is encoded in the (whitespace of the)
source code [deckmyn.c](deckmyn.c) itself. Therefore, the first argument should source code [deckmyn.c](%%REPO_URL%%/2012/deckmyn/deckmyn.c) itself. Therefore, the first argument should
be `"`` ` ``cat deckmyn.c`` ` ``"`. be `"`` ` ``cat deckmyn.c`` ` ``"`.
The second command line argument is the music itself. This is, again, a string, The second command line argument is the music itself. This is, again, a string,
not a file name. All music signs are entered as tokens of exactly 3 characters. not a file name. All music signs are entered as tokens of exactly 3 characters.
The code is very sensitive to bad spacing! So for instance, if you use a file to The code is very sensitive to bad spacing! So for instance, if you use a file to
write the music (e.g. [example\_greensleeves](example_greensleeves)), you should write the music (e.g. [example\_greensleeves](%%REPO_URL%%/2012/deckmyn/example_greensleeves)), you should
keep in mind that newline is also a character! keep in mind that newline is also a character!
+2 -2
View File
@@ -427,12 +427,12 @@ etc.</p>
<p>The program expects <em>two command line arguments</em>. The first is a (very long) <p>The program expects <em>two command line arguments</em>. The first is a (very long)
string that contains the complete music font. Note that it should <em>not</em> be given string that contains the complete music font. Note that it should <em>not</em> be given
as a file name! The default music font is encoded in the (whitespace of the) as a file name! The default music font is encoded in the (whitespace of the)
source code <a href="deckmyn.c">deckmyn.c</a> itself. Therefore, the first argument should source code <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/deckmyn/deckmyn.c">deckmyn.c</a> itself. Therefore, the first argument should
be <code>"``</code> <code>cat deckmyn.c</code> <code>``"</code>.</p> be <code>"``</code> <code>cat deckmyn.c</code> <code>``"</code>.</p>
<p>The second command line argument is the music itself. This is, again, a string, <p>The second command line argument is the music itself. This is, again, a string,
not a file name. All music signs are entered as tokens of exactly 3 characters. not a file name. All music signs are entered as tokens of exactly 3 characters.
The code is very sensitive to bad spacing! So for instance, if you use a file to The code is very sensitive to bad spacing! So for instance, if you use a file to
write the music (e.g. <a href="example_greensleeves">example_greensleeves</a>), you should write the music (e.g. <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/deckmyn/example_greensleeves">example_greensleeves</a>), you should
keep in mind that newline is also a character!</p> keep in mind that newline is also a character!</p>
<h3 id="internals">Internals</h3> <h3 id="internals">Internals</h3>
<p>To minimise the memory footprint, this program has <em>no variable declarations at <p>To minimise the memory footprint, this program has <em>no variable declarations at
+1 -1
View File
@@ -512,7 +512,7 @@ and detract from its single minded focus on conciseness.
It implicitly declares functions `read(2)`, `write(2)`, `exit(3)` and It implicitly declares functions `read(2)`, `write(2)`, `exit(3)` and
`calloc(3)`, the latter two incompatibly. 32 bit and 64 bit executables are `calloc(3)`, the latter two incompatibly. 32 bit and 64 bit executables are
separate [Makefile](Makefile) targets, involving a change from `int` to `long` separate [Makefile](%%REPO_URL%%/2012/tromp/Makefile) targets, involving a change from `int` to `long`
and from a hardcoded sizeof of 4 to 8. and from a hardcoded sizeof of 4 to 8.
The program has been tested to work correctly on Linux/Solaris/MacOSX both in 32 The program has been tested to work correctly on Linux/Solaris/MacOSX both in 32
+1 -1
View File
@@ -715,7 +715,7 @@ many warnings;</p>
and detract from its single minded focus on conciseness.</p> and detract from its single minded focus on conciseness.</p>
<p>It implicitly declares functions <code>read(2)</code>, <code>write(2)</code>, <code>exit(3)</code> and <p>It implicitly declares functions <code>read(2)</code>, <code>write(2)</code>, <code>exit(3)</code> and
<code>calloc(3)</code>, the latter two incompatibly. 32 bit and 64 bit executables are <code>calloc(3)</code>, the latter two incompatibly. 32 bit and 64 bit executables are
separate <a href="Makefile">Makefile</a> targets, involving a change from <code>int</code> to <code>long</code> separate <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/tromp/Makefile">Makefile</a> targets, involving a change from <code>int</code> to <code>long</code>
and from a hardcoded sizeof of 4 to 8.</p> and from a hardcoded sizeof of 4 to 8.</p>
<p>The program has been tested to work correctly on Linux/Solaris/MacOSX both in 32 <p>The program has been tested to work correctly on Linux/Solaris/MacOSX both in 32
and 64 bits.</p> and 64 bits.</p>
+1 -1
View File
@@ -333,7 +333,7 @@ rate in which the terminal application receives and displays the [ANSI
escape](https://en.wikipedia.org/wiki/ANSI_escape_code) sequences. escape](https://en.wikipedia.org/wiki/ANSI_escape_code) sequences.
To slow down the output programmatically, introduce a delay immediately after the To slow down the output programmatically, introduce a delay immediately after the
call to `fflush(3)` (N.B: see [birken.alt.c](birken.alt.c)). call to `fflush(3)` (N.B: see [birken.alt.c](%%REPO_URL%%/2013/birken/birken.alt.c)).
### IOCCC Size Tool Bug ### IOCCC Size Tool Bug
+1 -1
View File
@@ -600,7 +600,7 @@ represented using ANSI escape sequences.</p>
rate in which the terminal application receives and displays the <a href="https://en.wikipedia.org/wiki/ANSI_escape_code">ANSI rate in which the terminal application receives and displays the <a href="https://en.wikipedia.org/wiki/ANSI_escape_code">ANSI
escape</a> sequences.</p> escape</a> sequences.</p>
<p>To slow down the output programmatically, introduce a delay immediately after the <p>To slow down the output programmatically, introduce a delay immediately after the
call to <code>fflush(3)</code> (N.B: see <a href="birken.alt.c">birken.alt.c</a>).</p> call to <code>fflush(3)</code> (N.B: see <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/birken/birken.alt.c">birken.alt.c</a>).</p>
<h3 id="ioccc-size-tool-bug">IOCCC Size Tool Bug</h3> <h3 id="ioccc-size-tool-bug">IOCCC Size Tool Bug</h3>
<p>This program demonstrates how to exploit a bug in IOCCC size tool version <p>This program demonstrates how to exploit a bug in IOCCC size tool version
<code>2013-07-30-v17</code>. The first line of the program is reproduced below.</p> <code>2013-07-30-v17</code>. The first line of the program is reproduced below.</p>
+1 -1
View File
@@ -112,7 +112,7 @@ little endian machine.
### RULE 2 ABUSE DISCLAIMER ### RULE 2 ABUSE DISCLAIMER
- [cable3.c](cable3.c) is 4043 bytes in length (half an 8086). - [cable3.c](%%REPO_URL%%/2013/cable3/cable3.c) is 4043 bytes in length (half an 8086).
- `iocccsize -i < cable3.c` returns 1977 (the year the 4.77 MHz 8086 CPU was announced) - `iocccsize -i < cable3.c` returns 1977 (the year the 4.77 MHz 8086 CPU was announced)
- Therefore, any suspicions the judges may have regarding rule 2 non-compliance - Therefore, any suspicions the judges may have regarding rule 2 non-compliance
might be well-intentioned but are groundless. might be well-intentioned but are groundless.
+1 -1
View File
@@ -445,7 +445,7 @@ and somewhat useless beast. For everyone else, please run the emulator on a
little endian machine.</p> little endian machine.</p>
<h3 id="rule-2-abuse-disclaimer">RULE 2 ABUSE DISCLAIMER</h3> <h3 id="rule-2-abuse-disclaimer">RULE 2 ABUSE DISCLAIMER</h3>
<ul> <ul>
<li><a href="cable3.c">cable3.c</a> is 4043 bytes in length (half an 8086).</li> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/cable3.c">cable3.c</a> is 4043 bytes in length (half an 8086).</li>
<li><code>iocccsize -i &lt; cable3.c</code> returns 1977 (the year the 4.77 MHz 8086 CPU was announced)</li> <li><code>iocccsize -i &lt; cable3.c</code> returns 1977 (the year the 4.77 MHz 8086 CPU was announced)</li>
<li>Therefore, any suspicions the judges may have regarding rule 2 non-compliance <li>Therefore, any suspicions the judges may have regarding rule 2 non-compliance
might be well-intentioned but are groundless.</li> might be well-intentioned but are groundless.</li>
+3 -3
View File
@@ -88,7 +88,7 @@ and with Apple clang version 15.0.0 (clang-1500.0.40.1) in 2023, we get:
Which one is correct? :) Which one is correct? :)
NOTE: `make all` will compile [fun.c](fun.c) but to provide a different compiler NOTE: `make all` will compile [fun.c](%%REPO_URL%%/2013/dlowe/fun.c) but to provide a different compiler
you can do something like: you can do something like:
``` <!---sh--> ``` <!---sh-->
@@ -113,13 +113,13 @@ A tiny implementation of command-line
sparkline of file sizes: ▁▁▁▃▃▂▁▂▁▁▉ sparkline of file sizes: ▁▁▁▃▃▂▁▂▁▁▉
``` ```
NOTE: this has been provided in [slflen.sh](slflen.sh) so you can try: NOTE: this has been provided in [slflen.sh](%%REPO_URL%%/2013/dlowe/slflen.sh) so you can try:
``` <!---sh--> ``` <!---sh-->
./slflen.sh ./slflen.sh
``` ```
instead (which [try.sh](try.sh) also uses). instead (which [try.sh](%%REPO_URL%%/2013/dlowe/try.sh) also uses).
### Description ### Description
+3 -3
View File
@@ -413,7 +413,7 @@ with one argument or when all arguments are equal?</p>
<p>and with Apple clang version 15.0.0 (clang-1500.0.40.1) in 2023, we get:</p> <p>and with Apple clang version 15.0.0 (clang-1500.0.40.1) in 2023, we get:</p>
<pre><code> 1840985120 -2033041452 35979112</code></pre> <pre><code> 1840985120 -2033041452 35979112</code></pre>
<p>Which one is correct? :)</p> <p>Which one is correct? :)</p>
<p>NOTE: <code>make all</code> will compile <a href="fun.c">fun.c</a> but to provide a different compiler <p>NOTE: <code>make all</code> will compile <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/dlowe/fun.c">fun.c</a> but to provide a different compiler
you can do something like:</p> you can do something like:</p>
<pre><code> make CC=clang fun</code></pre> <pre><code> make CC=clang fun</code></pre>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
@@ -426,9 +426,9 @@ you can do something like:</p>
$ echo &quot;sparkline of file lengths: $(wc -c * | awk &#39;{print $1}&#39; | xargs ./sparkl)&quot; $ echo &quot;sparkline of file lengths: $(wc -c * | awk &#39;{print $1}&#39; | xargs ./sparkl)&quot;
sparkline of file sizes: ▁▁▁▃▃▂▁▂▁▁▉</code></pre> sparkline of file sizes: ▁▁▁▃▃▂▁▂▁▁▉</code></pre>
<p>NOTE: this has been provided in <a href="slflen.sh">slflen.sh</a> so you can try:</p> <p>NOTE: this has been provided in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/dlowe/slflen.sh">slflen.sh</a> so you can try:</p>
<pre><code> ./slflen.sh</code></pre> <pre><code> ./slflen.sh</code></pre>
<p>instead (which <a href="try.sh">try.sh</a> also uses).</p> <p>instead (which <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/dlowe/try.sh">try.sh</a> also uses).</p>
<h3 id="description">Description</h3> <h3 id="description">Description</h3>
<p>This is a handy little tool for visualizing numeric series from the <p>This is a handy little tool for visualizing numeric series from the
command line, using sparklines. Pass it a numeric series as arguments, and command line, using sparklines. Pass it a numeric series as arguments, and
+1 -1
View File
@@ -142,7 +142,7 @@ So, try:
./endoh4 < endoh4.c # or ./endoh4.sh ./endoh4 < endoh4.c # or ./endoh4.sh
``` ```
The [solids/](solids/) directory includes various solid data: The `solids` directory includes various solid data:
- [Platonic solids](http://en.wikipedia.org/wiki/Platonic_solid) - [Platonic solids](http://en.wikipedia.org/wiki/Platonic_solid)
- [Archimedean solids](http://en.wikipedia.org/wiki/Archimedean_solid) - [Archimedean solids](http://en.wikipedia.org/wiki/Archimedean_solid)
+1 -1
View File
@@ -451,7 +451,7 @@ clang, and tcc. It should not trigger warnings with <code>-pedantic</code> and <
<p>The shape of this code is the geometric net of a regular tetrahedron. <p>The shape of this code is the geometric net of a regular tetrahedron.
So, try:</p> So, try:</p>
<pre><code> ./endoh4 &lt; endoh4.c # or ./endoh4.sh</code></pre> <pre><code> ./endoh4 &lt; endoh4.c # or ./endoh4.sh</code></pre>
<p>The <a href="solids/">solids/</a> directory includes various solid data:</p> <p>The <code>solids</code> directory includes various solid data:</p>
<ul> <ul>
<li><a href="http://en.wikipedia.org/wiki/Platonic_solid">Platonic solids</a></li> <li><a href="http://en.wikipedia.org/wiki/Platonic_solid">Platonic solids</a></li>
<li><a href="http://en.wikipedia.org/wiki/Archimedean_solid">Archimedean solids</a></li> <li><a href="http://en.wikipedia.org/wiki/Archimedean_solid">Archimedean solids</a></li>
+2 -2
View File
@@ -1,4 +1,4 @@
## To build: %%REPO_URL%%/## To build:
``` <!---sh--> ``` <!---sh-->
make all make all
@@ -137,7 +137,7 @@ don't have to worry about conflicts.
* [hou.c](%%REPO_URL%%/2013/hou/hou.c) uses compression to get around the size limit. The compression * [hou.c](%%REPO_URL%%/2013/hou/hou.c) uses compression to get around the size limit. The compression
fully complies with the rules and the guidelines (at least the portion that fully complies with the rules and the guidelines (at least the portion that
shows up in `grep` "size limit"). Please see the [Self-imposed shows up in `grep` "size limit"). Please see the [Self-imposed
restrictions](self-imposed-restrictions) section below for more details. restrictions](#self-imposed-restrictions) section below for more details.
* `hou` does not terminate (as suggested by the second line of rule 6). * `hou` does not terminate (as suggested by the second line of rule 6).
+1 -1
View File
@@ -587,7 +587,7 @@ editing program, you need to convert the RGB values from 0..255 to 0..1, and
then put here its <em>square</em>. Only after squaring you get your real, lively color then put here its <em>square</em>. Only after squaring you get your real, lively color
in the output image, as opposed to something dull and gray. You need to do the in the output image, as opposed to something dull and gray. You need to do the
same if you use a RGB texture. And yes, that is the what the second <code>sqrt(3)</code> in same if you use a RGB texture. And yes, that is the what the second <code>sqrt(3)</code> in
<a href="../a.c">a.c</a> is for.</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> is for.</p>
<p>Going beyond colors, to define a shiny or dull surface one needs more maths, and <p>Going beyond colors, to define a shiny or dull surface one needs more maths, and
optics. The jargon for this is <code>BRDF</code> (Bidirectional Reflectance Distribution optics. The jargon for this is <code>BRDF</code> (Bidirectional Reflectance Distribution
Function) importance sampling. Let’s continue to function <code>o</code>.</p> Function) importance sampling. Let’s continue to function <code>o</code>.</p>
+1 -1
View File
@@ -312,7 +312,7 @@ editing program, you need to convert the RGB values from 0..255 to 0..1, and
then put here its *square*. Only after squaring you get your real, lively color then put here its *square*. Only after squaring you get your real, lively color
in the output image, as opposed to something dull and gray. You need to do the in the output image, as opposed to something dull and gray. You need to do the
same if you use a RGB texture. And yes, that is the what the second `sqrt(3)` in same if you use a RGB texture. And yes, that is the what the second `sqrt(3)` in
[a.c](../a.c) is for. [a.c](%%REPO_URL%%/2013/hou/a.c) is for.
Going beyond colors, to define a shiny or dull surface one needs more maths, and Going beyond colors, to define a shiny or dull surface one needs more maths, and
optics. The jargon for this is `BRDF` (Bidirectional Reflectance Distribution optics. The jargon for this is `BRDF` (Bidirectional Reflectance Distribution
+2 -2
View File
@@ -377,7 +377,7 @@ 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 --> <!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: 2013/hou/README.md --> <!-- BEFORE: 1st line of markdown file: 2013/hou/README.md -->
<h2 id="to-build">To build:</h2> <p>https://github.com/ioccc-src/temp-test-ioccc/blob/master/## To build:</p>
<pre><code> make all</code></pre> <pre><code> make all</code></pre>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3> <h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p> <p>The current status of this entry is:</p>
@@ -468,7 +468,7 @@ don’t have to worry about conflicts.</li>
<ul> <ul>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> uses compression to get around the size limit. The compression <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> uses compression to get around the size limit. The compression
fully complies with the rules and the guidelines (at least the portion that fully complies with the rules and the guidelines (at least the portion that
shows up in <code>grep</code> “size limit”). Please see the <a href="self-imposed-restrictions">Self-imposed shows up in <code>grep</code> “size limit”). Please see the <a href="#self-imposed-restrictions">Self-imposed
restrictions</a> section below for more details.</li> restrictions</a> section below for more details.</li>
<li><code>hou</code> does not terminate (as suggested by the second line of rule 6).</li> <li><code>hou</code> does not terminate (as suggested by the second line of rule 6).</li>
</ul> </ul>
+1 -1
View File
@@ -60,7 +60,7 @@ Escape to quit.)
Unfortunately, it became very difficult to get this entry to fit within the Unfortunately, it became very difficult to get this entry to fit within the
size requirements. It's currently at 2052 according to size requirements. It's currently at 2052 according to
[iocccsize](../iocccsize.c), and 3994 according to `wc -c`. [iocccsize](%%REPO_URL%%/2014/iocccsize.c), and 3994 according to `wc -c`.
The current size is a third to a half of the original size before compression. The current size is a third to a half of the original size before compression.
+1 -1
View File
@@ -414,7 +414,7 @@ Escape to quit.)</p>
<h3 id="known-compiler-warnings">KNOWN COMPILER WARNINGS</h3> <h3 id="known-compiler-warnings">KNOWN COMPILER WARNINGS</h3>
<p>Unfortunately, it became very difficult to get this entry to fit within the <p>Unfortunately, it became very difficult to get this entry to fit within the
size requirements. It’s currently at 2052 according to size requirements. It’s currently at 2052 according to
<a href="../iocccsize.c">iocccsize</a>, and 3994 according to <code>wc -c</code>.</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/iocccsize.c">iocccsize</a>, and 3994 according to <code>wc -c</code>.</p>
<p>The current size is a third to a half of the original size before compression.</p> <p>The current size is a third to a half of the original size before compression.</p>
<p>Due to this, it does LOTS of things that subtly annoy compilers!</p> <p>Due to this, it does LOTS of things that subtly annoy compilers!</p>
<ul> <ul>
Loaded 100 of 175 files, more files were not shown because too many files have changed in this diff. Show more