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:
1 parent
b84f8cbe28
commit
e7d69bc232
175 files changed
+645
-631
No files matched your search
@@ -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-->
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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-->
|
||||||
|
|||||||
@@ -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 <stdio.h>
|
<pre><code> #include <stdio.h>
|
||||||
#include <a.out.h>
|
#include <a.out.h>
|
||||||
|
|||||||
@@ -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`.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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<0?write(2,"?\n$ "-x/4,2),x+1||(exit(1),0):5;}</code></pre>
|
e(x){x<0?write(2,"?\n$ "-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>
|
||||||
|
|||||||
@@ -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-->
|
||||||
|
|||||||
@@ -406,7 +406,7 @@ game:</p>
|
|||||||
./ttt [first_move] # <- omit first arg to have it move first
|
./ttt [first_move] # <- 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>
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
@@ -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.
|
||||||
|
|||||||
@@ -406,7 +406,7 @@ following locations though the last one is more ironic:</p>
|
|||||||
./ag paul e tsongas < /usr/share/dict/words</code></pre>
|
./ag paul e tsongas < /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>
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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).
|
||||||
|
|||||||
@@ -397,7 +397,7 @@ value 17 in the lines:</p>
|
|||||||
<p>and</p>
|
<p>and</p>
|
||||||
<pre><code> refresh(),c=select(k,&y,0,0,(v.tv_usec=1<<17,&v))?getch():0;</code></pre>
|
<pre><code> refresh(),c=select(k,&y,0,0,(v.tv_usec=1<<17,&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>
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -414,8 +414,8 @@ in an effort to get around the 1994 version of Rule 2:</p>
|
|||||||
<pre><code> 2) Your entry must be <= 3217 bytes in length. The number of characters
|
<pre><code> 2) Your entry must be <= 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 <= 1536.</code></pre>
|
followed by either whitespace or end of file, must be <= 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>”
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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> "This time (everything) is not where it should be."
|
<pre><code> "This time (everything) is not where it should be."
|
||||||
~~~~</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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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-->
|
||||||
|
|||||||
@@ -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('!'); putchar('\n'); exit(0); }</code></pre>
|
<pre><code> main() { putchar('!'); putchar('\n'); exit(0); }</code></pre>
|
||||||
<p>We can then compile by</p>
|
<p>We can then compile by</p>
|
||||||
|
|||||||
@@ -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-->
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
@@ -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).
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.)
|
||||||
|
|||||||
@@ -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&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">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&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">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&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">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&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">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>> 0.5</code> as “probably a <code>.png</code>” and <code>< 0.5</code> as “probably
|
<li>Interpreting output of <code>> 0.5</code> as “probably a <code>.png</code>” and <code>< 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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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!
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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 < cable3.c</code> returns 1977 (the year the 4.77 MHz 8086 CPU was announced)</li>
|
<li><code>iocccsize -i < 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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 "sparkline of file lengths: $(wc -c * | awk '{print $1}' | xargs ./sparkl)"
|
$ echo "sparkline of file lengths: $(wc -c * | awk '{print $1}' | xargs ./sparkl)"
|
||||||
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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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 < endoh4.c # or ./endoh4.sh</code></pre>
|
<pre><code> ./endoh4 < 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
@@ -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).
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
@@ -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>
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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
Reference in new issue
Block a user