Fix html files in 2001

This also includes a few updates to the bugs file.
This commit is contained in:
Cody Boone Ferguson committed 2024-08-05 09:48:14 -07:00
1 parent 3da5bb9022
commit 515281417c
28 files changed
+264 -277

No files matched your search

+4 -4
View File
@@ -6,7 +6,7 @@
The programs that this program is supposed to act on,
[anonymous.ten.c](%%REPO_URL%%/2001/anonymous/anonymous.ten.c) and [anonymous.bed.c](%%REPO_URL%%/2001/anonymous/anonymous.bed.c),
compiled with `make`, MUST be compiled as 32-bit ELF binaries. In the case that
compiled with `make`, **MUST** be compiled as **32-bit ELF binaries**. In the case that
this fails these programs will be compiled as 64-bit binaries as alternate code,
`anonymous.ten.alt` and `anonymous.bed.alt`, ELF or otherwise. However trying to
use the entry on these files will fail. See [Alternate code](#alternate-code)
@@ -38,7 +38,7 @@ For more detailed information see [2001/anonymous in bugs.html](../../bugs.html#
./anonymous anonymous.bed # if able to compile as a 32-bit (-m32) ELF binary
```
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](%%REPO_URL%%/2001/anonymous/anonymous.ten.c) as a 64-bit program (or whatever your system is
set to) and run it directly.
@@ -196,7 +196,7 @@ global state, and the other doesn't.
There is also quite a nice trick where I wave a magic wand, and a chunk of code
which should only be run when the program is run for the first time (setting the
[PC / IP](https://en.wikipedia.org/wiki/Program_counter) to point at `main()`
[PC/IP](https://en.wikipedia.org/wiki/Program_counter) to point at `main()`
etc.) gets turned into a <del>frog</del>string. The C compiler sees a string by
itself in the code, thinks "yup, that's a valid C expression", and quietly moves
on to the next line of code.
@@ -231,7 +231,7 @@ new set of switches, and the call to `execv(3)` asks for the newly compiled
program to be executed. I would point out that almost every other entry to this
competition also require a C compiler (well, the published winning entries at any rate,
and I recognize that a few don't). There is little real difference between this
program and one like last year's entry [dhyang](%%REPO_URL%%/2000/dhyang/dhyang.c); both are
program and one like last year's entry [dhyang](../../2000/dhyang/index.html); both are
just C programs that generate C code as their output.
Enjoy and thanks!
+4 -4
View File
@@ -411,7 +411,7 @@ Location: <a href="../../location.html#GB">GB</a> - <em>United Kingdom of Great
<pre><code> make</code></pre>
<p>The programs that this program is supposed to act on,
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/anonymous/anonymous.ten.c">anonymous.ten.c</a> and <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/anonymous/anonymous.bed.c">anonymous.bed.c</a>,
compiled with <code>make</code>, MUST be compiled as 32-bit ELF binaries. In the case that
compiled with <code>make</code>, <strong>MUST</strong> be compiled as <strong>32-bit ELF binaries</strong>. In the case that
this fails these programs will be compiled as 64-bit binaries as alternate code,
<code>anonymous.ten.alt</code> and <code>anonymous.bed.alt</code>, ELF or otherwise. However trying to
use the entry on these files will fail. See <a href="#alternate-code">Alternate code</a>
@@ -429,7 +429,7 @@ whatever your system will compile them as).</p>
<pre><code> ./try.sh
./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><strong>NOTE</strong>: if the 32-bit version cannot be compiled the script will at least compile
<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>
<p>What happens if the x86 program has already been modified by this program? The
@@ -537,7 +537,7 @@ local variables which shadow global variables: so one modifies the
global state, and the other doesn’t.</p>
<p>There is also quite a nice trick where I wave a magic wand, and a chunk of code
which should only be run when the program is run for the first time (setting the
<a href="https://en.wikipedia.org/wiki/Program_counter">PC / IP</a> to point at <code>main()</code>
<a href="https://en.wikipedia.org/wiki/Program_counter">PC/IP</a> to point at <code>main()</code>
etc.) gets turned into a <del>frog</del>string. The C compiler sees a string by
itself in the code, thinks “yup, that’s a valid C expression”, and quietly moves
on to the next line of code.</p>
@@ -564,7 +564,7 @@ new set of switches, and the call to <code>execv(3)</code> asks for the newly co
program to be executed. I would point out that almost every other entry to this
competition also require a C compiler (well, the published winning entries at any rate,
and I recognize that a few don’t). There is little real difference between this
program and one like last year’s entry <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/dhyang/dhyang.c">dhyang</a>; both are
program and one like last year’s entry <a href="../../2000/dhyang/index.html">dhyang</a>; both are
just C programs that generate C code as their output.</p>
<p>Enjoy and thanks!</p>
<!--
-1
View File
@@ -10,7 +10,6 @@
The current status of this entry is:
> **STATUS: INABIAF - please DO NOT fix**<br>
> **STATUS: doesn't work with some platforms - please help us fix it**
For more detailed information see [2001/bellard in bugs.html](../../bugs.html#2001_bellard).
+1 -2
View File
@@ -412,8 +412,7 @@ Location: <a href="../../location.html#FR">FR</a> - <em>French Republic</em> (<e
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
<blockquote>
<p><strong>STATUS: INABIAF - please DO NOT fix</strong><br>
<strong>STATUS: doesn’t work with some platforms - please help us fix it</strong></p>
<p><strong>STATUS: INABIAF - please DO NOT fix</strong><br></p>
</blockquote>
<p>For more detailed information see <a href="../../bugs.html#2001_bellard">2001/bellard in bugs.html</a>.</p>
<h2 id="to-use">To use:</h2>
+6
View File
@@ -11,6 +11,12 @@
./coupard
```
**NOTE**: the author notes that you might want to convert the sound formats. For
this you can use `SoX`. If you do not have this installed then see the
FAQ on "[using entries that require sound](../../faq.html#sox)"
for help.
## Try:
+4
View File
@@ -411,6 +411,10 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<pre><code> make</code></pre>
<h2 id="to-use">To use:</h2>
<pre><code> ./coupard</code></pre>
<p><strong>NOTE</strong>: the author notes that you might want to convert the sound formats. For
this you can use <code>SoX</code>. If you do not have this installed then see the
FAQ on “<a href="../../faq.html#sox">using entries that require sound</a>”
for help.</p>
<h2 id="try">Try:</h2>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
+2 -2
View File
@@ -4,8 +4,8 @@
make
```
There is an alternate version with vi(m) key movements. See [alternate
code](#alternate code) below.
There is an alternate version with vi(m) key movements. See [Alternate
code](#alternate-code) below.
## To use:
+1 -1
View File
@@ -409,7 +409,7 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- BEFORE: 1st line of markdown file: 2001/ctk/README.md -->
<h2 id="to-build">To build:</h2>
<pre><code> make</code></pre>
<p>There is an alternate version with vi(m) key movements. See <a href="#alternate%20code">alternate
<p>There is an alternate version with vi(m) key movements. See <a href="#alternate-code">Alternate
code</a> below.</p>
<h2 id="to-use">To use:</h2>
<pre><code> ./ctk</code></pre>
+7 -9
View File
@@ -4,7 +4,7 @@
make
```
There is an alternate version based on the author's remarks. See [alternate
There is an alternate version based on the author's remarks. See [Alternate
code](#alternate-code) below for more details.
@@ -221,13 +221,11 @@ this is not so.
A: When compiled with `gcc -Wall`, the compiler generated the following
warnings:
```
suggest parentheses around + or - in operand of &
array subscript has type 'char'
return type defaults to 'int'
control reaches end of non-void function
value computed is not used
```
> suggest parentheses around `+` or `-` in operand of `&`<br>
> array subscript has type '`char`'<br>
> return type defaults to '`int`'<br>
> control reaches end of non-void function<br>
> value computed is not used
The `value computed is not used` warning happens because I use the `&&`
operator and take advantage of short circuit evaluation instead of using
@@ -248,7 +246,7 @@ appropriate sportsmanship for a program of this genre and can think of
no worse job than trying to find an elusive bug in an intentionally
obfuscated program.
[Judge's note: This was followed by a description of the bug, and
[**Judges' note**: This was followed by a description of the bug, and
the comment:]
Note, if this program wins, the author thinks it would be good to leave
+9 -7
View File
@@ -409,7 +409,7 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- BEFORE: 1st line of markdown file: 2001/dgbeards/README.md -->
<h2 id="to-build">To build:</h2>
<pre><code> make</code></pre>
<p>There is an alternate version based on the author’s remarks. See <a href="#alternate-code">alternate
<p>There is an alternate version based on the author’s remarks. See <a href="#alternate-code">Alternate
code</a> below for more details.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
@@ -560,11 +560,13 @@ this is not so.</p>
<h4 id="q-what-about-the-compiler-warnings">Q: What about the compiler warnings?</h4>
<p>A: When compiled with <code>gcc -Wall</code>, the compiler generated the following
warnings:</p>
<pre><code> suggest parentheses around + or - in operand of &amp;
array subscript has type &#39;char&#39;
return type defaults to &#39;int&#39;
control reaches end of non-void function
value computed is not used</code></pre>
<blockquote>
<p>suggest parentheses around <code>+</code> or <code>-</code> in operand of <code>&amp;</code><br>
array subscript has type ‘<code>char</code>’<br>
return type defaults to ‘<code>int</code>’<br>
control reaches end of non-void function<br>
value computed is not used</p>
</blockquote>
<p>The <code>value computed is not used</code> warning happens because I use the <code>&amp;&amp;</code>
operator and take advantage of short circuit evaluation instead of using
an <code>if()</code> statement.</p>
@@ -578,7 +580,7 @@ eliminate them and that can’t be done given the size limit.</p>
appropriate sportsmanship for a program of this genre and can think of
no worse job than trying to find an elusive bug in an intentionally
obfuscated program.</p>
<p>[Judge’s note: This was followed by a description of the bug, and
<p>[<strong>Judges’ note</strong>: This was followed by a description of the bug, and
the comment:]</p>
<p>Note, if this program wins, the author thinks it would be good to leave
this information out of the remarks and encourage others to try and
+26 -21
View File
@@ -164,8 +164,8 @@ expected, and one more I is appended to the row.) Let's call it
Some explanations:
- The tape alphabet is always O and I.
- The states can be anything starting with "st". "start" and
"stop" are the start and stop states, respectively.
- The states can be anything starting with "`st`". "`start`" and
"`stop`" are the start and stop states, respectively.
- To define a state, use two lines: one for each letter on the
tape. You may omit one of the lines if the Turing machine will
never enter the state reading that letter. (In the example, the
@@ -220,13 +220,13 @@ Tape:
*
```
and the return code will be 1. As you can see, the Turing machine
and the return code will be `1`. As you can see, the Turing machine
moved over the `O`s, but when it arrived at the `I` (still in state
start), the error occurred.
Note that other kinds of errors can cause compilation to fail.
If this happens, the build script will write the error message of
gcc into a file called `error` and then exit.
`gcc` into a file called `error` and then exit.
### What the build script does
@@ -238,7 +238,7 @@ beginning of the program; this is where the animation takes place
(except in the first and last few steps).
However, there's a technical problem to overcome: Some compilers
(including gcc) insert a lot of white space during the
(including `gcc`) insert a lot of white space during the
preprocessing. This is bad for two reasons. First, the animated
picture won't look right. And second, after some time, the file
will grow too big for your hard disk. (The amount of white space
@@ -246,12 +246,12 @@ grows exponentially.) So after each preprocessing, the first thing
the build script does is remove all the unnecessary white space
using `sed`.
(gcc would even insert `#line` directives if I didn't suppress
(`gcc` would even insert `#line` directives if I didn't suppress
them with the `-P` option.)
### Some more details
- The arguments passed to the build script are passed on to gcc
- The arguments passed to the build script are passed on to `gcc`
with a `-D` before. I had a slight technical problem doing this
(especially with the spaces that can appear within the tape
argument). That made the build script a bit longer.
@@ -266,8 +266,8 @@ lines of code.)
`herrmann1-2.c` are generated.
- Also, a file `error` is generated. This file is removed after
the compilation, except if gcc produced an error; then it contains
the error message. (I can't let gcc output all its messages
the compilation, except if `gcc` produced an error; then it contains
the error message. (I can't let `gcc` output all its messages
directly, because the warnings would clobber the animation. I
could have made the compile script output the error file in case
of an error, but I didn't want to make it yet longer.)
@@ -318,9 +318,10 @@ to use many variables more than once.
- I couldn't refrain from doing a little bit of nasty stuff like
#define a 0&0
#if !a
``` <!---c-->
#define a 0&0
#if !a
```
Of course, it is a bit more subtle, and even useful.
- The layout of the source code..., well, let's call it the
@@ -330,9 +331,9 @@ indenting and modern art. There are even some comments...
### Compatibility
- It works with many versions of gcc. I tested it with versions
- It works with many versions of `gcc`. I tested it with versions
2.7.2.1, 2.8.1, 2.95.2, and ecgs-2.91.66. However, an old version
of gcc produced "internal compiler errors" (obviously not my
of `gcc` produced "internal compiler errors" (obviously not my
fault).
- The only warnings I get tell me that I'm undefining `__FILE__` and
@@ -356,21 +357,25 @@ script, so that one does not have to choose "preprocess" from
the menu over and over again. I leave this as an exercise to the
experienced Mac programmer.)
- In the build script, I passed the `-P` option to gcc to suppress
- In the build script, I passed the `-P` option to `gcc` to suppress
the insertion of `#line` directives. If your compiler doesn't
support this option (and does insert `#line` directives), you
should change the call to `sed` to remove them, too: Add
-e "/^#line/ d"
``` <!---sed-->
-e "/^#line/ d"
```
to the sed parameters. Or, if your `#line` directives look like
# 15 "filename"
to the `sed` parameters. Or, if your `#line` directives look like
``` <!---c-->
# 15 "filename"
```
add
-e "/^# [0-9]/ d"
``` <!---sed-->
-e "/^# [0-9]/ d"
```
instead.
- First, I had `-ansi -pedantic` turned on, but on some systems,
+28 -24
View File
@@ -511,8 +511,8 @@ expected, and one more I is appended to the row.) Let’s call it
#define st2_O I, left, stop</code></pre>
<p>Some explanations:
- The tape alphabet is always O and I.
- The states can be anything starting with “st”. “start” and
“stop” are the start and stop states, respectively.
- The states can be anything starting with “<code>st</code>”. “<code>start</code>” and
“<code>stop</code>” are the start and stop states, respectively.
- To define a state, use two lines: one for each letter on the
tape. You may omit one of the lines if the Turing machine will
never enter the state reading that letter. (In the example, the
@@ -541,12 +541,12 @@ line</p>
<pre><code> *
..OOOOOOOOIIIIOO..
*</code></pre>
<p>and the return code will be 1. As you can see, the Turing machine
<p>and the return code will be <code>1</code>. As you can see, the Turing machine
moved over the <code>O</code>s, but when it arrived at the <code>I</code> (still in state
start), the error occurred.</p>
<p>Note that other kinds of errors can cause compilation to fail.
If this happens, the build script will write the error message of
gcc into a file called <code>error</code> and then exit.</p>
<code>gcc</code> into a file called <code>error</code> and then exit.</p>
<h3 id="what-the-build-script-does">What the build script does</h3>
<p>In principle, the build script simply runs the preprocessor over
and over again, until nothing changes anymore; then, the program
@@ -554,18 +554,18 @@ is compiled. After each preprocessing step, the script outputs the
beginning of the program; this is where the animation takes place
(except in the first and last few steps).</p>
<p>However, there’s a technical problem to overcome: Some compilers
(including gcc) insert a lot of white space during the
(including <code>gcc</code>) insert a lot of white space during the
preprocessing. This is bad for two reasons. First, the animated
picture won’t look right. And second, after some time, the file
will grow too big for your hard disk. (The amount of white space
grows exponentially.) So after each preprocessing, the first thing
the build script does is remove all the unnecessary white space
using <code>sed</code>.</p>
<p>(gcc would even insert <code>#line</code> directives if I didn’t suppress
<p>(<code>gcc</code> would even insert <code>#line</code> directives if I didn’t suppress
them with the <code>-P</code> option.)</p>
<h3 id="some-more-details">Some more details</h3>
<ul>
<li><p>The arguments passed to the build script are passed on to gcc
<li><p>The arguments passed to the build script are passed on to <code>gcc</code>
with a <code>-D</code> before. I had a slight technical problem doing this
(especially with the spaces that can appear within the tape
argument). That made the build script a bit longer.</p></li>
@@ -577,8 +577,8 @@ lines of code.)</p></li>
<li><p>During the preprocessing, intermediate files <code>herrmann1-1.c</code> and
<code>herrmann1-2.c</code> are generated.</p></li>
<li><p>Also, a file <code>error</code> is generated. This file is removed after
the compilation, except if gcc produced an error; then it contains
the error message. (I can’t let gcc output all its messages
the compilation, except if <code>gcc</code> produced an error; then it contains
the error message. (I can’t let <code>gcc</code> output all its messages
directly, because the warnings would clobber the animation. I
could have made the compile script output the error file in case
of an error, but I didn’t want to make it yet longer.)</p></li>
@@ -620,19 +620,21 @@ produced, etc. If you want a real challenge, try to understand
what the line <code>w j k(P ## x)</code> does.</p></li>
<li><p>Due to the fact that our alphabet has only 53 ;-) letters, I had
to use many variables more than once.</p></li>
<li><p>I couldn’t refrain from doing a little bit of nasty stuff like</p>
<pre><code> #define a 0&amp;0
#if !a</code></pre>
<p>Of course, it is a bit more subtle, and even useful.</p></li>
<li><p>The layout of the source code…, well, let’s call it the
<li><p>I couldn’t refrain from doing a little bit of nasty stuff like</p></li>
</ul>
<pre><code> #define a 0&amp;0
#if !a</code></pre>
<p>Of course, it is a bit more subtle, and even useful.</p>
<ul>
<li>The layout of the source code…, well, let’s call it the
“modern art of programming” - a mixture of program-like
indenting and modern art. There are even some comments…</p></li>
indenting and modern art. There are even some comments…</li>
</ul>
<h3 id="compatibility">Compatibility</h3>
<ul>
<li><p>It works with many versions of gcc. I tested it with versions
<li><p>It works with many versions of <code>gcc</code>. I tested it with versions
2.7.2.1, 2.8.1, 2.95.2, and ecgs-2.91.66. However, an old version
of gcc produced “internal compiler errors” (obviously not my
of <code>gcc</code> produced “internal compiler errors” (obviously not my
fault).</p></li>
<li><p>The only warnings I get tell me that I’m undefining <code>__FILE__</code> and
that preprocessing directives are not recognized within macro
@@ -652,16 +654,18 @@ to write a kind of script which does the equivalent to the build
script, so that one does not have to choose “preprocess” from
the menu over and over again. I leave this as an exercise to the
experienced Mac programmer.)</p></li>
<li><p>In the build script, I passed the <code>-P</code> option to gcc to suppress
<li><p>In the build script, I passed the <code>-P</code> option to <code>gcc</code> to suppress
the insertion of <code>#line</code> directives. If your compiler doesn’t
support this option (and does insert <code>#line</code> directives), you
should change the call to <code>sed</code> to remove them, too: Add</p>
<pre><code> -e &quot;/^#line/ d&quot;</code></pre>
<p>to the sed parameters. Or, if your <code>#line</code> directives look like</p>
<pre><code> # 15 &quot;filename&quot;</code></pre>
should change the call to <code>sed</code> to remove them, too: Add</p></li>
</ul>
<pre><code> -e &quot;/^#line/ d&quot;</code></pre>
<p>to the <code>sed</code> parameters. Or, if your <code>#line</code> directives look like</p>
<pre><code> # 15 &quot;filename&quot;</code></pre>
<p>add</p>
<pre><code> -e &quot;/^# [0-9]/ d&quot;</code></pre>
<p>instead.</p></li>
<pre><code> -e &quot;/^# [0-9]/ d&quot;</code></pre>
<p>instead.</p>
<ul>
<li><p>First, I had <code>-ansi -pedantic</code> turned on, but on some systems,
the <code>stdio.h</code> is not compatible to that, so I turned it back off.</p></li>
<li><p>The build script probably needs a bash to run in. So perhaps you
-8
View File
@@ -117,14 +117,6 @@ the game entertaining, see if you can find
in the source code.)
### NOTICE to those who wish for a greater challenge:
**If you want a greater challenge, don't read any further**:
just try to understand the program via the source.
If you get stuck, come back and read below for additional hints and information.
### GAME STRATEGY
The trick, of course, is to drop items in empty rooms to mark them. That way
-4
View File
@@ -487,10 +487,6 @@ the game entertaining, see if you can find</p>
<pre><code> the fish scales Q)++j&lt;
the shooting star -~- ~ -~i +</code></pre>
<p>in the source code.)</p>
<h3 id="notice-to-those-who-wish-for-a-greater-challenge">NOTICE to those who wish for a greater challenge:</h3>
<p><strong>If you want a greater challenge, don’t read any further</strong>:
just try to understand the program via the source.</p>
<p>If you get stuck, come back and read below for additional hints and information.</p>
<h3 id="game-strategy">GAME STRATEGY</h3>
<p>The trick, of course, is to drop items in empty rooms to mark them. That way
you usually know if you’re in a room you’ve seen before. It greatly aids
+2 -2
View File
@@ -5,7 +5,7 @@
```
There is another version which lets you use the arrow keys rather than the more
awkward `,` and `.` keys. See [alternate code](#alternate-code) below.
awkward `,` and `.` keys. See [Alternate code](#alternate-code) below.
### Bugs and (Mis)features:
@@ -25,7 +25,7 @@ For more detailed information see [2001/kev in bugs.html](../../bugs.html#2001_k
./kev hostname # in another terminal
```
NOTE: each player's paddle is at the bottom and the opponent at the top.
**NOTE**: each player's paddle is at the bottom and the opponent at the top.
## Try:
+2 -2
View File
@@ -410,7 +410,7 @@ Location: <a href="../../location.html#AU">AU</a> - <em>Commonwealth of Australi
<h2 id="to-build">To build:</h2>
<pre><code> make</code></pre>
<p>There is another version which lets you use the arrow keys rather than the more
awkward <code>,</code> and <code>.</code> keys. See <a href="#alternate-code">alternate code</a> below.</p>
awkward <code>,</code> and <code>.</code> keys. See <a href="#alternate-code">Alternate code</a> below.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
<blockquote>
@@ -421,7 +421,7 @@ awkward <code>,</code> and <code>.</code> keys. See <a href="#alternate-code">al
<pre><code> ./kev # in one terminal
./kev hostname # in another terminal</code></pre>
<p>NOTE: each player’s paddle is at the bottom and the opponent at the top.</p>
<p><strong>NOTE</strong>: each player’s paddle is at the bottom and the opponent at the top.</p>
<h2 id="try">Try:</h2>
<pre><code> ./kev # in one terminal
+31 -31
View File
@@ -64,36 +64,34 @@ Q: Are there types of entries that are submitted so frequently that the
A: Yes, there are types of entries that show up over and over again.
The guidelines say:
```
We tend to dislike programs that:
are similar to previous winning entries
We like variety. However too often we see (please look at the winning
examples given to be aware of the level of the competition):
(snip)
generating small primes (below is the list of all prime related entries)
1985/august
1988/applin
1994/weisberg
1995/makarios
1996/dalbec
2000/bellard
As you can see, just a list of primes (let alone small primes)
does not cut it anymore.
(snip)
entries that use some complex state machine/table to print something
1988/isaak
1988/phillipps
Unbeaten for 12 years and counting...
```
> We tend to dislike programs that:<br>
> &nbsp;&nbsp;&nbsp;&nbsp;are similar to previous winning entries<br>
>
> We like variety. However too often we see (please look at the winning examples
given to be aware of the level of the competition):
>
> (snip)<br>
>
> generating small primes (below is the list of all prime related entries)<br>
>
> 1985/august<br>
> 1988/applin<br>
> 1994/weisberg<br>
> 1995/makarios<br>
> 1996/dalbec<br>
> 2000/bellard<br>
>
> As you can see, just a list of primes (let alone small primes) does not cut
it anymore.
>
> (snip)<br>
>
> entries that use some complex state machine/table to print something
>
> 1988/isaak<br>
> 1988/phillipps
>
> Unbeaten for 12 years and counting...
I think this is enough motivation for trying to submit a program which uses
some complex state machine/table to generate small primes and print them.
@@ -114,7 +112,9 @@ guarantee a constant time.
The main loop simply iterates this transition function on each cell.
"The rest is silence" (Hamlet, V.2)
> "The rest is silence"<br>
>
> (Hamlet, V.2)
Enjoy!
+25 -29
View File
@@ -441,34 +441,27 @@ character printed on the screen.</p>
judges get tired of them?</p>
<p>A: Yes, there are types of entries that show up over and over again.
The guidelines say:</p>
<pre><code> We tend to dislike programs that:
are similar to previous winning entries
We like variety. However too often we see (please look at the winning
examples given to be aware of the level of the competition):
(snip)
generating small primes (below is the list of all prime related entries)
1985/august
1988/applin
1994/weisberg
1995/makarios
1996/dalbec
2000/bellard
As you can see, just a list of primes (let alone small primes)
does not cut it anymore.
(snip)
entries that use some complex state machine/table to print something
1988/isaak
1988/phillipps
Unbeaten for 12 years and counting...</code></pre>
<blockquote>
<p>We tend to dislike programs that:<br>
    are similar to previous winning entries<br></p>
<p>We like variety. However too often we see (please look at the winning examples
given to be aware of the level of the competition):</p>
<p>(snip)<br></p>
<p>generating small primes (below is the list of all prime related entries)<br></p>
<p>1985/august<br>
1988/applin<br>
1994/weisberg<br>
1995/makarios<br>
1996/dalbec<br>
2000/bellard<br></p>
<p>As you can see, just a list of primes (let alone small primes) does not cut
it anymore.</p>
<p>(snip)<br></p>
<p>entries that use some complex state machine/table to print something</p>
<p>1988/isaak<br>
1988/phillipps</p>
<p>Unbeaten for 12 years and counting…</p>
</blockquote>
<p>I think this is enough motivation for trying to submit a program which uses
some complex state machine/table to generate small primes and print them.</p>
<h3 id="the-way-it-works">The way it works</h3>
@@ -482,7 +475,10 @@ by <a href="http://richardallenfischer.com">Fischer</a> in 1965.</p>
is obfuscated to reduce its size, restrict it to characters 32 to 127 and
guarantee a constant time.</p>
<p>The main loop simply iterates this transition function on each cell.</p>
<p>“The rest is silence” (Hamlet, V.2)</p>
<blockquote>
<p>“The rest is silence”<br></p>
<p>(Hamlet, V.2)</p>
</blockquote>
<p>Enjoy!</p>
<!--
+8 -5
View File
@@ -4,7 +4,7 @@
make
```
NOTE: this entry requires the `X11/Xlib.h` header file and the X11 library to
**NOTE**: this entry requires the `X11/Xlib.h` header file and the X11 library to
compile. For more information see the
FAQ on "[X11](../../faq.html#X11)".
@@ -13,7 +13,8 @@ FAQ on "[X11](../../faq.html#X11)".
The current status of this entry is:
> **STATUS: missing files - please provide them**
> **STATUS: INABIAF - please DO NOT fix**<br>
> **STATUS: missing files - please provide them**<br>
For more detailed information see [2001/rosten in bugs.html](../../bugs.html#2001_rosten).
@@ -24,10 +25,10 @@ For more detailed information see [2001/rosten in bugs.html](../../bugs.html#200
./rosten [number]
```
WARNING: this will mess with your mouse and can make it hard to quit the
**WARNING**: this will mess with your mouse and can make it hard to quit the
program. Use at your own risk.
NOTE: number is floating point.
**NOTE**: number is floating point.
## Try:
@@ -108,7 +109,9 @@ like this:
greasymouse.c:58: This program is rubbish. I'm not going to link it.
```
The code is best viewed with [tab stops](https://en.wikipedia.org/wiki/Tab_stop) every 8 spaces.
The code is best viewed with [tab stops](https://en.wikipedia.org/wiki/Tab_stop)
every 8 spaces. If you use `vi(m)` see the
FAQ on "[tab stops](../../faq.html#tabstops)".
### BUGS
+8 -5
View File
@@ -409,20 +409,21 @@ Location: <a href="../../location.html#GB">GB</a> - <em>United Kingdom of Great
<!-- BEFORE: 1st line of markdown file: 2001/rosten/README.md -->
<h2 id="to-build">To build:</h2>
<pre><code> make</code></pre>
<p>NOTE: this entry requires the <code>X11/Xlib.h</code> header file and the X11 library to
<p><strong>NOTE</strong>: this entry requires the <code>X11/Xlib.h</code> header file and the X11 library to
compile. For more information see the
FAQ on “<a href="../../faq.html#X11">X11</a>”.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
<blockquote>
<p><strong>STATUS: missing files - please provide them</strong></p>
<p><strong>STATUS: INABIAF - please DO NOT fix</strong><br>
<strong>STATUS: missing files - please provide them</strong><br></p>
</blockquote>
<p>For more detailed information see <a href="../../bugs.html#2001_rosten">2001/rosten in bugs.html</a>.</p>
<h2 id="to-use">To use:</h2>
<pre><code> ./rosten [number]</code></pre>
<p>WARNING: this will mess with your mouse and can make it hard to quit the
<p><strong>WARNING</strong>: this will mess with your mouse and can make it hard to quit the
program. Use at your own risk.</p>
<p>NOTE: number is floating point.</p>
<p><strong>NOTE</strong>: number is floating point.</p>
<h2 id="try">Try:</h2>
<pre><code> ./rosten 1.03
./rosten 1.00</code></pre>
@@ -464,7 +465,9 @@ like this:</p>
greasymouse.c:55: So is that
...
greasymouse.c:58: This program is rubbish. I&#39;m not going to link it.</code></pre>
<p>The code is best viewed with <a href="https://en.wikipedia.org/wiki/Tab_stop">tab stops</a> every 8 spaces.</p>
<p>The code is best viewed with <a href="https://en.wikipedia.org/wiki/Tab_stop">tab stops</a>
every 8 spaces. If you use <code>vi(m)</code> see the
FAQ on “<a href="../../faq.html#tabstops">tab stops</a>”.</p>
<h3 id="bugs">BUGS</h3>
<p>The mouse gets stuck completely if you give it an option of less
than 1 and leave it for too long. This is quite annoying if it
-7
View File
@@ -28,13 +28,6 @@ comments for details and a workaround.
There's also no way to escape meta characters.
This is supposed to happen. As is written in the
[The Jargon File](http://catb.org/jargon/html/F/feature.html):
```
That's not a bug, that's a feature.
```
## Try:
-3
View File
@@ -422,9 +422,6 @@ two args.</p>
<p>Note also that the glob pattern must match the whole string. See the author’s
comments for details and a workaround.</p>
<p>There’s also no way to escape meta characters.</p>
<p>This is supposed to happen. As is written in the
<a href="http://catb.org/jargon/html/F/feature.html">The Jargon File</a>:</p>
<pre><code> That&#39;s not a bug, that&#39;s a feature.</code></pre>
<h2 id="try">Try:</h2>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
+4 -6
View File
@@ -101,7 +101,7 @@ versions of the program, all valid C!
## Author's remarks:
[Punch cards](https://en.wikipedia.org/wiki/Punched_card), or Hollerith cards,
were becoming obsolete just as C was becoming more popular\*; this is rather
were becoming obsolete just as C was becoming more popular[^1]; this is rather
unfortunate, because C has an advantage over many other languages when it comes
to punch cards - C programs can be written to be "drop proof".
@@ -117,7 +117,7 @@ Consider the following C program:
This program will compile and run no matter what order the
lines are in. If you punch it on cards (one line of code per
card, naturally) and drop them, you don't need to put them in
any particular order\*\*; it will always produce `ABC` as output.
any particular order[^2]; it will always produce `ABC` as output.
You can also use global variables:
@@ -224,11 +224,9 @@ comment), there are technically `28!` different programs, or
`304,888,344,611,713,860,501,504,000,000` different versions,
all legal C.
```
* except in Florida voting machines
[^1]: except in Florida voting machines
** all cards must be face down, nine-edge first, of course.
```
[^2]: all cards must be face down, nine-edge first, of course.
<!--
+10 -5
View File
@@ -461,7 +461,7 @@ blank lines) there are <code>28!</code> or <code>304,888,344,611,713,860,501,504
versions of the program, all valid C!</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p><a href="https://en.wikipedia.org/wiki/Punched_card">Punch cards</a>, or Hollerith cards,
were becoming obsolete just as C was becoming more popular*; this is rather
were becoming obsolete just as C was becoming more popular<a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a>; this is rather
unfortunate, because C has an advantage over many other languages when it comes
to punch cards - C programs can be written to be “drop proof”.</p>
<p>Consider the following C program:</p>
@@ -472,7 +472,7 @@ to punch cards - C programs can be written to be “drop proof”.</p>
<p>This program will compile and run no matter what order the
lines are in. If you punch it on cards (one line of code per
card, naturally) and drop them, you don’t need to put them in
any particular order**; it will always produce <code>ABC</code> as output.</p>
any particular order<a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a>; it will always produce <code>ABC</code> as output.</p>
<p>You can also use global variables:</p>
<pre><code> char *greet = &quot;Hello, world!&quot;;
char *greet; main(){puts(greet);}</code></pre>
@@ -553,9 +553,6 @@ actually shorter than the trigraph version of <code>a??(b??)</code>.</p>
comment), there are technically <code>28!</code> different programs, or
<code>304,888,344,611,713,860,501,504,000,000</code> different versions,
all legal C.</p>
<pre><code> * except in Florida voting machines
** all cards must be face down, nine-edge first, of course.</code></pre>
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
@@ -570,6 +567,14 @@ all legal C.</p>
-->
<!-- AFTER: last line of markdown file: 2001/westley/README.md -->
<hr style="width:10%;text-align:left;margin-left:0">
<section id="footnotes" class="footnotes footnotes-end-of-document" role="doc-endnotes">
<h5>Footnotes</h5>
<ol>
<li id="fn1"><p>except in Florida voting machines<a href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn2"><p>all cards must be face down, nine-edge first, of course.<a href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
+1 -1
View File
@@ -4,7 +4,7 @@
make
```
NOTE: this entry requires the `X11/Xlib.h` header file and the X11 library to
**NOTE**: this entry requires the `X11/Xlib.h` header file and the X11 library to
compile. For more information see the
FAQ on "[X11](../../faq.html#X11)".
+1 -1
View File
@@ -409,7 +409,7 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
<!-- BEFORE: 1st line of markdown file: 2001/williams/README.md -->
<h2 id="to-build">To build:</h2>
<pre><code> make</code></pre>
<p>NOTE: this entry requires the <code>X11/Xlib.h</code> header file and the X11 library to
<p><strong>NOTE</strong>: this entry requires the <code>X11/Xlib.h</code> header file and the X11 library to
compile. For more information see the
FAQ on “<a href="../../faq.html#X11">X11</a>”.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>