Fixes in 1998 html files
This includes some notices to those who wish for a greater challenge. In the 1998/schweikh3 the man page (and its copy to demonstrate the entry) have been updated slightly but only in comment (move 'or' from the command suggested to render it in text to its own line before the next command also in comment). The bugs file was updated for an entry or two.
This commit is contained in:
1 parent
e297d4541a
commit
1fad29cd2f
28 files changed
+647
-370
No files matched your search
@@ -46,8 +46,8 @@ because in the header file you can see that `XK_u` corresponds to `u` and `XK_d`
|
||||
corresponds to `d`:
|
||||
|
||||
``` <!---c-->
|
||||
#define XK_d 0x0064 /* U+0064 LATIN SMALL LETTER D */
|
||||
#define XK_u 0x0075 /* U+0075 LATIN SMALL LETTER U */
|
||||
#define XK_d 0x0064 /* U+0064 LATIN SMALL LETTER D */
|
||||
#define XK_u 0x0075 /* U+0075 LATIN SMALL LETTER U */
|
||||
```
|
||||
|
||||
Note that the [keysym.h](%%REPO_URL%%/1998/banks/keysym.h) file is not complete from X11; it's just the
|
||||
|
||||
@@ -437,8 +437,8 @@ the throttle up and down to <code>u</code> and <code>d</code>:</p>
|
||||
<pre><code> make clobber IT=XK_u DT=XK_d all</code></pre>
|
||||
<p>because in the header file you can see that <code>XK_u</code> corresponds to <code>u</code> and <code>XK_d</code>
|
||||
corresponds to <code>d</code>:</p>
|
||||
<pre><code> #define XK_d 0x0064 /* U+0064 LATIN SMALL LETTER D */
|
||||
#define XK_u 0x0075 /* U+0075 LATIN SMALL LETTER U */</code></pre>
|
||||
<pre><code> #define XK_d 0x0064 /* U+0064 LATIN SMALL LETTER D */
|
||||
#define XK_u 0x0075 /* U+0075 LATIN SMALL LETTER U */</code></pre>
|
||||
<p>Note that the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/banks/keysym.h">keysym.h</a> file is not complete from X11; it’s just the
|
||||
more likely candidates (and some that are probably unlikely :-) ).</p>
|
||||
<p>The upper case letters would be <code>XK_U</code> and <code>XK_D</code> and you can search the header
|
||||
|
||||
+10
-1
@@ -5,13 +5,22 @@
|
||||
```
|
||||
|
||||
NOTE: Some systems do not implement `halfdelay()` in their `libcurses`.
|
||||
You might try compiling with -lncurses if you have that library.
|
||||
You might try compiling with `-lncurses` if you have that library.
|
||||
Or you can build this entry without the `halfdelay()` call by:
|
||||
|
||||
``` <!---sh-->
|
||||
make chaos_nohalf
|
||||
```
|
||||
|
||||
### Bugs and (Mis)features:
|
||||
|
||||
The current status of this entry is:
|
||||
|
||||
> **STATUS: INABIAF - please DO NOT fix**
|
||||
|
||||
For more detailed information see [1998/chaos in bugs.html](../../bugs.html#1998_chaos).
|
||||
|
||||
|
||||
|
||||
## To use:
|
||||
|
||||
|
||||
@@ -410,9 +410,15 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
|
||||
<h2 id="to-build">To build:</h2>
|
||||
<pre><code> make chaos</code></pre>
|
||||
<p>NOTE: Some systems do not implement <code>halfdelay()</code> in their <code>libcurses</code>.
|
||||
You might try compiling with -lncurses if you have that library.
|
||||
You might try compiling with <code>-lncurses</code> if you have that library.
|
||||
Or you can build this entry without the <code>halfdelay()</code> call by:</p>
|
||||
<pre><code> make chaos_nohalf</code></pre>
|
||||
<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></p>
|
||||
</blockquote>
|
||||
<p>For more detailed information see <a href="../../bugs.html#1998_chaos">1998/chaos in bugs.html</a>.</p>
|
||||
<h2 id="to-use">To use:</h2>
|
||||
<pre><code> ./chaos</code></pre>
|
||||
<h2 id="try">Try:</h2>
|
||||
|
||||
@@ -139,11 +139,8 @@ where the first one would show the text as rendered but without links, images
|
||||
etc. and the second one would write the html to `ms.html` so that you could open
|
||||
it in a browser.
|
||||
|
||||
For an old example of it working as a CGI script see:
|
||||
|
||||
``` <!---sh-->
|
||||
https://web.archive.org/web/20040326083431/http://www.pootpoot.com/poot/pootify/?URL=http%3A%2F%2Fwww.ioccc.org
|
||||
```
|
||||
For an old example of it working as a CGI script see
|
||||
<https://web.archive.org/web/20040326083431/http://www.pootpoot.com/poot/pootify/?URL=http%3A%2F%2Fwww.ioccc.org>.
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
@@ -487,8 +487,8 @@ can look at locally in a browser or pipe through <code>less(1)</code>. For insta
|
||||
<p>where the first one would show the text as rendered but without links, images
|
||||
etc. and the second one would write the html to <code>ms.html</code> so that you could open
|
||||
it in a browser.</p>
|
||||
<p>For an old example of it working as a CGI script see:</p>
|
||||
<pre><code> https://web.archive.org/web/20040326083431/http://www.pootpoot.com/poot/pootify/?URL=http%3A%2F%2Fwww.ioccc.org</code></pre>
|
||||
<p>For an old example of it working as a CGI script see
|
||||
<a href="https://web.archive.org/web/20040326083431/http://www.pootpoot.com/poot/pootify/?URL=http%3A%2F%2Fwww.ioccc.org" class="uri">https://web.archive.org/web/20040326083431/http://www.pootpoot.com/poot/pootify/?URL=http%3A%2F%2Fwww.ioccc.org</a>.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p>This program is a text filter, it reads <code>stdin</code> and outputs the
|
||||
“corrected” text to <code>stdout</code>.</p>
|
||||
|
||||
@@ -60,11 +60,9 @@ clockwise `l` does as well. Instead of using `d` to drop the letter you can do
|
||||
Read the authors' remarks below to find out how to play. We believe that your
|
||||
experience may mirror one of our experiences:
|
||||
|
||||
```
|
||||
Originally, I didn't appreciate the game. Then I actually read the
|
||||
description of the controls. I started playing. I struggled.
|
||||
I spelled my first "poot". I was hooked ...
|
||||
```
|
||||
> Originally, I didn't appreciate the game. Then I actually read the
|
||||
description of the controls. I started playing. I struggled. I spelled my
|
||||
first "poot". I was hooked ...
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
@@ -79,7 +77,7 @@ experience may mirror one of our experiences:
|
||||
|
||||
The object of this game is to spell `POOT` as much as possible. There
|
||||
is no time pressure. You're given one letter at a time (sort of randomly
|
||||
chosen from the set 'P', 'O', and 'T') and you get to move it freely
|
||||
chosen from the set '`P`', '`O`', and '`T`') and you get to move it freely
|
||||
around the border of the playing board, and decide when and where to drop
|
||||
it into the board. Sound easy? Of course, there's a catch...
|
||||
|
||||
|
||||
@@ -442,16 +442,18 @@ clockwise <code>l</code> does as well. Instead of using <code>d</code> to drop t
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p>Read the authors’ remarks below to find out how to play. We believe that your
|
||||
experience may mirror one of our experiences:</p>
|
||||
<pre><code> Originally, I didn't appreciate the game. Then I actually read the
|
||||
description of the controls. I started playing. I struggled.
|
||||
I spelled my first "poot". I was hooked ...</code></pre>
|
||||
<blockquote>
|
||||
<p>Originally, I didn’t appreciate the game. Then I actually read the
|
||||
description of the controls. I started playing. I struggled. I spelled my
|
||||
first “poot”. I was hooked …</p>
|
||||
</blockquote>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<h3 id="usage">Usage</h3>
|
||||
<pre><code> ./pootris [X size of board] [Y size of board]</code></pre>
|
||||
<h3 id="synopsis">Synopsis</h3>
|
||||
<p>The object of this game is to spell <code>POOT</code> as much as possible. There
|
||||
is no time pressure. You’re given one letter at a time (sort of randomly
|
||||
chosen from the set ‘P’, ‘O’, and ‘T’) and you get to move it freely
|
||||
chosen from the set ‘<code>P</code>’, ‘<code>O</code>’, and ‘<code>T</code>’) and you get to move it freely
|
||||
around the border of the playing board, and decide when and where to drop
|
||||
it into the board. Sound easy? Of course, there’s a catch…</p>
|
||||
<h3 id="controls">Controls</h3>
|
||||
|
||||
+5
-13
@@ -116,25 +116,17 @@ is the same as
|
||||
|
||||
**If you want a greater challenge, don't read any further**:
|
||||
just try to understand the program without running the command below.
|
||||
If you get stuck, come back and read the below.
|
||||
|
||||
If you get stuck, come back and run the following command:
|
||||
The file [dorssel.html](dorssel.html) contains all the information needed to
|
||||
understand this program.
|
||||
|
||||
For more information you might also try:
|
||||
|
||||
``` <!---sh-->
|
||||
./dorssel < dorssel.md
|
||||
```
|
||||
|
||||
|
||||
### 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.
|
||||
|
||||
- The file [dorssel.html](dorssel.html) contains all the information needed to
|
||||
understand this program. For spoiler information, try:
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+60
-38
@@ -423,7 +423,7 @@ counter before shifting out each symbol, such as</p>
|
||||
encoding >>= 1;
|
||||
} while (length--);</code></pre>
|
||||
<p>We can also use the remaining bits to <em>include</em> the counter</p>
|
||||
<pre><code> length 1: 00000.1x E > 00000.11
|
||||
<pre><code> length 1: 00000.1x `E > 00000.11
|
||||
length 2: 0000.1xx
|
||||
length 3: 000.1xxx
|
||||
length 4: 00.1xxxx Z > 00.11100
|
||||
@@ -438,11 +438,11 @@ this is not very pleasant, as some Morse sequences will end up having
|
||||
an ASCII value < 32, i.e. they will be control codes. This would make
|
||||
the initializing (encoding) string awkward. Hence I came up with the
|
||||
following</p>
|
||||
<pre><code> length 1: 0010010x E > 00100101 (= '%')
|
||||
length 2: 001010xx
|
||||
length 3: 00110xxx
|
||||
length 4: 0100xxxx Z > 01001100 (= 'L')
|
||||
length 5: 011xxxxx 3 > 01100111 (= 'g')</code></pre>
|
||||
<pre><code>length 1: 0010010x E > 00100101 (= '%')
|
||||
length 2: 001010xx
|
||||
length 3: 00110xxx
|
||||
length 4: 0100xxxx Z > 01001100 (= 'L')
|
||||
length 5: 011xxxxx 3 > 01100111 (= 'g')</code></pre>
|
||||
<p>Notice these encodings in the initialization string. Only the coding for
|
||||
<code>5</code> needs an escape (<code>5 = ..... > 01111111 = '\177'</code>). The way the length
|
||||
is encoded still allows the encoding to be its own counter:</p>
|
||||
@@ -454,13 +454,14 @@ is encoded still allows the encoding to be its own counter:</p>
|
||||
Note that the calculation for the next value of <code>encoding</code> is done at <code>int</code>
|
||||
precision, so that the actual value of the <code>char</code> remains <code><= 127</code>.</p>
|
||||
<p>The character <code>'-'</code> (ASCII 45) and <code>'.'</code> (ASCII 46) are conveniently in
|
||||
sequence, so the putchar can simply be</p>
|
||||
sequence, so the <code>putchar(3)</code> can simply be</p>
|
||||
<pre><code> putchar(45 + encoding % 2);</code></pre>
|
||||
<p>I used the modulo operator this time, because <code>+</code> takes precedence over <code>&</code>.
|
||||
The assignment can be incorporated into the <code>while</code> control test, and a
|
||||
<code>do-while</code> loop with a body of a single expression statement can be written
|
||||
as a <code>while</code> loop with a comma operator in the test:</p>
|
||||
<pre><code> while(putchar(45 + encoding % 2), encoding = encoding + 32 >> 1);</code></pre>
|
||||
<pre><code> while(putchar(45 + encoding % 2),
|
||||
encoding = encoding + 32 >> 1);</code></pre>
|
||||
<p>Voila.</p>
|
||||
<p>Now, the decoding of Morse codes is just the reverse. We shift in <code>0</code>s
|
||||
and <code>1</code>s as we scan the line. But: we have to scan from back to front
|
||||
@@ -484,23 +485,23 @@ and letters. This is OK, since neither of these characters, or the <code>'\0'</c
|
||||
is a valid encoding ! We must, however, use <code>memchr(3)</code> instead of <code>strchr(3)</code> in
|
||||
the decoding lookup because of this <code>'\0'</code>. Since it is far more obscure
|
||||
this way, I hope you’ll forgive me.</p>
|
||||
<p>The outline of the program is roughly as follows</p>
|
||||
<p>The outline of the program is roughly as follows (pseudo C):</p>
|
||||
<pre><code> while (more lines) {
|
||||
if (line is in morse) {
|
||||
while (more characters) {
|
||||
skip next sequence
|
||||
if (' ')
|
||||
putchar(' ');
|
||||
else
|
||||
decode_sequence; /* backwards */
|
||||
}
|
||||
} else {
|
||||
while (more characters) {
|
||||
if (isalnum)
|
||||
encode_character;
|
||||
putchar(' ');
|
||||
}
|
||||
}</code></pre>
|
||||
if (line is in morse) {
|
||||
while (more characters) {
|
||||
skip next sequence
|
||||
if (' ')
|
||||
putchar(' ');
|
||||
else
|
||||
decode_sequence; /* backwards */
|
||||
}
|
||||
} else {
|
||||
while (more characters) {
|
||||
if (isalnum)
|
||||
encode_character;
|
||||
putchar(' ');
|
||||
}
|
||||
}</code></pre>
|
||||
<p>Because of the <em>two</em> <code>while(more characters)</code> loops are the same, I’ve
|
||||
exchanged the <code>if(line is in morse)</code> and the two <code>while</code> loops (so there
|
||||
is <em>single</em> <code>while</code> loop). However, we must now store the <code>if(line is in morse)</code> test for efficiency (it would be stupid to test the entire line
|
||||
@@ -512,27 +513,48 @@ line of text. This does not disturb the <code>if (line is in morse)</code> test,
|
||||
as the temporary <code>l[0]</code> will remain <code>!= 0</code>.</p>
|
||||
<p>I’ve put the <code>if</code>s in the above layout into a single switch. Hope you don’t
|
||||
mind ;-)</p>
|
||||
<p>Summary of the use of l[999]:</p>
|
||||
<pre><code> l[0] result of "is this line in morse" test
|
||||
l[0] temporary shift during encoding
|
||||
l[0] - l[33] Morse codings (letters and digits, plus garbage)
|
||||
l[11] - l[14] strspn argument
|
||||
l[12] - l[14] strspn argument
|
||||
l[34] terminator for backward decoding
|
||||
l[35] - l[998] input line</code></pre>
|
||||
<p>Summary of the use of <code>l[999]</code>:</p>
|
||||
<ul>
|
||||
<li><code>l[0]</code>
|
||||
<ul>
|
||||
<li><strong>result of “is this line in morse” test</strong></li>
|
||||
</ul></li>
|
||||
<li><code>l[0]</code>
|
||||
<ul>
|
||||
<li><strong>temporary shift during encoding</strong></li>
|
||||
</ul></li>
|
||||
<li><code>l[0] - l[33]</code>
|
||||
<ul>
|
||||
<li><strong>Morse codings (letters and digits, plus garbage)</strong></li>
|
||||
</ul></li>
|
||||
<li><code>l[11] - l[14]</code>
|
||||
<ul>
|
||||
<li><strong><code>strspn(3)</code> argument</strong></li>
|
||||
</ul></li>
|
||||
<li><code>l[12] - l[14]</code>
|
||||
<ul>
|
||||
<li><strong><code>strspn(3)</code> argument</strong></li>
|
||||
</ul></li>
|
||||
<li><code>l[34]</code>
|
||||
<ul>
|
||||
<li><strong>terminator for backward decoding</strong></li>
|
||||
</ul></li>
|
||||
<li><code>l[35] - l[998]</code>
|
||||
<ul>
|
||||
<li><strong>input line</strong></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
<p>Selected notes:</p>
|
||||
<ul>
|
||||
<li>We don’t need to declare <code>isalnum(3)</code> (or include ctype.h) as its implicit
|
||||
declaration is correct (int argument, int result). This is not so for
|
||||
<li>We don’t need to declare <code>isalnum(3)</code> (or include <code>ctype.h</code>) as its implicit
|
||||
declaration is correct (<code>int</code> argument, <code>int</code> result). This is not so for
|
||||
<code>strlen(3)</code>, <code>strspn(3)</code>, and <code>memchr(3)</code> as they use <code>size_t</code>.</li>
|
||||
<li>During development, my gcc 2.7.2.3 had an internal compiler error (signal
|
||||
<ol start="6" type="1">
|
||||
<li>on code that was correct !</li>
|
||||
</ol></li>
|
||||
6) on code that was correct !</li>
|
||||
<li>lclint 2.4b thinks that “the observer is modified” a couple of times,
|
||||
whereas it is not. Well, it is, but there is a sequence point in between.</li>
|
||||
<li>lclint 2.4b parses line 13 as <code><error></code>, whereas it is correct code.</li>
|
||||
<li>lclint 2.4b parses <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/dorssel/dorssel.c:L13">line 13</a> as <code><error></code>, whereas it is correct code.</li>
|
||||
<li>lclint 2.4b is positive the second <code>while</code> loop is infinite, whereas it is
|
||||
not.</li>
|
||||
</ul>
|
||||
|
||||
+49
-37
@@ -53,7 +53,7 @@ counter before shifting out each symbol, such as
|
||||
We can also use the remaining bits to *include* the counter
|
||||
|
||||
```
|
||||
length 1: 00000.1x E > 00000.11
|
||||
length 1: 00000.1x `E > 00000.11
|
||||
length 2: 0000.1xx
|
||||
length 3: 000.1xxx
|
||||
length 4: 00.1xxxx Z > 00.11100
|
||||
@@ -76,11 +76,11 @@ the initializing (encoding) string awkward. Hence I came up with the
|
||||
following
|
||||
|
||||
```
|
||||
length 1: 0010010x E > 00100101 (= '%')
|
||||
length 2: 001010xx
|
||||
length 3: 00110xxx
|
||||
length 4: 0100xxxx Z > 01001100 (= 'L')
|
||||
length 5: 011xxxxx 3 > 01100111 (= 'g')
|
||||
length 1: 0010010x E > 00100101 (= '%')
|
||||
length 2: 001010xx
|
||||
length 3: 00110xxx
|
||||
length 4: 0100xxxx Z > 01001100 (= 'L')
|
||||
length 5: 011xxxxx 3 > 01100111 (= 'g')
|
||||
```
|
||||
|
||||
Notice these encodings in the initialization string. Only the coding for
|
||||
@@ -99,7 +99,7 @@ Note that the calculation for the next value of `encoding` is done at `int`
|
||||
precision, so that the actual value of the `char` remains `<= 127`.
|
||||
|
||||
The character `'-'` (ASCII 45) and `'.'` (ASCII 46) are conveniently in
|
||||
sequence, so the putchar can simply be
|
||||
sequence, so the `putchar(3)` can simply be
|
||||
|
||||
``` <!---c-->
|
||||
putchar(45 + encoding % 2);
|
||||
@@ -111,7 +111,8 @@ The assignment can be incorporated into the `while` control test, and a
|
||||
as a `while` loop with a comma operator in the test:
|
||||
|
||||
``` <!---c-->
|
||||
while(putchar(45 + encoding % 2), encoding = encoding + 32 >> 1);
|
||||
while(putchar(45 + encoding % 2),
|
||||
encoding = encoding + 32 >> 1);
|
||||
```
|
||||
|
||||
Voila.
|
||||
@@ -141,25 +142,25 @@ is a valid encoding ! We must, however, use `memchr(3)` instead of `strchr(3)`
|
||||
the decoding lookup because of this `'\0'`. Since it is far more obscure
|
||||
this way, I hope you'll forgive me.
|
||||
|
||||
The outline of the program is roughly as follows
|
||||
The outline of the program is roughly as follows (pseudo C):
|
||||
|
||||
```
|
||||
while (more lines) {
|
||||
if (line is in morse) {
|
||||
while (more characters) {
|
||||
skip next sequence
|
||||
if (' ')
|
||||
putchar(' ');
|
||||
else
|
||||
decode_sequence; /* backwards */
|
||||
}
|
||||
} else {
|
||||
while (more characters) {
|
||||
if (isalnum)
|
||||
encode_character;
|
||||
putchar(' ');
|
||||
}
|
||||
if (line is in morse) {
|
||||
while (more characters) {
|
||||
skip next sequence
|
||||
if (' ')
|
||||
putchar(' ');
|
||||
else
|
||||
decode_sequence; /* backwards */
|
||||
}
|
||||
} else {
|
||||
while (more characters) {
|
||||
if (isalnum)
|
||||
encode_character;
|
||||
putchar(' ');
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Because of the *two* `while(more characters)` loops are the same, I've
|
||||
@@ -176,30 +177,41 @@ as the temporary `l[0]` will remain `!= 0`.
|
||||
I've put the `if`s in the above layout into a single switch. Hope you don't
|
||||
mind ;-)
|
||||
|
||||
Summary of the use of l[999]:
|
||||
Summary of the use of `l[999]`:
|
||||
|
||||
```
|
||||
l[0] result of "is this line in morse" test
|
||||
l[0] temporary shift during encoding
|
||||
l[0] - l[33] Morse codings (letters and digits, plus garbage)
|
||||
l[11] - l[14] strspn argument
|
||||
l[12] - l[14] strspn argument
|
||||
l[34] terminator for backward decoding
|
||||
l[35] - l[998] input line
|
||||
```
|
||||
- `l[0]`
|
||||
* **result of "is this line in morse" test**
|
||||
|
||||
- `l[0]`
|
||||
* **temporary shift during encoding**
|
||||
|
||||
- `l[0] - l[33]`
|
||||
* **Morse codings (letters and digits, plus garbage)**
|
||||
|
||||
- `l[11] - l[14]`
|
||||
* **`strspn(3)` argument**
|
||||
|
||||
- `l[12] - l[14]`
|
||||
* **`strspn(3)` argument**
|
||||
|
||||
- `l[34]`
|
||||
* **terminator for backward decoding**
|
||||
|
||||
- `l[35] - l[998]`
|
||||
* **input line**
|
||||
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
|
||||
Selected notes:
|
||||
|
||||
- We don't need to declare `isalnum(3)` (or include ctype.h) as its implicit
|
||||
declaration is correct (int argument, int result). This is not so for
|
||||
- We don't need to declare `isalnum(3)` (or include `ctype.h`) as its implicit
|
||||
declaration is correct (`int` argument, `int` result). This is not so for
|
||||
`strlen(3)`, `strspn(3)`, and `memchr(3)` as they use `size_t`.
|
||||
- During development, my gcc 2.7.2.3 had an internal compiler error (signal
|
||||
6) on code that was correct !
|
||||
6\) on code that was correct !
|
||||
- lclint 2.4b thinks that "the observer is modified" a couple of times,
|
||||
whereas it is not. Well, it is, but there is a sequence point in between.
|
||||
- lclint 2.4b parses line 13 as `<error>`, whereas it is correct code.
|
||||
- lclint 2.4b parses [line 13](%%REPO_URL%%/1998/dorssel/dorssel.c:L13) as `<error>`, whereas it is correct code.
|
||||
- lclint 2.4b is positive the second `while` loop is infinite, whereas it is
|
||||
not.
|
||||
|
||||
|
||||
+5
-10
@@ -474,17 +474,12 @@ text that can be reversibly Morsified, i.e.</li>
|
||||
<pre><code> ./dorssel < dorssel.c | ./dorssel</code></pre>
|
||||
<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 without running the command below.</p>
|
||||
<p>If you get stuck, come back and run the following command:</p>
|
||||
just try to understand the program without running the command below.
|
||||
If you get stuck, come back and read the below.</p>
|
||||
<p>The file <a href="dorssel.html">dorssel.html</a> contains all the information needed to
|
||||
understand this program.</p>
|
||||
<p>For more information you might also try:</p>
|
||||
<pre><code> ./dorssel < dorssel.md</code></pre>
|
||||
<h3 id="notice-to-those-who-wish-for-a-greater-challenge-1">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>
|
||||
<ul>
|
||||
<li>The file <a href="dorssel.html">dorssel.html</a> contains all the information needed to
|
||||
understand this program. For spoiler information, try:</li>
|
||||
</ul>
|
||||
<!--
|
||||
|
||||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+22
-16
@@ -20,8 +20,10 @@ For more detailed information see [1998/schnitzi in bugs.html](../../bugs.html#1
|
||||
./schnitzi n > sort.c
|
||||
make sort
|
||||
./sort
|
||||
# enter three numbers, space separated
|
||||
# enter three numbers, space
|
||||
# separated
|
||||
|
||||
# then try:
|
||||
echo x y z | ./sort
|
||||
```
|
||||
|
||||
@@ -41,7 +43,8 @@ program expects? For instance try:
|
||||
./schnitzi 5 > sort.c
|
||||
make sort
|
||||
|
||||
# try running the next command four or five times:
|
||||
# now try running the next
|
||||
# command four or five times:
|
||||
echo 2 5 3 1 | ./sort
|
||||
```
|
||||
|
||||
@@ -51,33 +54,36 @@ Why does this happen?
|
||||
## Judges' remarks:
|
||||
|
||||
This is a beautiful program. How can a program with no conditional (except for
|
||||
the fixes for modern systems though still no `if`s) behavior at all have output
|
||||
which depends on anything?
|
||||
the fixes for modern systems although there are still no `if`s) behavior at all
|
||||
have output which depends on anything?
|
||||
|
||||
For hints on deciphering this, see below past the Author's remarks;
|
||||
they're a nice summary, but they leave the mystery intact.
|
||||
|
||||
BTW: the author notes an incredible lipogram story called
|
||||
BTW: the author notes an incredible
|
||||
[lipogram](https://en.wikipedia.org/wiki/Lipogram) story called
|
||||
[Gadsby](https://www.gutenberg.org/cache/epub/47342/pg47342.txt) which has no
|
||||
letter E in the story. He did not note this but it has over 50000 (50 thousand)
|
||||
(!!) words without the letter E which is one of the most common letters!
|
||||
letter `E` in the story. He did not note this but it has over `50000` (50
|
||||
thousand) (!!) words without the letter `E` which is one of the most common
|
||||
letters!
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
In literary circles, there is a poetic form called a "lipogram",
|
||||
which is a poem in which a specific letter has been distinctly
|
||||
avoided. This principle can be applied in other ways. For
|
||||
instance, in this paragraph, the vowel which immediately follows
|
||||
`t` in the alphabet is nowhere to be seen. There is even an
|
||||
entire novel (E. V. Wright's "Gadsby") in which no word contains
|
||||
the letter `e`.
|
||||
In literary circles, there is a poetic form called a
|
||||
"[lipogram](https://en.wikipedia.org/wiki/Lipogram)", which is a poem in which a
|
||||
specific letter has been distinctly avoided. This principle can be applied in
|
||||
other ways. For instance, in this paragraph, the vowel which immediately
|
||||
follows `t` in the alphabet is nowhere to be seen. There is even an entire
|
||||
novel (E. V. Wright's
|
||||
"[Gadsby](https://www.gutenberg.org/cache/epub/47342/pg47342.txt)") in which no
|
||||
word contains the letter `e`.
|
||||
|
||||
The IOCCC has been no stranger to this concept. Several winning entries from
|
||||
years past have accomplished interesting feats while completely avoiding the use
|
||||
of certain C constructs thought to be essential (e.g.,
|
||||
[1988/robison.c](%%REPO_URL%%/1988/robison/robison.c) file). If you have to ask why they would
|
||||
do it this way, then this contest just isn't for you.
|
||||
[1988/robison.c](%%REPO_URL%%/1988/robison/robison.c) file). If you have to ask
|
||||
why they would do it this way, then this contest just isn't for you.
|
||||
|
||||
In continuing with this fine tradition, this program suggests to the ANSI
|
||||
committee some new practical simplifications for the C language. For instance,
|
||||
|
||||
+22
-16
@@ -419,8 +419,10 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
|
||||
<pre><code> ./schnitzi n > sort.c
|
||||
make sort
|
||||
./sort
|
||||
# enter three numbers, space separated
|
||||
# enter three numbers, space
|
||||
# separated
|
||||
|
||||
# then try:
|
||||
echo x y z | ./sort</code></pre>
|
||||
<p>where <code>n</code> and <code>x</code>, <code>y</code> and <code>z</code> are numbers.</p>
|
||||
<h2 id="try">Try:</h2>
|
||||
@@ -430,32 +432,36 @@ program expects? For instance try:</p>
|
||||
<pre><code> ./schnitzi 5 > sort.c
|
||||
make sort
|
||||
|
||||
# try running the next command four or five times:
|
||||
# now try running the next
|
||||
# command four or five times:
|
||||
echo 2 5 3 1 | ./sort</code></pre>
|
||||
<p>Why does this happen?</p>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p>This is a beautiful program. How can a program with no conditional (except for
|
||||
the fixes for modern systems though still no <code>if</code>s) behavior at all have output
|
||||
which depends on anything?</p>
|
||||
the fixes for modern systems although there are still no <code>if</code>s) behavior at all
|
||||
have output which depends on anything?</p>
|
||||
<p>For hints on deciphering this, see below past the Author’s remarks;
|
||||
they’re a nice summary, but they leave the mystery intact.</p>
|
||||
<p>BTW: the author notes an incredible lipogram story called
|
||||
<p>BTW: the author notes an incredible
|
||||
<a href="https://en.wikipedia.org/wiki/Lipogram">lipogram</a> story called
|
||||
<a href="https://www.gutenberg.org/cache/epub/47342/pg47342.txt">Gadsby</a> which has no
|
||||
letter E in the story. He did not note this but it has over 50000 (50 thousand)
|
||||
(!!) words without the letter E which is one of the most common letters!</p>
|
||||
letter <code>E</code> in the story. He did not note this but it has over <code>50000</code> (50
|
||||
thousand) (!!) words without the letter <code>E</code> which is one of the most common
|
||||
letters!</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p>In literary circles, there is a poetic form called a “lipogram”,
|
||||
which is a poem in which a specific letter has been distinctly
|
||||
avoided. This principle can be applied in other ways. For
|
||||
instance, in this paragraph, the vowel which immediately follows
|
||||
<code>t</code> in the alphabet is nowhere to be seen. There is even an
|
||||
entire novel (E. V. Wright’s “Gadsby”) in which no word contains
|
||||
the letter <code>e</code>.</p>
|
||||
<p>In literary circles, there is a poetic form called a
|
||||
“<a href="https://en.wikipedia.org/wiki/Lipogram">lipogram</a>”, which is a poem in which a
|
||||
specific letter has been distinctly avoided. This principle can be applied in
|
||||
other ways. For instance, in this paragraph, the vowel which immediately
|
||||
follows <code>t</code> in the alphabet is nowhere to be seen. There is even an entire
|
||||
novel (E. V. Wright’s
|
||||
“<a href="https://www.gutenberg.org/cache/epub/47342/pg47342.txt">Gadsby</a>”) in which no
|
||||
word contains the letter <code>e</code>.</p>
|
||||
<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
|
||||
of certain C constructs thought to be essential (e.g.,
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/robison/robison.c">1988/robison.c</a> file). If you have to ask why they would
|
||||
do it this way, then this contest just isn’t for you.</p>
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/robison/robison.c">1988/robison.c</a> file). If you have to ask
|
||||
why they would 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
|
||||
committee some new practical simplifications for the C language. For instance,
|
||||
it appears that CONDITIONAL BRANCHING isn’t really necessary. So, we can do
|
||||
|
||||
+30
-27
@@ -5,9 +5,8 @@
|
||||
```
|
||||
|
||||
There is an alternate version of this entry that will work with macOS. See the
|
||||
[Alternate code](#alternate-code) section below. We recommend you look at it
|
||||
even if you don't have a Mac, unless you want to figure it out yourself, as it
|
||||
includes some interesting details about the entry.
|
||||
[Alternate code](#alternate-code) section below. We recommend you look at the
|
||||
code at the last, even if you don't have a Mac.
|
||||
|
||||
|
||||
## To use:
|
||||
@@ -22,9 +21,9 @@ includes some interesting details about the entry.
|
||||
As noted above this entry will not work as it stands for macOS and there are
|
||||
some important notes as well as a description of how the fixed version works
|
||||
(the details of which are relevant to the original entry that no longer works as
|
||||
well as the fixed version but are described in the context of the macOS
|
||||
well as the fixed version, but are described in the context of the macOS
|
||||
adjustments). For details of what had to change, see [macos.html](macos.html).
|
||||
Unless you wish to figure it out yourself, we recommend that you read this even
|
||||
**Unless you wish to figure it out yourself**, we recommend that you read this even
|
||||
if you don't have a Mac as it has some interesting details about the entry.
|
||||
|
||||
|
||||
@@ -66,13 +65,12 @@ crufty internationalization support.
|
||||
|
||||
#### Historical note:
|
||||
|
||||
Some non-gcc compilers that were not fully ANSI standard did not
|
||||
compile this entry correctly. Using cc by default was not helpful
|
||||
most of the time on this entry, because the program had a hardcoded
|
||||
gcc invocation anyway. Anyone who uses egcs and has no plain gcc
|
||||
will need to frob the source anyway and can be expected to do the
|
||||
right thing with `${CC}`. This limitation was removed in 2023 but in the past
|
||||
one should have used gcc.
|
||||
Some non-`gcc` compilers that were not fully ANSI standard did not compile this
|
||||
entry correctly. Using cc by default was not helpful most of the time on this
|
||||
entry, because the program had a hardcoded `gcc` invocation anyway. Anyone who
|
||||
uses egcs and has no plain `gcc` will need to frob the source anyway and can be
|
||||
expected to do the right thing with `${CC}`. This limitation was removed in 2023
|
||||
but in the past one should have used `gcc`.
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
@@ -109,12 +107,12 @@ itself. Just load it in your favorite editor.
|
||||
|
||||
`gcc` (the GNU C compiler) must be available at runtime. It is assumed that your
|
||||
C implementation keeps headers as files in the `/usr/include` directory. The
|
||||
[info](%%REPO_URL%%/1998/schweikh1/info) file must be readable and reside in the current working directory.
|
||||
The current working directory must be writable in order to create a temporary
|
||||
file (which is removed upon program termination). In case you don't have gcc at
|
||||
runtime, not all is lost if your compiler or preprocessor can produce a list of
|
||||
defined macros in the format output by `gcc -dM`, i.e. lines of the form
|
||||
`#define MACRO value`.
|
||||
[info](%%REPO_URL%%/1998/schweikh1/info) file must be readable and reside in the
|
||||
current working directory. The current working directory must be writable in
|
||||
order to create a temporary file (which is removed upon program termination). In
|
||||
case you don't have gcc at runtime, not all is lost if your compiler or
|
||||
preprocessor can produce a list of defined macros in the format output by `gcc
|
||||
-dM`, i.e. lines of the form `#define MACRO value`.
|
||||
|
||||
Edit the source at line 55 in this case.
|
||||
|
||||
@@ -143,6 +141,12 @@ programs that may fail to compile due to syntax errors: supposing that
|
||||
is expected to compile and meet the assertion. If it does not, your
|
||||
compiler compiles some other language than ISO C.
|
||||
|
||||
### 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.
|
||||
|
||||
### Why I think my program is obfuscated
|
||||
|
||||
@@ -271,17 +275,16 @@ To use, try:
|
||||
```
|
||||
|
||||
|
||||
I have tried, as suggested in the guidelines, to let the code look
|
||||
like ordinary C code. Apart from a few long lines I think I left
|
||||
the indentation like I would in RL. You should however not try to
|
||||
use `indent` on the source. The code is extremely fragile because of the
|
||||
myriads of `__LINE__` macros -- indenting is a sure way to break
|
||||
the program. Don't even think of maintaining that beast; I've
|
||||
had my share of core dumps during development :-) A test suite
|
||||
was used after every minor change to find out if the program still
|
||||
I have tried, as suggested in the [guidelines](../guidelines.txt), to let the
|
||||
code look like ordinary C code. Apart from a few long lines I think I left the
|
||||
indentation like I would in RL. You should however not try to use `indent` on
|
||||
the source. The code is extremely fragile because of the myriads of `__LINE__`
|
||||
macros -- indenting is a sure way to break the program. Don't even think of
|
||||
maintaining that beast; I've had my share of core dumps during development :-) A
|
||||
test suite was used after every minor change to find out if the program still
|
||||
does what it should.
|
||||
|
||||
From the goals: "To stress C compilers with unusual code."
|
||||
From the goals: "`To stress C compilers with unusual code.`"
|
||||
That describes exactly my modest attempts...
|
||||
|
||||
|
||||
|
||||
+27
-27
@@ -410,18 +410,17 @@ Location: <a href="../../location.html#DE">DE</a> - <em>Federal Republic of Germ
|
||||
<h2 id="to-build">To build:</h2>
|
||||
<pre><code> make all</code></pre>
|
||||
<p>There is an alternate version of this entry that will work with macOS. See the
|
||||
<a href="#alternate-code">Alternate code</a> section below. We recommend you look at it
|
||||
even if you don’t have a Mac, unless you want to figure it out yourself, as it
|
||||
includes some interesting details about the entry.</p>
|
||||
<a href="#alternate-code">Alternate code</a> section below. We recommend you look at the
|
||||
code at the last, even if you don’t have a Mac.</p>
|
||||
<h2 id="to-use">To use:</h2>
|
||||
<pre><code> ./schweikh1</code></pre>
|
||||
<h2 id="alternate-code">Alternate code:</h2>
|
||||
<p>As noted above this entry will not work as it stands for macOS and there are
|
||||
some important notes as well as a description of how the fixed version works
|
||||
(the details of which are relevant to the original entry that no longer works as
|
||||
well as the fixed version but are described in the context of the macOS
|
||||
well as the fixed version, but are described in the context of the macOS
|
||||
adjustments). For details of what had to change, see <a href="macos.html">macos.html</a>.
|
||||
Unless you wish to figure it out yourself, we recommend that you read this even
|
||||
<strong>Unless you wish to figure it out yourself</strong>, we recommend that you read this even
|
||||
if you don’t have a Mac as it has some interesting details about the entry.</p>
|
||||
<h3 id="alternate-build">Alternate build:</h3>
|
||||
<pre><code> make alt</code></pre>
|
||||
@@ -444,13 +443,12 @@ Do not read them if you want to figure this out yourself. “Amendment
|
||||
One” refers to “NA1”, the add-on to C89 which added some fairly
|
||||
crufty internationalization support.</p>
|
||||
<h4 id="historical-note">Historical note:</h4>
|
||||
<p>Some non-gcc compilers that were not fully ANSI standard did not
|
||||
compile this entry correctly. Using cc by default was not helpful
|
||||
most of the time on this entry, because the program had a hardcoded
|
||||
gcc invocation anyway. Anyone who uses egcs and has no plain gcc
|
||||
will need to frob the source anyway and can be expected to do the
|
||||
right thing with <code>${CC}</code>. This limitation was removed in 2023 but in the past
|
||||
one should have used gcc.</p>
|
||||
<p>Some non-<code>gcc</code> compilers that were not fully ANSI standard did not compile this
|
||||
entry correctly. Using cc by default was not helpful most of the time on this
|
||||
entry, because the program had a hardcoded <code>gcc</code> invocation anyway. Anyone who
|
||||
uses egcs and has no plain <code>gcc</code> will need to frob the source anyway and can be
|
||||
expected to do the right thing with <code>${CC}</code>. This limitation was removed in 2023
|
||||
but in the past one should have used <code>gcc</code>.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p>Important! This program, if it compiles at all, is mis-compiled by many
|
||||
compilers due to compiler bugs. It could be the “least likely
|
||||
@@ -474,12 +472,11 @@ itself. Just load it in your favorite editor.</p>
|
||||
<h3 id="requirements">Requirements</h3>
|
||||
<p><code>gcc</code> (the GNU C compiler) must be available at runtime. It is assumed that your
|
||||
C implementation keeps headers as files in the <code>/usr/include</code> directory. The
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh1/info">info</a> file must be readable and reside in the current working directory.
|
||||
The current working directory must be writable in order to create a temporary
|
||||
file (which is removed upon program termination). In case you don’t have gcc at
|
||||
runtime, not all is lost if your compiler or preprocessor can produce a list of
|
||||
defined macros in the format output by <code>gcc -dM</code>, i.e. lines of the form
|
||||
<code>#define MACRO value</code>.</p>
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh1/info">info</a> file must be readable and reside in the
|
||||
current working directory. The current working directory must be writable in
|
||||
order to create a temporary file (which is removed upon program termination). In
|
||||
case you don’t have gcc at runtime, not all is lost if your compiler or
|
||||
preprocessor can produce a list of defined macros in the format output by <code>gcc -dM</code>, i.e. lines of the form <code>#define MACRO value</code>.</p>
|
||||
<p>Edit the source at line 55 in this case.</p>
|
||||
<h3 id="background">Background</h3>
|
||||
<p>ISO C has a very strict idea of visibility of identifiers. All possible
|
||||
@@ -500,6 +497,10 @@ programs that may fail to compile due to syntax errors: supposing that
|
||||
}</code></pre>
|
||||
<p>is expected to compile and meet the assertion. If it does not, your
|
||||
compiler compiles some other language than ISO C.</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="why-i-think-my-program-is-obfuscated">Why I think my program is obfuscated</h3>
|
||||
<p>Not only is the program’s purpose a thorough standard conformance
|
||||
test, the source itself is a beast and has uncovered bugs in many
|
||||
@@ -590,16 +591,15 @@ The advantages of an independent clean room approach…</p>
|
||||
print length ($_),"\n";</code></pre>
|
||||
<p>To use, try:</p>
|
||||
<pre><code> perl ./charcount.pl schweikh1.c</code></pre>
|
||||
<p>I have tried, as suggested in the guidelines, to let the code look
|
||||
like ordinary C code. Apart from a few long lines I think I left
|
||||
the indentation like I would in RL. You should however not try to
|
||||
use <code>indent</code> on the source. The code is extremely fragile because of the
|
||||
myriads of <code>__LINE__</code> macros – indenting is a sure way to break
|
||||
the program. Don’t even think of maintaining that beast; I’ve
|
||||
had my share of core dumps during development :-) A test suite
|
||||
was used after every minor change to find out if the program still
|
||||
<p>I have tried, as suggested in the <a href="../guidelines.txt">guidelines</a>, to let the
|
||||
code look like ordinary C code. Apart from a few long lines I think I left the
|
||||
indentation like I would in RL. You should however not try to use <code>indent</code> on
|
||||
the source. The code is extremely fragile because of the myriads of <code>__LINE__</code>
|
||||
macros – indenting is a sure way to break the program. Don’t even think of
|
||||
maintaining that beast; I’ve had my share of core dumps during development :-) A
|
||||
test suite was used after every minor change to find out if the program still
|
||||
does what it should.</p>
|
||||
<p>From the goals: “To stress C compilers with unusual code.”
|
||||
<p>From the goals: “<code>To stress C compilers with unusual code.</code>”
|
||||
That describes exactly my modest attempts…</p>
|
||||
<!--
|
||||
|
||||
|
||||
@@ -389,11 +389,18 @@
|
||||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||||
|
||||
<!-- BEFORE: 1st line of markdown file: 1998/schweikh1/macos.md -->
|
||||
<h1 id="introduction-to-this-document">Introduction to this document:</h1>
|
||||
<p>This document describes how this was fixed to work with macOS as well as some of
|
||||
the magic in the entry. Even if you don’t have a Mac it might be worth your time
|
||||
reading especially as some of it details some important fixes and changes in the
|
||||
original entry as well.</p>
|
||||
<h1 id="macos-changes">macOS changes</h1>
|
||||
<h2 id="notice-to-those-who-wish-for-a-greater-challenge">NOTICE to those who wish for a greater challenge:</h2>
|
||||
<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.
|
||||
Of course, if you do not have a Mac the code might make less sense, so you might
|
||||
just wish to read this in that case, should you wish to understand it.</p>
|
||||
<h1 id="macos-aside">macOS aside:</h1>
|
||||
<p>As an aside: if you have a Mac with the Apple chip, some of the header files
|
||||
will report an unsupported architecture and unsupported compiler (error,
|
||||
warning). This will not make the program abort, however, but even with an Intel
|
||||
@@ -401,20 +408,26 @@ CPU though, the original entry will not work in macOS as it stands because
|
||||
<code>/usr/include</code> is hard-coded in the code and macOS does not have it.</p>
|
||||
<p>Nevertheless, although some of it would not work in other systems where
|
||||
<code>/usr/include</code> exists, the <code>#define</code>s would still be found okay, at least until
|
||||
a file was not found (this limitation was removed in both versions in 2023). see</p>
|
||||
a file was not found (this limitation was removed in both versions in 2023).</p>
|
||||
<p>However, as noted, macOS does <strong>not</strong> have <code>/usr/include</code> so this would never
|
||||
work for macOS without some changes, described next. For macOS you will need the
|
||||
command line tools installed which can be done like:</p>
|
||||
<pre><code> sudo xcode-select --install</code></pre>
|
||||
<h1 id="important-point-about-the-hard-coded-compiler">Important point about the hard-coded compiler:</h1>
|
||||
<p>An important point is that the original version hard-coded <code>gcc</code> but just like
|
||||
the entry, the alternate version has also removed this limitation despite <code>gcc</code>
|
||||
existing (though it’s <code>clang</code>) in macOS.</p>
|
||||
existing (though it’s <code>clang</code>) in macOS; instead it is <code>cc</code>.</p>
|
||||
<h1 id="how-this-entry-works-the-magic">How this entry works (the magic):</h1>
|
||||
<p>Now as far as how this works if you look at the code of
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh1/schweikh1.c">schweikh1.c</a>, on line 55 you’ll see a funny command (this goes for
|
||||
the alternate version as well but a bit different).</p>
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh1/schweikh1.c">schweikh1.c</a>, on <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh1/schweikh1.c#L55">line
|
||||
55</a> you’ll see a funny command
|
||||
(this goes for the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh1/schweikh1.alt.c">alternate
|
||||
version</a>, also on <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh1/schweikh1.c#L55">line
|
||||
55</a>, but the command is necessarily
|
||||
different).</p>
|
||||
<p>Now the key is two magic numbers, one (two times) on a different line shortly below the
|
||||
string and the other a couple lines further below.</p>
|
||||
<p>In the original the numbers are, respectively, <code>44</code> and <code>46</code>, but with the gcc
|
||||
<p>In the original the numbers are, respectively, <code>44</code> and <code>46</code>, but with the <code>gcc</code>
|
||||
limitation removed the numbers now are <code>43</code> and <code>45</code>. But how does this work? Well
|
||||
the command is:</p>
|
||||
<pre><code> "0gcc -ansi -E -dM -undef %s /usr/include/%s>r\0 ("</code></pre>
|
||||
|
||||
+25
-6
@@ -1,9 +1,20 @@
|
||||
# Introduction to this document:
|
||||
|
||||
This document describes how this was fixed to work with macOS as well as some of
|
||||
the magic in the entry. Even if you don't have a Mac it might be worth your time
|
||||
reading especially as some of it details some important fixes and changes in the
|
||||
original entry as well.
|
||||
|
||||
# macOS changes
|
||||
## 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.
|
||||
Of course, if you do not have a Mac the code might make less sense, so you might
|
||||
just wish to read this in that case, should you wish to understand it.
|
||||
|
||||
# macOS aside:
|
||||
|
||||
As an aside: if you have a Mac with the Apple chip, some of the header files
|
||||
will report an unsupported architecture and unsupported compiler (error,
|
||||
@@ -13,7 +24,7 @@ CPU though, the original entry will not work in macOS as it stands because
|
||||
|
||||
Nevertheless, although some of it would not work in other systems where
|
||||
`/usr/include` exists, the `#define`s would still be found okay, at least until
|
||||
a file was not found (this limitation was removed in both versions in 2023). see
|
||||
a file was not found (this limitation was removed in both versions in 2023).
|
||||
|
||||
However, as noted, macOS does **not** have `/usr/include` so this would never
|
||||
work for macOS without some changes, described next. For macOS you will need the
|
||||
@@ -23,18 +34,26 @@ command line tools installed which can be done like:
|
||||
sudo xcode-select --install
|
||||
```
|
||||
|
||||
# Important point about the hard-coded compiler:
|
||||
|
||||
An important point is that the original version hard-coded `gcc` but just like
|
||||
the entry, the alternate version has also removed this limitation despite `gcc`
|
||||
existing (though it's `clang`) in macOS.
|
||||
existing (though it's `clang`) in macOS; instead it is `cc`.
|
||||
|
||||
# How this entry works (the magic):
|
||||
|
||||
Now as far as how this works if you look at the code of
|
||||
[schweikh1.c](%%REPO_URL%%/1998/schweikh1/schweikh1.c), on line 55 you'll see a funny command (this goes for
|
||||
the alternate version as well but a bit different).
|
||||
[schweikh1.c](%%REPO_URL%%/1998/schweikh1/schweikh1.c), on [line
|
||||
55](%%REPO_URL%%/1998/schweikh1/schweikh1.c#L55) you'll see a funny command
|
||||
(this goes for the [alternate
|
||||
version](%%REPO_URL%%/1998/schweikh1/schweikh1.alt.c), also on [line
|
||||
55](%%REPO_URL%%/1998/schweikh1/schweikh1.c#L55), but the command is necessarily
|
||||
different).
|
||||
|
||||
Now the key is two magic numbers, one (two times) on a different line shortly below the
|
||||
string and the other a couple lines further below.
|
||||
|
||||
In the original the numbers are, respectively, `44` and `46`, but with the gcc
|
||||
In the original the numbers are, respectively, `44` and `46`, but with the `gcc`
|
||||
limitation removed the numbers now are `43` and `45`. But how does this work? Well
|
||||
the command is:
|
||||
|
||||
|
||||
@@ -137,6 +137,14 @@ and now it works with both clang and gcc.
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
### 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.
|
||||
|
||||
|
||||
### What this program does
|
||||
|
||||
My entry is a `yarng`, which stands for, you guessed it, yet another
|
||||
@@ -167,7 +175,7 @@ For example:
|
||||
|
||||
### Why I think this is obfuscated
|
||||
|
||||
- Ever seen a 'do for ... while' loop?
|
||||
- Ever seen a `do for ... while` loop?
|
||||
|
||||
- I avoided `int` like the plague. Instead I used storage class specifiers
|
||||
(`register`, `auto`) to get implicit `int`. The Standard allows implicit `int` even in
|
||||
|
||||
@@ -472,6 +472,10 @@ compiler error:</p>
|
||||
<pre><code> #line 10 ONE(O(1,1,2,6,0,6))</code></pre>
|
||||
<p>and now it works with both clang and gcc.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<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="what-this-program-does">What this program does</h3>
|
||||
<p>My entry is a <code>yarng</code>, which stands for, you guessed it, yet another
|
||||
random number generator, and is pronounced ‘yawn’ due to its
|
||||
@@ -496,7 +500,7 @@ different values? How long would you need for an empirical test?</p>
|
||||
10011</code></pre>
|
||||
<h3 id="why-i-think-this-is-obfuscated">Why I think this is obfuscated</h3>
|
||||
<ul>
|
||||
<li><p>Ever seen a ‘do for … while’ loop?</p></li>
|
||||
<li><p>Ever seen a <code>do for ... while</code> loop?</p></li>
|
||||
<li><p>I avoided <code>int</code> like the plague. Instead I used storage class specifiers
|
||||
(<code>register</code>, <code>auto</code>) to get implicit <code>int</code>. The Standard allows implicit <code>int</code> even in
|
||||
casts as you can see in <code>(void(*)(register))main</code>. Where implicit <code>int</code> is
|
||||
|
||||
+17
-10
@@ -6,14 +6,12 @@
|
||||
|
||||
The author stated:
|
||||
|
||||
```
|
||||
In the remote event that the input has more than `8192` files with
|
||||
the same size (on systems where `sizeof (char *) == 4`, or `4096` when
|
||||
`sizeof (char *) == 8`), increase the manifest constant 32767 on line
|
||||
31.
|
||||
```
|
||||
> In the remote event that the input has more than `8192` files with the same
|
||||
size (on systems where `sizeof (char *) == 4`, or `4096` when `sizeof (char *)
|
||||
== 8`), increase the manifest constant 32767 on [line
|
||||
31](%%REPO_URL%%/1998/schweikh3/schweikh3.c#L31).
|
||||
|
||||
An alternate version allows one to fix this; see [alternate
|
||||
An alternate version allows one to fix this; see [Alternate
|
||||
code](#alternate-code) below.
|
||||
|
||||
|
||||
@@ -78,10 +76,11 @@ The source is expected to conform to IEEE Std 1003.1-1990 ("POSIX").
|
||||
Thank God the IEEE does not standardize a coding style...
|
||||
|
||||
|
||||
### What this program does
|
||||
### What this program does
|
||||
|
||||
This is best explained in the man page. The troff source for this
|
||||
man page can be found in the file [samefile.1](%%REPO_URL%%/1998/schweikh3/samefile.1). To render try:
|
||||
This is best explained in the man page. The troff source for this man page can
|
||||
be found in the file [samefile.1](%%REPO_URL%%/1998/schweikh3/samefile.1). To
|
||||
render try:
|
||||
|
||||
``` <!---sh-->
|
||||
`man ./samefile.1
|
||||
@@ -207,6 +206,14 @@ otherwise.
|
||||
`find(1)`, `ln(1)`, `rm(1)`
|
||||
|
||||
|
||||
### 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.
|
||||
|
||||
|
||||
### Why I think it is obfuscated
|
||||
|
||||
- The code is commented but this gives only an *extremely* faint clue.
|
||||
|
||||
@@ -410,11 +410,12 @@ Location: <a href="../../location.html#DE">DE</a> - <em>Federal Republic of Germ
|
||||
<h2 id="to-build">To build:</h2>
|
||||
<pre><code> make all</code></pre>
|
||||
<p>The author stated:</p>
|
||||
<pre><code> In the remote event that the input has more than `8192` files with
|
||||
the same size (on systems where `sizeof (char *) == 4`, or `4096` when
|
||||
`sizeof (char *) == 8`), increase the manifest constant 32767 on line
|
||||
31.</code></pre>
|
||||
<p>An alternate version allows one to fix this; see <a href="#alternate-code">alternate
|
||||
<blockquote>
|
||||
<p>In the remote event that the input has more than <code>8192</code> files with the same
|
||||
size (on systems where <code>sizeof (char *) == 4</code>, or <code>4096</code> when <code>sizeof (char *) == 8</code>), increase the manifest constant 32767 on <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/schweikh3.c#L31">line
|
||||
31</a>.</p>
|
||||
</blockquote>
|
||||
<p>An alternate version allows one to fix this; see <a href="#alternate-code">Alternate
|
||||
code</a> below.</p>
|
||||
<h2 id="to-use">To use:</h2>
|
||||
<p>If <code>dir</code> is the directory (or a directory tree) where you keep
|
||||
@@ -446,8 +447,9 @@ the tool as well at <a href="http://www.schweikhardt.net/samefile" class="uri">h
|
||||
<p>The source is expected to conform to IEEE Std 1003.1-1990 (“POSIX”).
|
||||
Thank God the IEEE does not standardize a coding style…</p>
|
||||
<h3 id="what-this-program-does">What this program does</h3>
|
||||
<p>This is best explained in the man page. The troff source for this
|
||||
man page can be found in the file <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/samefile.1">samefile.1</a>. To render try:</p>
|
||||
<p>This is best explained in the man page. The troff source for this man page can
|
||||
be found in the file <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schweikh3/samefile.1">samefile.1</a>. To
|
||||
render try:</p>
|
||||
<pre><code> `man ./samefile.1</code></pre>
|
||||
<p>Otherwise:</p>
|
||||
<h3 id="samefile1-user-manuals-samefile1">SAMEFILE(1) User Manuals SAMEFILE(1)</h3>
|
||||
@@ -524,6 +526,10 @@ How much space is wasted below our site’s /pub directory?</p>
|
||||
otherwise.</p>
|
||||
<h4 id="see-also">SEE ALSO</h4>
|
||||
<p><code>find(1)</code>, <code>ln(1)</code>, <code>rm(1)</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="why-i-think-it-is-obfuscated">Why I think it is obfuscated</h3>
|
||||
<ul>
|
||||
<li>The code is commented but this gives only an <em>extremely</em> faint clue.</li>
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
.\"
|
||||
.\" To format this file into a text file say
|
||||
.\"
|
||||
.\" nroff -man samefile.1 or
|
||||
.\" nroff -man samefile.1
|
||||
.\"
|
||||
.\" or
|
||||
.\"
|
||||
.\" groff -man -Tascii samefile.1
|
||||
.\"
|
||||
.TH SAMEFILE 1 "OCTOBER 1997" IOCCC "User Manuals"
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
.\"
|
||||
.\" To format this file into a text file say
|
||||
.\"
|
||||
.\" nroff -man samefile.1 or
|
||||
.\" nroff -man samefile.1
|
||||
.\"
|
||||
.\" or
|
||||
.\"
|
||||
.\" groff -man -Tascii samefile.1
|
||||
.\"
|
||||
.TH SAMEFILE 1 "OCTOBER 1997" IOCCC "User Manuals"
|
||||
|
||||
+57
-33
@@ -13,14 +13,18 @@
|
||||
|
||||
where:
|
||||
|
||||
```
|
||||
filename : file to calculate the CRC of
|
||||
bitwidth : width of the CRC in bits (decimal)
|
||||
polynom : polynomial used for the CRC (hexadecimal)
|
||||
reflected : 0 if the CRC is not reflected, 1 if it is
|
||||
init : initial value for the CRC (hexadecimal)
|
||||
xor : value to xor the final CRC with (hexadecimal)
|
||||
```
|
||||
- `filename`
|
||||
* file to calculate the CRC of
|
||||
- `bitwidth`
|
||||
* width of the CRC in bits (decimal)
|
||||
- `polynom`
|
||||
* polynomial used for the CRC (hexadecimal)
|
||||
- `reflected`
|
||||
* 0 if the CRC is not reflected, 1 if it is
|
||||
- `init`
|
||||
* initial value for the CRC (hexadecimal)
|
||||
- `xor`
|
||||
* value to xor the final CRC with (hexadecimal)
|
||||
|
||||
|
||||
## Try:
|
||||
@@ -39,18 +43,28 @@ archiver that uses the CRC-32 algorithm.
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
```
|
||||
Usage:
|
||||
./tomtorfs filename bitwidth polynom reflected init xor
|
||||
Usage:
|
||||
|
||||
filename : file to calculate the CRC of
|
||||
bitwidth : width of the CRC in bits (decimal)
|
||||
polynom : polynomial used for the CRC (hexadecimal)
|
||||
reflected : 0 if the CRC is not reflected, 1 if it is
|
||||
init : initial value for the CRC (hexadecimal)
|
||||
xor : value to xor the final CRC with (hexadecimal)
|
||||
``` <!---sh-->
|
||||
./tomtorfs filename bitwidth polynom reflected init xor
|
||||
```
|
||||
|
||||
where:
|
||||
|
||||
- `filename`
|
||||
* file to calculate the CRC of
|
||||
- `bitwidth`
|
||||
* width of the CRC in bits (decimal)
|
||||
- `polynom`
|
||||
* polynomial used for the CRC (hexadecimal)
|
||||
- `reflected`
|
||||
* 0 if the CRC is not reflected, 1 if it is
|
||||
- `init`
|
||||
* initial value for the CRC (hexadecimal)
|
||||
- `xor`
|
||||
* value to xor the final CRC with (hexadecimal)
|
||||
|
||||
|
||||
### Examples
|
||||
|
||||
|
||||
@@ -116,24 +130,34 @@ readable.
|
||||
The variable names are not very descriptive. They have the
|
||||
following meanings:
|
||||
|
||||
```
|
||||
a = argc
|
||||
A = argv
|
||||
- `a`
|
||||
* argc
|
||||
- `A`
|
||||
* argv
|
||||
- `b`
|
||||
* array of `unsigned long` variables:
|
||||
- `b[0]`
|
||||
* bit-width of the CRC (`argv[2]`)
|
||||
* `b[1]`
|
||||
- CRC polynomial (`argv[3]`)
|
||||
* `b[2]`
|
||||
- nonzero if CRC is reflected (argv[4])
|
||||
* `b[3]`
|
||||
- initial value of CRC (argv[5])
|
||||
* `b[4]`
|
||||
- value final CRC is XORed with (argv[6])
|
||||
* `b[5]`
|
||||
- CRC value
|
||||
* `b[6]`
|
||||
- byte from file
|
||||
* `b[7]`
|
||||
- counter
|
||||
|
||||
b = array of unsigned long variables
|
||||
b[0] = bit-width of the CRC (argv[2])
|
||||
b[1] = CRC polynomial (argv[3])
|
||||
b[2] = nonzero if CRC is reflected (argv[4])
|
||||
b[3] = initial value of CRC (argv[5])
|
||||
b[4] = value final CRC is XORed with (argv[6])
|
||||
b[5] = CRC value
|
||||
b[6] = byte from file
|
||||
b[7] = counter
|
||||
- `B`
|
||||
* `FILE *` through which the file `argv[1]` is opened
|
||||
|
||||
B = FILE * through which the file argv[1] is opened
|
||||
|
||||
C = typedef for unsigned long
|
||||
```
|
||||
- `C`
|
||||
- `typedef` for `unsigned long`
|
||||
|
||||
The first `for` loop simply reads the command-line arguments
|
||||
in the `b[]` array. The third parameter to `strtoul(3)` causes
|
||||
|
||||
+109
-31
@@ -412,12 +412,32 @@ Location: <a href="../../location.html#BE">BE</a> - <em>Kingdom of Belgium</em>
|
||||
<h2 id="to-use">To use:</h2>
|
||||
<pre><code> ./tomtorfs filename bitwidth polynom reflected init xor</code></pre>
|
||||
<p>where:</p>
|
||||
<pre><code> filename : file to calculate the CRC of
|
||||
bitwidth : width of the CRC in bits (decimal)
|
||||
polynom : polynomial used for the CRC (hexadecimal)
|
||||
reflected : 0 if the CRC is not reflected, 1 if it is
|
||||
init : initial value for the CRC (hexadecimal)
|
||||
xor : value to xor the final CRC with (hexadecimal)</code></pre>
|
||||
<ul>
|
||||
<li><code>filename</code>
|
||||
<ul>
|
||||
<li>file to calculate the CRC of</li>
|
||||
</ul></li>
|
||||
<li><code>bitwidth</code>
|
||||
<ul>
|
||||
<li>width of the CRC in bits (decimal)</li>
|
||||
</ul></li>
|
||||
<li><code>polynom</code>
|
||||
<ul>
|
||||
<li>polynomial used for the CRC (hexadecimal)</li>
|
||||
</ul></li>
|
||||
<li><code>reflected</code>
|
||||
<ul>
|
||||
<li>0 if the CRC is not reflected, 1 if it is</li>
|
||||
</ul></li>
|
||||
<li><code>init</code>
|
||||
<ul>
|
||||
<li>initial value for the CRC (hexadecimal)</li>
|
||||
</ul></li>
|
||||
<li><code>xor</code>
|
||||
<ul>
|
||||
<li>value to xor the final CRC with (hexadecimal)</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="try">Try:</h2>
|
||||
<pre><code> ./try.sh</code></pre>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
@@ -425,15 +445,35 @@ Location: <a href="../../location.html#BE">BE</a> - <em>Kingdom of Belgium</em>
|
||||
of the program with the value of CRCs computed by PKZIP or any other
|
||||
archiver that uses the CRC-32 algorithm.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<pre><code> Usage:
|
||||
./tomtorfs filename bitwidth polynom reflected init xor
|
||||
|
||||
filename : file to calculate the CRC of
|
||||
bitwidth : width of the CRC in bits (decimal)
|
||||
polynom : polynomial used for the CRC (hexadecimal)
|
||||
reflected : 0 if the CRC is not reflected, 1 if it is
|
||||
init : initial value for the CRC (hexadecimal)
|
||||
xor : value to xor the final CRC with (hexadecimal)</code></pre>
|
||||
<p>Usage:</p>
|
||||
<pre><code> ./tomtorfs filename bitwidth polynom reflected init xor</code></pre>
|
||||
<p>where:</p>
|
||||
<ul>
|
||||
<li><code>filename</code>
|
||||
<ul>
|
||||
<li>file to calculate the CRC of</li>
|
||||
</ul></li>
|
||||
<li><code>bitwidth</code>
|
||||
<ul>
|
||||
<li>width of the CRC in bits (decimal)</li>
|
||||
</ul></li>
|
||||
<li><code>polynom</code>
|
||||
<ul>
|
||||
<li>polynomial used for the CRC (hexadecimal)</li>
|
||||
</ul></li>
|
||||
<li><code>reflected</code>
|
||||
<ul>
|
||||
<li>0 if the CRC is not reflected, 1 if it is</li>
|
||||
</ul></li>
|
||||
<li><code>init</code>
|
||||
<ul>
|
||||
<li>initial value for the CRC (hexadecimal)</li>
|
||||
</ul></li>
|
||||
<li><code>xor</code>
|
||||
<ul>
|
||||
<li>value to xor the final CRC with (hexadecimal)</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h3 id="examples">Examples</h3>
|
||||
<h4 id="crc-16">CRC-16:</h4>
|
||||
<pre><code> ./tomtorfs filename 16 1021 0 FFFF 0000</code></pre>
|
||||
@@ -461,22 +501,60 @@ the nice code shape I worked so hard on ;-) ) the code will become a bit more
|
||||
readable.</p>
|
||||
<p>The variable names are not very descriptive. They have the
|
||||
following meanings:</p>
|
||||
<pre><code> a = argc
|
||||
A = argv
|
||||
|
||||
b = array of unsigned long variables
|
||||
b[0] = bit-width of the CRC (argv[2])
|
||||
b[1] = CRC polynomial (argv[3])
|
||||
b[2] = nonzero if CRC is reflected (argv[4])
|
||||
b[3] = initial value of CRC (argv[5])
|
||||
b[4] = value final CRC is XORed with (argv[6])
|
||||
b[5] = CRC value
|
||||
b[6] = byte from file
|
||||
b[7] = counter
|
||||
|
||||
B = FILE * through which the file argv[1] is opened
|
||||
|
||||
C = typedef for unsigned long</code></pre>
|
||||
<ul>
|
||||
<li><code>a</code>
|
||||
<ul>
|
||||
<li>argc</li>
|
||||
</ul></li>
|
||||
<li><code>A</code>
|
||||
<ul>
|
||||
<li>argv</li>
|
||||
</ul></li>
|
||||
<li><code>b</code>
|
||||
<ul>
|
||||
<li>array of <code>unsigned long</code> variables:</li>
|
||||
<li><code>b[0]</code>
|
||||
<ul>
|
||||
<li>bit-width of the CRC (<code>argv[2]</code>)</li>
|
||||
</ul></li>
|
||||
<li><code>b[1]</code>
|
||||
<ul>
|
||||
<li>CRC polynomial (<code>argv[3]</code>)</li>
|
||||
</ul></li>
|
||||
<li><code>b[2]</code>
|
||||
<ul>
|
||||
<li>nonzero if CRC is reflected (argv[4])</li>
|
||||
</ul></li>
|
||||
<li><code>b[3]</code>
|
||||
<ul>
|
||||
<li>initial value of CRC (argv[5])</li>
|
||||
</ul></li>
|
||||
<li><code>b[4]</code>
|
||||
<ul>
|
||||
<li>value final CRC is XORed with (argv[6])</li>
|
||||
</ul></li>
|
||||
<li><code>b[5]</code>
|
||||
<ul>
|
||||
<li>CRC value</li>
|
||||
</ul></li>
|
||||
<li><code>b[6]</code>
|
||||
<ul>
|
||||
<li>byte from file</li>
|
||||
</ul></li>
|
||||
<li><code>b[7]</code>
|
||||
<ul>
|
||||
<li>counter</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li><code>B</code>
|
||||
<ul>
|
||||
<li><code>FILE *</code> through which the file <code>argv[1]</code> is opened</li>
|
||||
</ul></li>
|
||||
<li><code>C</code>
|
||||
<ul>
|
||||
<li><code>typedef</code> for <code>unsigned long</code></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<p>The first <code>for</code> loop simply reads the command-line arguments
|
||||
in the <code>b[]</code> array. The third parameter to <code>strtoul(3)</code> causes
|
||||
all arguments to be in base-16 (hex) except the first one,
|
||||
|
||||
@@ -1632,6 +1632,34 @@ We greatly appreciate your help here!</p>
|
||||
<h1 id="section-14">1998</h1>
|
||||
</div>
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
<div id="1998_chaos">
|
||||
<h2 id="chaos">1998/chaos</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-30">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1998chaoschaos.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/chaos/chaos.c">1998/chaos/chaos.c</a></h3>
|
||||
<h3 id="information-1998chaosindex.html">Information: <a href="1998/chaos/index.html">1998/chaos/index.html</a></h3>
|
||||
<p>The author stated the following:</p>
|
||||
<blockquote>
|
||||
<p>Memory <code>malloc(3)</code>ed is never freed. This shouldn’t be a big deal, since only
|
||||
one block is ever allocated, and the OS should recover it.</p>
|
||||
<p>My local flavor of lint doesn’t seem to like the fact that I never <code>return</code>
|
||||
from <code>main()</code>. Feh, what does it know? Otherwise, ignoring lint’s over
|
||||
protectiveness (“Of course I’m not using all of the functions defined in
|
||||
<code>curses.h</code>!”), it’s lint clean.</p>
|
||||
<p>If the compiler happens to generate the byte sequence “AlWuzEre” in the
|
||||
executable by chance, the program may be unable to locate the embedded string.
|
||||
As a result, running the program without an external data file may act in
|
||||
undefined ways.
|
||||
If the compiler doesn’t store <code>char * P</code>’s data in a nice contiguous stream,
|
||||
it would be bad. As above, it would break running the program without an
|
||||
external data file.</p>
|
||||
<p>If the incoming data is corrupt, the results are undefined. (Although dumping
|
||||
core is a popular result.)</p>
|
||||
<p>When a point passes behind the camera, it is still plotted. The object will
|
||||
“bounce” off the camera, but the result (some points in front, some reflected
|
||||
from the rear) looks really odd. And it sometimes hangs. So just don’t fly
|
||||
through objects. You’ll be happier.</p>
|
||||
</blockquote>
|
||||
<div id="1998_dlowe">
|
||||
<h2 id="dlowe">1998/dlowe</h2>
|
||||
</div>
|
||||
@@ -1659,7 +1687,7 @@ IOCCC fame for reviving a pootifier! :-)</p>
|
||||
<div id="1998_schnitzi">
|
||||
<h2 id="schnitzi-2">1998/schnitzi</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-30">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-31">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1998schnitzischnitzi.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1998/schnitzi/schnitzi.c">1998/schnitzi/schnitzi.c</a></h3>
|
||||
<h3 id="information-1998schnitziindex.html">Information: <a href="1998/schnitzi/index.html">1998/schnitzi/index.html</a></h3>
|
||||
<p>A point worth considering is that as the number passed into the program gets
|
||||
@@ -1816,7 +1844,7 @@ on the stack at that point:</p>
|
||||
5</code></pre>
|
||||
<p>which might (?) suggest that the <code>+</code> operator is unimplemented. Unfortunately it
|
||||
has been many years since I have used perl and I was never a guru either.</p>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-31">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-32">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<p>The author states that in perl < 5.6.0 there is a bug with a core dump in what
|
||||
they said is in <code>Perl_sv_upgrade</code>. As this is documented it is not considered a
|
||||
bug to be fixed. For the curious this will crash in macOS. Cody notes that the
|
||||
@@ -1858,7 +1886,7 @@ of 92 warnings! Nonetheless neither works okay and both crash.</p>
|
||||
<div id="2000_primenum">
|
||||
<h2 id="primenum">2000/primenum</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-32">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-33">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2000primenumprimenum.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/primenum/primenum.c">2000/primenum/primenum.c</a></h3>
|
||||
<h3 id="information-2000primenumindex.html">Information: <a href="2000/primenum/index.html">2000/primenum/index.html</a></h3>
|
||||
<p>This program does not do what you might think it does! Running it like:</p>
|
||||
@@ -1876,7 +1904,7 @@ make a pull request.</p>
|
||||
<div id="2000_rince">
|
||||
<h2 id="rince-1">2000/rince</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-33">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-34">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2000rincerince.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2000/rince/rince.c">2000/rince/rince.c</a></h3>
|
||||
<h3 id="information-2000rinceindex.html">Information: <a href="2000/rince/index.html">2000/rince/index.html</a></h3>
|
||||
<p>If <code>DISPLAY</code> is not set the program will very likely crash, do something strange
|
||||
@@ -1890,7 +1918,7 @@ fire</a>! :-) ).</p>
|
||||
<div id="2001_anonymous">
|
||||
<h2 id="anonymous">2001/anonymous</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-34">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-35">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2001anonymousanonymous.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/anonymous/anonymous.c">2001/anonymous/anonymous.c</a></h3>
|
||||
<h3 id="information-2001anonymousindex.html">Information: <a href="2001/anonymous/index.html">2001/anonymous/index.html</a></h3>
|
||||
<p><a href="authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> fixed this so that it
|
||||
@@ -1909,7 +1937,7 @@ elves of Imladris :-(</p>
|
||||
<div id="2001_bellard">
|
||||
<h2 id="bellard">2001/bellard</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-35">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-36">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-doesnt-work-with-some-platforms---please-help-us-fix-it">STATUS: doesn’t work with some platforms - please help us fix it</h3>
|
||||
<h3 id="source-code-2001bellardbellard.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.c">2001/bellard/bellard.c</a></h3>
|
||||
<h3 id="information-2001bellardindex.html">Information: <a href="2001/bellard/index.html">2001/bellard/index.html</a></h3>
|
||||
@@ -1958,14 +1986,14 @@ before the fixes there.</p>
|
||||
<div id="2001_cheong">
|
||||
<h2 id="cheong">2001/cheong</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-36">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-37">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2001cheongcheong.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/cheong/cheong.c">2001/cheong/cheong.c</a></h3>
|
||||
<h3 id="information-2001cheongindex.html">Information: <a href="2001/cheong/index.html">2001/cheong/index.html</a></h3>
|
||||
<p>This program will crash without an arg.</p>
|
||||
<div id="2001_dgbeards">
|
||||
<h2 id="dgbeards">2001/dgbeards</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-37">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-38">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2001dgbeardsdgbeards.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/dgbeards/dgbeards.c">2001/dgbeards/dgbeards.c</a></h3>
|
||||
<h3 id="information-2001dgbeardsindex.html">Information: <a href="2001/dgbeards/index.html">2001/dgbeards/index.html</a></h3>
|
||||
<p>This program deliberately crashes if it loses (which is what it aims to do).</p>
|
||||
@@ -1986,7 +2014,7 @@ appreciate your help!</p>
|
||||
<div id="2001_kev">
|
||||
<h2 id="kev">2001/kev</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-38">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-39">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2001kevkev.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/kev/kev.c">2001/kev/kev.c</a></h3>
|
||||
<h3 id="information-2001kevindex.html">Information: <a href="2001/kev/index.html">2001/kev/index.html</a></h3>
|
||||
<p>Sometimes when one player presses <code>q</code> it will result in broken pipe on the other
|
||||
@@ -2004,7 +2032,7 @@ set. In other words both have to be ASCII or EBCDIC - not one of each.</p>
|
||||
<div id="2001_ollinger">
|
||||
<h2 id="ollinger">2001/ollinger</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-39">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-40">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2001ollingerollinger.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/ollinger/ollinger.c">2001/ollinger/ollinger.c</a></h3>
|
||||
<h3 id="information-2001ollingerindex.html">Information: <a href="2001/ollinger/index.html">2001/ollinger/index.html</a></h3>
|
||||
<p>This program will very likely crash or do something unexpected if you do not
|
||||
@@ -2020,7 +2048,7 @@ wanted to install it as a tool but this is missing.</p>
|
||||
<div id="2001_schweikh">
|
||||
<h2 id="schweikh">2001/schweikh</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-40">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-41">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2001schweikhschweikh.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/schweikh/schweikh.c">2001/schweikh/schweikh.c</a></h3>
|
||||
<h3 id="information-2001schweikhindex.html">Information: <a href="2001/schweikh/index.html">2001/schweikh/index.html</a></h3>
|
||||
<p>The glob pattern must match the whole string. See the author’s comments for
|
||||
@@ -2188,13 +2216,13 @@ compile under clang. The following patch was applied:</p>
|
||||
gavin_files: boot.b lilo.conf prim gavin_install.txt</code></pre>
|
||||
<p>The current (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/gavin/Makefile">Makefile</a> was modified to try and
|
||||
fit into the current IOCCC build environment.</p>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-41">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-42">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<p>See <a href="2004/gavin/index.html#known-features">known features in the index.html</a> for
|
||||
things that are not bugs but documented (mis)features.</p>
|
||||
<div id="2004_jdalbec">
|
||||
<h2 id="jdalbec">2004/jdalbec</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-42">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-43">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2004jdalbecjdalbec.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/jdalbec/jdalbec.c">2004/jdalbec/jdalbec.c</a></h3>
|
||||
<h3 id="information-2004jdalbecindex.html">Information: <a href="2004/jdalbec/index.html">2004/jdalbec/index.html</a></h3>
|
||||
<p>The author stated that:</p>
|
||||
@@ -2219,7 +2247,7 @@ things that are not bugs but documented (mis)features.</p>
|
||||
<div id="2004_sds">
|
||||
<h2 id="sds">2004/sds</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-43">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-44">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2004sdssds.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/sds/sds.c">2004/sds/sds.c</a></h3>
|
||||
<h3 id="information-2004sdsindex.html">Information: <a href="2004/sds/index.html">2004/sds/index.html</a></h3>
|
||||
<p>The generated code will very likely segfault or do something not intended if not
|
||||
@@ -2232,7 +2260,7 @@ given the right args. See the index.html file for the correct syntax.</p>
|
||||
<div id="2005_anon">
|
||||
<h2 id="anon">2005/anon</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-44">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-45">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2005anonanon.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/anon/anon.c">2005/anon/anon.c</a></h3>
|
||||
<h3 id="information-2005anonindex.html">Information: <a href="2005/anon/index.html">2005/anon/index.html</a></h3>
|
||||
<p>This program sometimes will create unsolvable puzzles :-) just to hook you.
|
||||
@@ -2246,7 +2274,7 @@ dimensions. Try <code>100 100 100</code> for instance and see what happens!</p>
|
||||
<div id="2005_giljade">
|
||||
<h2 id="giljade">2005/giljade</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-45">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-46">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2005giljadegiljade.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/giljade/giljade.c">2005/giljade/giljade.c</a></h3>
|
||||
<h3 id="information-2005giljadeindex.html">Information: <a href="2005/giljade/index.html">2005/giljade/index.html</a></h3>
|
||||
<p>This entry will very likely segfault or do something strange if the source code
|
||||
@@ -2255,7 +2283,7 @@ does not exist.</p>
|
||||
<div id="2005_mikeash">
|
||||
<h2 id="mikeash">2005/mikeash</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-46">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-47">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2005mikeashmikeash.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/mikeash/mikeash.c">2005/mikeash/mikeash.c</a></h3>
|
||||
<h3 id="information-2005mikeashindex.html">Information: <a href="2005/mikeash/index.html">2005/mikeash/index.html</a></h3>
|
||||
<p>The author states:</p>
|
||||
@@ -2289,7 +2317,7 @@ for running itself.</p>
|
||||
<div id="2005_mynx">
|
||||
<h2 id="mynx">2005/mynx</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-47">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-48">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2005mynxmynx.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/mynx/mynx.c">2005/mynx/mynx.c</a></h3>
|
||||
<h3 id="information-2005mynxindex.html">Information: <a href="2005/mynx/index.html">2005/mynx/index.html</a></h3>
|
||||
<p><a href="authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> notes that, though
|
||||
@@ -2303,7 +2331,7 @@ website</a> itself.</p>
|
||||
<div id="2005_sykes">
|
||||
<h2 id="sykes">2005/sykes</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-48">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-49">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2005sykessykes.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/sykes/sykes.c">2005/sykes/sykes.c</a></h3>
|
||||
<h3 id="information-2005sykesindex.html">Information: <a href="2005/sykes/index.html">2005/sykes/index.html</a></h3>
|
||||
<p>The author stated the below points of interest.</p>
|
||||
@@ -2344,7 +2372,7 @@ with at least <code>computer.tofu</code> input file:</p>
|
||||
<div id="2006_borsanyi">
|
||||
<h2 id="borsanyi">2006/borsanyi</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-49">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-50">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2006borsanyiborsanyi.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/borsanyi/borsanyi.c">2006/borsanyi/borsanyi.c</a></h3>
|
||||
<h3 id="information-2006borsanyiindex.html">Information: <a href="2006/borsanyi/index.html">2006/borsanyi/index.html</a></h3>
|
||||
<p>The string specified must be <= 42 characters and may only consist of the
|
||||
@@ -2353,7 +2381,7 @@ with possibly corrupt GIF files.</p>
|
||||
<div id="2006_hamre">
|
||||
<h2 id="hamre">2006/hamre</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-50">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-51">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2006hamrehamre.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/hamre/hamre.c">2006/hamre/hamre.c</a></h3>
|
||||
<h3 id="information-2006hamreindex.html">Information: <a href="2006/hamre/index.html">2006/hamre/index.html</a></h3>
|
||||
<p>This program will likely crash or do something funny without an arg.</p>
|
||||
@@ -2372,12 +2400,12 @@ but you are welcome to try and fix it.</p>
|
||||
provide it as an additional alt version. Fixing this is very likely to be very
|
||||
challenging and in some systems it will not be possible to fix but you are
|
||||
welcome to try and fix it if you wish to!</p>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-51">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-52">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<p>Incorrect formulas will ungracefully crash the program.</p>
|
||||
<div id="2006_stewart">
|
||||
<h2 id="stewart">2006/stewart</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-52">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-53">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2006stewartstewart.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/stewart/stewart.c">2006/stewart/stewart.c</a></h3>
|
||||
<h3 id="information-2006stewartindex.html">Information: <a href="2006/stewart/index.html">2006/stewart/index.html</a></h3>
|
||||
<p>This program will likely crash or do something funny if the file cannot be
|
||||
@@ -2385,7 +2413,7 @@ opened. The number of args is however checked.</p>
|
||||
<div id="2006_sykes1">
|
||||
<h2 id="sykes1">2006/sykes1</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-53">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-54">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2006sykes1sykes1.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/sykes1/sykes1.c">2006/sykes1/sykes1.c</a></h3>
|
||||
<h3 id="information-2006sykes1index.html">Information: <a href="2006/sykes1/index.html">2006/sykes1/index.html</a></h3>
|
||||
<p>The author stated:</p>
|
||||
@@ -2402,7 +2430,7 @@ opened. The number of args is however checked.</p>
|
||||
<div id="2006_toledo2">
|
||||
<h2 id="toledo2">2006/toledo2</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-54">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-55">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2006toledo2toledo2.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo2/toledo2.c">2006/toledo2/toledo2.c</a></h3>
|
||||
<h3 id="information-2006toledo2index.html">Information: <a href="2006/toledo2/index.html">2006/toledo2/index.html</a></h3>
|
||||
<p><a href="authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> fixed this program to
|
||||
@@ -2449,7 +2477,7 @@ case-sensitive.</p>
|
||||
<div id="2011_borsanyi">
|
||||
<h2 id="borsanyi-1">2011/borsanyi</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-55">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-56">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2011borsanyiborsanyi.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/borsanyi/borsanyi.c">2011/borsanyi/borsanyi.c</a></h3>
|
||||
<h3 id="information-2011borsanyiindex.html">Information: <a href="2011/borsanyi/index.html">2011/borsanyi/index.html</a></h3>
|
||||
<p>For a great amount of data points the program will crash, depending on your
|
||||
@@ -2474,7 +2502,7 @@ for security in modern days!</strong>). Do you have a server with enough bandwid
|
||||
would like to set it up? We’ll gladly thank you in the <a href="thanks-for-help.html">thanks
|
||||
file</a> file and link to the page as well! You’ll also have
|
||||
IOCCC fame for reviving a pootifier! :-)</p>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-56">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-57">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<p>The author states the following:</p>
|
||||
<ul>
|
||||
<li><p>Bad input (e.g. nonexistent files, non-numeric number of iterations, etc.)
|
||||
@@ -2486,7 +2514,7 @@ tends to result in empty output.</p></li>
|
||||
<div id="2011_fredriksson">
|
||||
<h2 id="fredriksson">2011/fredriksson</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-57">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-58">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2011fredrikssonfredriksson.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/fredriksson/fredriksson.c">2011/fredriksson/fredriksson.c</a></h3>
|
||||
<h3 id="information-2011fredrikssonindex.html">Information: <a href="2011/fredriksson/index.html">2011/fredriksson/index.html</a></h3>
|
||||
<p>The author stated that there are a number of features and limitations. As the
|
||||
@@ -2496,7 +2524,7 @@ remarks</a> instead.</p>
|
||||
<div id="2011_konno">
|
||||
<h2 id="konno">2011/konno</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-58">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-59">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2011konnokonno.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/konno/konno.c">2011/konno/konno.c</a></h3>
|
||||
<h3 id="information-2011konnoindex.html">Information: <a href="2011/konno/index.html">2011/konno/index.html</a></h3>
|
||||
<p>This program will very likely crash or do something funny without an arg.</p>
|
||||
@@ -2665,7 +2693,7 @@ defined.</p>
|
||||
<div id="2011_vik">
|
||||
<h2 id="vik">2011/vik</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-59">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-60">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2011vikvik.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/vik/vik.c">2011/vik/vik.c</a></h3>
|
||||
<h3 id="information-2011vikindex.html">Information: <a href="2011/vik/index.html">2011/vik/index.html</a></h3>
|
||||
<p>The author stated that the program will crash if no argument is passed to the
|
||||
@@ -2679,7 +2707,7 @@ fire</a> :-)</p>
|
||||
<div id="2012_blakely">
|
||||
<h2 id="blakely">2012/blakely</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-60">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-61">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2012blakelyblakely.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/blakely/blakely.c">2012/blakely/blakely.c</a></h3>
|
||||
<h3 id="information-2012blakelyindex.html">Information: <a href="2012/blakely/index.html">2012/blakely/index.html</a></h3>
|
||||
<p>The author stated:</p>
|
||||
@@ -2688,7 +2716,7 @@ fire</a> :-)</p>
|
||||
<div id="2012_deckmyn">
|
||||
<h2 id="deckmyn">2012/deckmyn</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-61">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-62">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2012deckmyndeckmyn.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/deckmyn/deckmyn.c">2012/deckmyn/deckmyn.c</a></h3>
|
||||
<h3 id="information-2012deckmynindex.html">Information: <a href="2012/deckmyn/index.html">2012/deckmyn/index.html</a></h3>
|
||||
<p>The author stated:</p>
|
||||
@@ -2721,7 +2749,7 @@ fire</a> :-)</p>
|
||||
<div id="2012_dlowe">
|
||||
<h2 id="dlowe-3">2012/dlowe</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-62">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-63">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2012dlowedlowe.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/dlowe/dlowe.c">2012/dlowe/dlowe.c</a></h3>
|
||||
<h3 id="information-2012dloweindex.html">Information: <a href="2012/dlowe/index.html">2012/dlowe/index.html</a></h3>
|
||||
<p>The author stated:</p>
|
||||
@@ -2735,7 +2763,7 @@ doesn’t make it possible to lock drawing to the display refresh rate.)</li>
|
||||
<div id="2012_tromp">
|
||||
<h2 id="tromp">2012/tromp</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-63">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-64">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2012tromptromp.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/tromp/tromp.c">2012/tromp/tromp.c</a></h3>
|
||||
<h3 id="information-2012trompindex.html">Information: <a href="2012/tromp/index.html">2012/tromp/index.html</a></h3>
|
||||
<p>The author stated:</p>
|
||||
@@ -2756,7 +2784,7 @@ doesn’t make it possible to lock drawing to the display refresh rate.)</li>
|
||||
<div id="2012_vik">
|
||||
<h2 id="vik-1">2012/vik</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-64">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-65">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2012vikvik.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/vik/vik.c">2012/vik/vik.c</a></h3>
|
||||
<h3 id="information-2012vikindex.html">Information: <a href="2012/vik/index.html">2012/vik/index.html</a></h3>
|
||||
<p>The author stated that the program will crash if no argument is passed to the
|
||||
@@ -2772,7 +2800,7 @@ fire</a> :-)</p>
|
||||
<div id="2013_cable2">
|
||||
<h2 id="cable2">2013/cable2</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-65">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-66">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2013cable2cable2.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/cable2.c">2013/cable2/cable2.c</a></h3>
|
||||
<h3 id="information-2013cable2index.html">Information: <a href="2013/cable2/index.html">2013/cable2/index.html</a></h3>
|
||||
<p>The author stated:</p>
|
||||
@@ -2792,7 +2820,7 @@ and endianness conversion would make the source too large for IOCCC rule 2).</li
|
||||
<div id="2013_dlowe">
|
||||
<h2 id="dlowe-4">2013/dlowe</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-66">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-67">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2013dlowedlowe.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/dlowe/dlowe.c">2013/dlowe/dlowe.c</a></h3>
|
||||
<h3 id="information-2013dloweindex.html">Information: <a href="2013/dlowe/index.html">2013/dlowe/index.html</a></h3>
|
||||
<p>This program will possibly crash or draw something strange with 0 args. Then
|
||||
@@ -2811,7 +2839,7 @@ used.</li>
|
||||
<div id="2013_endoh1">
|
||||
<h2 id="endoh1">2013/endoh1</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-67">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-68">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2013endoh1endoh1.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh1/endoh1.c">2013/endoh1/endoh1.c</a></h3>
|
||||
<h3 id="information-2013endoh1index.html">Information: <a href="2013/endoh1/index.html">2013/endoh1/index.html</a></h3>
|
||||
<p>From the author:</p>
|
||||
@@ -2827,7 +2855,7 @@ used.</li>
|
||||
<div id="2013_endoh3">
|
||||
<h2 id="endoh3">2013/endoh3</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-68">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-69">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2013endoh3endoh3.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/endoh3.c">2013/endoh3/endoh3.c</a></h3>
|
||||
<h3 id="information-2013endoh3index.html">Information: <a href="2013/endoh3/index.html">2013/endoh3/index.html</a></h3>
|
||||
<p>From the author:</p>
|
||||
@@ -2840,14 +2868,14 @@ such as <code>C2E2</code>.</p>
|
||||
<div id="2013_endoh4">
|
||||
<h2 id="endoh4">2013/endoh4</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-69">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-70">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2013endoh4endoh4.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/endoh4.c">2013/endoh4/endoh4.c</a></h3>
|
||||
<h3 id="information-2013endoh4index.html">Information: <a href="2013/endoh4/index.html">2013/endoh4/index.html</a></h3>
|
||||
<p>Invalid input files will very likely crash the program.</p>
|
||||
<div id="2013_hou">
|
||||
<h2 id="hou">2013/hou</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-70">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-71">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2013houhou.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">2013/hou/hou.c</a></h3>
|
||||
<h3 id="information-2013houindex.html">Information: <a href="2013/hou/index.html">2013/hou/index.html</a></h3>
|
||||
<p>This program will not terminate on its own; you must kill <code>hou</code> (but not Qiming
|
||||
@@ -2855,7 +2883,7 @@ Hou :-) ) yourself. This should not be fixed.</p>
|
||||
<div id="2013_mills">
|
||||
<h2 id="mills">2013/mills</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-71">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-72">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2013millsmills.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/mills/mills.c">2013/mills/mills.c</a></h3>
|
||||
<h3 id="information-2013millsindex.html">Information: <a href="2013/mills/index.html">2013/mills/index.html</a></h3>
|
||||
<p>The author reminds us that if you kill the program you will have to wait a short
|
||||
@@ -2872,7 +2900,7 @@ it out as a known limitation it is not a bug but a feature.</p>
|
||||
<div id="2014_maffiodo1">
|
||||
<h2 id="maffiodo1">2014/maffiodo1</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-72">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-73">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2014maffiodo1prog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/maffiodo1/prog.c">2014/maffiodo1/prog.c</a></h3>
|
||||
<h3 id="information-2014maffiodo1index.html">Information: <a href="2014/maffiodo1/index.html">2014/maffiodo1/index.html</a></h3>
|
||||
<p>The author noted that in macOS the colours might be wrong. They gave a solution.
|
||||
@@ -2896,7 +2924,7 @@ player become bigger, stay away from blocks!</p>
|
||||
<div id="2014_maffiodo2">
|
||||
<h2 id="maffiodo2">2014/maffiodo2</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-73">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-74">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2014maffiodo2prog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/maffiodo2/prog.c">2014/maffiodo2/prog.c</a></h3>
|
||||
<h3 id="information-2014maffiodo2index.html">Information: <a href="2014/maffiodo2/index.html">2014/maffiodo2/index.html</a></h3>
|
||||
<p>This program will very likely crash if no arg is given.</p>
|
||||
@@ -2937,7 +2965,7 @@ rely on the entry as the below shows. One should be able to do:</p>
|
||||
<div id="2015_hou">
|
||||
<h2 id="hou-1">2015/hou</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-74">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-75">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2015houprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/prog.c">2015/hou/prog.c</a></h3>
|
||||
<h3 id="information-2015houindex.html">Information: <a href="2015/hou/index.html">2015/hou/index.html</a></h3>
|
||||
<p>The author stated:</p>
|
||||
@@ -2981,7 +3009,7 @@ because it is the same thing as the other, just updated to use <code>prog.alt</c
|
||||
<div id="2015_mills2">
|
||||
<h2 id="mills2">2015/mills2</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-75">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-76">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2015mills2prog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills2/prog.c">2015/mills2/prog.c</a></h3>
|
||||
<h3 id="information-2015mills2index.html">Information: <a href="2015/mills2/index.html">2015/mills2/index.html</a></h3>
|
||||
<p>The program doesn’t look at the header of files so if it’s passed something hat
|
||||
@@ -2990,7 +3018,7 @@ is not compressed data it’s likely to crash.</p>
|
||||
<div id="2015_schweikhardt">
|
||||
<h2 id="schweikhardt">2015/schweikhardt</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-76">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-77">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2015schweikhardtprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/schweikhardt/prog.c">2015/schweikhardt/prog.c</a></h3>
|
||||
<h3 id="information-2015schweikhardtindex.html">Information: <a href="2015/schweikhardt/index.html">2015/schweikhardt/index.html</a></h3>
|
||||
<p>The program assumes that <code>EOF</code> is <code>-1</code>. This can be fixed but at this time it is
|
||||
@@ -3023,7 +3051,7 @@ use <code>8 * sizeof(typ)</code> bits per place. It does not work when <code>CHA
|
||||
<div id="2018_algmyr">
|
||||
<h2 id="algmyr">2018/algmyr</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-77">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-78">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2018algmyrprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/algmyr/prog.c">2018/algmyr/prog.c</a></h3>
|
||||
<h3 id="information-2018algmyrindex.html">Information: <a href="2018/algmyr/index.html">2018/algmyr/index.html</a></h3>
|
||||
<p>The author wrote:</p>
|
||||
@@ -3042,7 +3070,7 @@ loop printing whitespace.</li>
|
||||
<div id="2018_hou">
|
||||
<h2 id="hou-2">2018/hou</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-78">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-79">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2018houprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/hou/prog.c">2018/hou/prog.c</a></h3>
|
||||
<h3 id="information-2018houindex.html">Information: <a href="2018/hou/index.html">2018/hou/index.html</a></h3>
|
||||
<p>When you run it on a JSON file you will see something like:</p>
|
||||
@@ -3067,7 +3095,7 @@ likely see:</p>
|
||||
<p>where <code>[]</code> is the cursor. When this happens if you hit enter (this is necessary
|
||||
or else it’ll happen again) and then exit again (ctrl-e) and run <code>prog</code> again
|
||||
it’ll be okay.</p>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-79">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-80">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<p>The author stated that if you make a typo it can happen that the boot loader can
|
||||
crash and halt. If this is the case type ctrl-e to quit the emulator and try
|
||||
again.</p>
|
||||
@@ -3082,7 +3110,7 @@ in the case of compiled code it won’t be executable).</p>
|
||||
<div id="2018_vokes">
|
||||
<h2 id="vokes">2018/vokes</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-80">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-81">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2018vokesprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/vokes/prog.c">2018/vokes/prog.c</a></h3>
|
||||
<h3 id="information-2018vokesindex.html">Information: <a href="2018/vokes/index.html">2018/vokes/index.html</a></h3>
|
||||
<p>The author wrote the following:</p>
|
||||
@@ -3132,7 +3160,7 @@ this program has nothing to do with a hand.</p></li>
|
||||
<div id="2019_adamovsky">
|
||||
<h2 id="adamovsky">2019/adamovsky</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-81">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-82">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019adamovskyprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/adamovsky/prog.c">2019/adamovsky/prog.c</a></h3>
|
||||
<h3 id="information-2019adamovskyindex.html">Information: <a href="2019/adamovsky/index.html">2019/adamovsky/index.html</a></h3>
|
||||
<p>Certain input can crash this program. The file
|
||||
@@ -3140,7 +3168,7 @@ this program has nothing to do with a hand.</p></li>
|
||||
<div id="2019_burton">
|
||||
<h2 id="burton">2019/burton</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-82">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-83">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019burtonprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/burton/prog.c">2019/burton/prog.c</a></h3>
|
||||
<h3 id="information-2019burtonindex.html">Information: <a href="2019/burton/index.html">2019/burton/index.html</a></h3>
|
||||
<p>The author pointed out that some implementations of <code>wc(1)</code> show different
|
||||
@@ -3148,7 +3176,7 @@ values but his implementation matches that of macOS and FreeBSD.</p>
|
||||
<div id="2019_ciura">
|
||||
<h2 id="ciura">2019/ciura</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-83">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-84">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019ciuraprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/prog.c">2019/ciura/prog.c</a></h3>
|
||||
<h3 id="information-2019ciuraindex.html">Information: <a href="2019/ciura/index.html">2019/ciura/index.html</a></h3>
|
||||
<p><a href="authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> fixed the scripts so
|
||||
@@ -3182,7 +3210,7 @@ for more information on the change to <code>fgets(3)</code>.</p>
|
||||
<div id="2019_duble">
|
||||
<h2 id="duble">2019/duble</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-84">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-85">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019dubleprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/duble/prog.c">2019/duble/prog.c</a></h3>
|
||||
<h3 id="information-2019dubleindex.html">Information: <a href="2019/duble/index.html">2019/duble/index.html</a></h3>
|
||||
<p>There are two things to be aware of with this entry.</p>
|
||||
@@ -3211,7 +3239,7 @@ in the directory:</p>
|
||||
<div id="2019_endoh">
|
||||
<h2 id="endoh">2019/endoh</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-85">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-86">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019endohprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/endoh/prog.c">2019/endoh/prog.c</a></h3>
|
||||
<h3 id="information-2019endohindex.html">Information: <a href="2019/endoh/index.html">2019/endoh/index.html</a></h3>
|
||||
<p>As a backtrace quine this entry is <strong>SUPPOSED to segfault</strong> so this should not be
|
||||
@@ -3219,7 +3247,7 @@ touched either.</p>
|
||||
<div id="2019_karns">
|
||||
<h2 id="karns">2019/karns</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-86">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-87">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019karnsprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/karns/prog.c">2019/karns/prog.c</a></h3>
|
||||
<h3 id="information-2019karnsindex.html">Information: <a href="2019/karns/index.html">2019/karns/index.html</a></h3>
|
||||
<p>The author stated the following:</p>
|
||||
@@ -3249,7 +3277,7 @@ touched either.</p>
|
||||
<div id="2019_lynn">
|
||||
<h2 id="lynn">2019/lynn</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-87">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-88">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019lynnprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/prog.c">2019/lynn/prog.c</a></h3>
|
||||
<h3 id="information-2019lynnindex.html">Information: <a href="2019/lynn/index.html">2019/lynn/index.html</a></h3>
|
||||
<p>The author wrote that there are a number of differences from what one might
|
||||
@@ -3259,7 +3287,7 @@ remarks in the sections <a href="2019/lynn/index.html#syntax">Syntax</a> and
|
||||
<div id="2019_mills">
|
||||
<h2 id="mills-2">2019/mills</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-88">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-89">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019millsprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/mills/prog.c">2019/mills/prog.c</a></h3>
|
||||
<h3 id="information-2019millsindex.html">Information: <a href="2019/mills/index.html">2019/mills/index.html</a></h3>
|
||||
<p>The author wrote that if you decide to change networks or use a different input
|
||||
@@ -3279,7 +3307,7 @@ a crash.</p>
|
||||
<div id="2019_poikola">
|
||||
<h2 id="poikola">2019/poikola</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-89">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-90">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019poikolaprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/poikola/prog.c">2019/poikola/prog.c</a></h3>
|
||||
<h3 id="information-2019poikolaindex.html">Information: <a href="2019/poikola/index.html">2019/poikola/index.html</a></h3>
|
||||
<p>This program will not validate input so it might fail or get stuck if invoked
|
||||
@@ -3288,7 +3316,7 @@ erroneously.</p>
|
||||
<div id="2019_yang">
|
||||
<h2 id="yang">2019/yang</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-90">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-91">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2019yangprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/prog.c">2019/yang/prog.c</a></h3>
|
||||
<h3 id="information-2019yangindex.html">Information: <a href="2019/yang/index.html">2019/yang/index.html</a></h3>
|
||||
<p>The author noted that if the program runs out of memory it is likely to crash.</p>
|
||||
@@ -3303,7 +3331,7 @@ ignored except line feeds (preserved) and tabs (expanded to 8 spaces).’</p>
|
||||
<div id="2020_burton">
|
||||
<h2 id="burton-1">2020/burton</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-91">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-92">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2020burtonprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/burton/prog.c">2020/burton/prog.c</a></h3>
|
||||
<h3 id="information-2020burtonindex.html">Information: <a href="2020/burton/index.html">2020/burton/index.html</a></h3>
|
||||
<p>This entry is known to crash if no arg is specified. Although easy to fix it is
|
||||
@@ -3314,7 +3342,7 @@ either. But can you figure out why this happens?</p>
|
||||
<div id="2020_carlini">
|
||||
<h2 id="carlini">2020/carlini</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-92">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-93">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2020carliniprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/carlini/prog.c">2020/carlini/prog.c</a></h3>
|
||||
<h3 id="information-2020carliniindex.html">Information: <a href="2020/carlini/index.html">2020/carlini/index.html</a></h3>
|
||||
<p>The author stated that bad things happen if the entered move is outside of the
|
||||
@@ -3328,7 +3356,7 @@ move.</p>
|
||||
<div id="2020_ferguson1">
|
||||
<h2 id="ferguson1">2020/ferguson1</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-93">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-94">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2020ferguson1prog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson1/prog.c">2020/ferguson1/prog.c</a></h3>
|
||||
<h3 id="information-2020ferguson1index.html">Information: <a href="2020/ferguson1/index.html">2020/ferguson1/index.html</a></h3>
|
||||
<p>There are some things that might appear to be bugs but are actually features or
|
||||
@@ -3338,7 +3366,7 @@ things that are misinterpreted as bugs. See the
|
||||
<div id="2020_giles">
|
||||
<h2 id="giles">2020/giles</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-94">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-95">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2020gilesprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/giles/prog.c">2020/giles/prog.c</a></h3>
|
||||
<h3 id="information-2020gilesindex.html">Information: <a href="2020/giles/index.html">2020/giles/index.html</a></h3>
|
||||
<p>The author noted that the program only supports WAV files that have
|
||||
@@ -3347,7 +3375,7 @@ audio channels.</p>
|
||||
<div id="2020_otterness">
|
||||
<h2 id="otterness">2020/otterness</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-95">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-96">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-2020otternessprog.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/otterness/prog.c">2020/otterness/prog.c</a></h3>
|
||||
<h3 id="information-2020otternessindex.html">Information: <a href="2020/otterness/index.html">2020/otterness/index.html</a></h3>
|
||||
<p>The author listed the following limitations:</p>
|
||||
|
||||
@@ -1790,6 +1790,42 @@ There was no IOCCC in 1997.
|
||||
</div>
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
|
||||
<div id="1998_chaos">
|
||||
## 1998/chaos
|
||||
</div>
|
||||
|
||||
### STATUS: INABIAF - please **DO NOT** fix
|
||||
### Source code: [1998/chaos/chaos.c](%%REPO_URL%%/1998/chaos/chaos.c)
|
||||
### Information: [1998/chaos/index.html](1998/chaos/index.html)
|
||||
|
||||
The author stated the following:
|
||||
|
||||
> Memory `malloc(3)`ed is never freed. This shouldn't be a big deal, since only
|
||||
one block is ever allocated, and the OS should recover it.
|
||||
>
|
||||
> My local flavor of lint doesn't seem to like the fact that I never `return`
|
||||
from `main()`. Feh, what does it know? Otherwise, ignoring lint's over
|
||||
protectiveness ("Of course I'm not using all of the functions defined in
|
||||
`curses.h`!"), it's lint clean.
|
||||
>
|
||||
>
|
||||
> If the compiler happens to generate the byte sequence "AlWuzEre" in the
|
||||
executable by chance, the program may be unable to locate the embedded string.
|
||||
As a result, running the program without an external data file may act in
|
||||
undefined ways.
|
||||
> If the compiler doesn't store `char * P`'s data in a nice contiguous stream,
|
||||
it would be bad. As above, it would break running the program without an
|
||||
external data file.
|
||||
>
|
||||
> If the incoming data is corrupt, the results are undefined. (Although dumping
|
||||
core is a popular result.)
|
||||
>
|
||||
> When a point passes behind the camera, it is still plotted. The object will
|
||||
"bounce" off the camera, but the result (some points in front, some reflected
|
||||
from the rear) looks really odd. And it sometimes hangs. So just don't fly
|
||||
through objects. You'll be happier.
|
||||
|
||||
|
||||
|
||||
<div id="1998_dlowe">
|
||||
## 1998/dlowe
|
||||
|
||||
Reference in new issue
Block a user