Merge pull request #2554 from xexyl/gson92-bugs
Change bug status in 1992/gson
This commit is contained in:
7 files changed
+223
-213
No files matched your search
+51
-54
@@ -14,6 +14,7 @@ The current status of this entry is:
|
||||
|
||||
```
|
||||
STATUS: uses gets() - change to fgets() if possible
|
||||
STATUS: INABIAF - please DO NOT fix
|
||||
```
|
||||
|
||||
For more detailed information see [1992/gson in bugs.html](../../bugs.html#1992_gson).
|
||||
@@ -22,7 +23,7 @@ For more detailed information see [1992/gson in bugs.html](../../bugs.html#1992_
|
||||
## To use:
|
||||
|
||||
``` <!---sh-->
|
||||
./ag word word2 word3 < /path/to/dictionary
|
||||
./ag word word2 word3 < dictionary
|
||||
```
|
||||
|
||||
|
||||
@@ -36,30 +37,25 @@ This script will determine (or try and determine) where your system dictionary
|
||||
is located and assuming that it can find one it'll use that. It checks the
|
||||
following locations though the last one is more ironic:
|
||||
|
||||
```
|
||||
/usr/share/dict/words
|
||||
/usr/share/lib/spell/words
|
||||
/usr/ucblib/dict/words
|
||||
/dev/null # <-- for machines with nothing to say
|
||||
```
|
||||
* `/usr/share/dict/words`
|
||||
* `/usr/share/lib/spell/words`
|
||||
* `/usr/ucblib/dict/words`
|
||||
* `/dev/null` # <-- for machines with nothing to say
|
||||
|
||||
Then using the proper dictionary file it does:
|
||||
Then it runs the program with the following strings, using the proper dictionary
|
||||
file:
|
||||
|
||||
``` <!---sh-->
|
||||
./ag free software foundation < /usr/share/dict/words
|
||||
./ag obfuscated c contest < /usr/share/dict/words
|
||||
./ag unix international < /usr/share/dict/words
|
||||
./ag george bush < /usr/share/dict/words
|
||||
./ag bill clinton < /usr/share/dict/words
|
||||
./ag ross perot < /usr/share/dict/words
|
||||
./ag paul e tsongas < /usr/share/dict/words
|
||||
```
|
||||
|
||||
where `/usr/share/dict/words` is the dictionary file.
|
||||
* `free software foundation`
|
||||
* `obfuscated c contest`
|
||||
* `unix international`
|
||||
* `george bush`
|
||||
* `bill clinton`
|
||||
* `ross perot`
|
||||
* `paul e tsongas`
|
||||
|
||||
Then it uses the [mkdict.sh](%%REPO_URL%%/1992/gson/mkdict.sh) script to create a dictionary file out
|
||||
of the files [index.html](index.html), [try.sh](%%REPO_URL%%/1992/gson/try.sh) (itself) and
|
||||
[Makefile](%%REPO_URL%%/1992/gson/Makefile) and it repeats the same commands as above. In the case no
|
||||
of the files [README.md](README.md), [try.sh](%%REPO_URL%%/1992/gson/try.sh) (itself) and
|
||||
[Makefile](%%REPO_URL%%/1992/gson/Makefile) and it repeats the same process as above. In the case no
|
||||
dictionary file can be found in the first step it only runs the commands once
|
||||
with the created dictionary file.
|
||||
|
||||
@@ -84,20 +80,20 @@ Then try using the program as shown above with the file `words`.
|
||||
|
||||
The name of the game:
|
||||
|
||||
AG is short for either Anagram Generator or simply AnaGram. It might also be
|
||||
construed to mean Alphabet Game, and by pure coincidence it happens to be the
|
||||
`AG` is short for either `Anagram Generator` or simply `AnaGram`. It might also be
|
||||
construed to mean `Alphabet Game`, and by pure coincidence it happens to be the
|
||||
author's initials.
|
||||
|
||||
|
||||
### What it does
|
||||
|
||||
AG takes one or more words as arguments, and tries to find anagrams of those
|
||||
`AG` takes one or more words as arguments, and tries to find anagrams of those
|
||||
words, i.e. words or sentences containing exactly the same letters.
|
||||
|
||||
|
||||
### How to use it
|
||||
|
||||
To run AG, you need a dictionary file consisting of distinct words in the
|
||||
To run `AG`, you need a dictionary file consisting of distinct words in the
|
||||
natural language of your choice, one word on each line. If your machine doesn't
|
||||
have one already, you can make your own dictionary by concatenating a few
|
||||
hundred of your favourite Usenet articles and piping them through the following
|
||||
@@ -108,10 +104,10 @@ obfuscated shell script:
|
||||
z=a-z];tr [A-Z\] \[$z|sed s/[\^$z[\^$z*/_/g|tr _ \\012|grep ..|sort -u
|
||||
```
|
||||
|
||||
Using articles from alt.folklore.computers is likely to make
|
||||
a more professional-looking dictionary than rec.arts.erotica.
|
||||
Using articles from `alt.folklore.computers` is likely to make
|
||||
a more professional-looking dictionary than `rec.arts.erotica`.
|
||||
|
||||
AG must be run with the dictionary file as standard input.
|
||||
`AG` must be run with the dictionary file as standard input.
|
||||
|
||||
Because anagrams consisting of just a few words are generally more
|
||||
meaningful than those consisting of dozens of very short words, the
|
||||
@@ -122,30 +118,17 @@ limit can be changed using a numeric command line option, as in
|
||||
### Bugs and limitations
|
||||
|
||||
- There is no error checking.
|
||||
- Standard input must be seekable, so you can't pipe the dictionary into AG.
|
||||
- Standard input must be seekable, so you can't pipe the dictionary into `AG`.
|
||||
- The input sentence and each line in the dictionary may contain at most 32
|
||||
distinct letters, and each letter may occur at most 15 times.
|
||||
- Words in the dictionary may be at most 255 bytes long.
|
||||
- AG cannot handle characters that sign-extend to negative values.
|
||||
- Although AG works on both 16-bit and 32-bit machines, the size of the problems
|
||||
- `AG` cannot handle characters that sign-extend to negative values.
|
||||
- Although `AG` works on both 16-bit and 32-bit machines, the size of the problems
|
||||
it can solve is severely limited on machines that limit the stack size to 64k or
|
||||
less.
|
||||
|
||||
|
||||
### Obfuscatory notes
|
||||
|
||||
As you can see, AG takes advantage of the new '92 whitespace rules' to
|
||||
achieve a clear, readable, self-documenting layout. The identifiers
|
||||
have been chosen in a way appropriate for an alphabet game, and common
|
||||
sources of bugs such as goto statements and malloc/free have been
|
||||
eliminated. As AG also refrains from abusing the preprocessor, it
|
||||
doesn't really have much to offer in terms of "surface obfuscation".
|
||||
Instead, it tries to achieve both its speed and its obscurity through a
|
||||
careful choice of algorithms. Some of the finer points of those
|
||||
algorithms are outlined the section below.
|
||||
|
||||
|
||||
### NOTICE to those who wish for a greater challenge
|
||||
### 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.
|
||||
@@ -153,15 +136,29 @@ just try to understand the program via the source.
|
||||
If you get stuck, come back and read below for additional hints and information.
|
||||
|
||||
|
||||
### Obfuscatory notes
|
||||
|
||||
As you can see, `AG` takes advantage of the new '92 whitespace rules' to
|
||||
achieve a clear, readable, self-documenting layout. The identifiers
|
||||
have been chosen in a way appropriate for an alphabet game, and common
|
||||
sources of bugs such as goto statements and malloc/free have been
|
||||
eliminated. As `AG` also refrains from abusing the preprocessor, it
|
||||
doesn't really have much to offer in terms of "surface obfuscation".
|
||||
Instead, it tries to achieve both its speed and its obscurity through a
|
||||
careful choice of algorithms. Some of the finer points of those
|
||||
algorithms are outlined the section below.
|
||||
|
||||
|
||||
|
||||
### How this entry works:
|
||||
|
||||
Here follows a description of some of the data structures and
|
||||
algorithms used by AG. It is by no means complete, but it may help
|
||||
algorithms used by `AG`. It is by no means complete, but it may help
|
||||
you get an idea about the general principles.
|
||||
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
|
||||
Internally, AG represents words and sentences as arrays of 32
|
||||
Internally, `AG` represents words and sentences as arrays of 32
|
||||
4-bit integer elements. Each element represents the number of
|
||||
times a letter occurs in the word/sentence. There are 32 elements
|
||||
because 32 is a convenient power of two larger than the number of
|
||||
@@ -186,23 +183,23 @@ iterations of a loop containing some 32-bit bitwise logical
|
||||
operations, but no arithmetic operations other than those implied
|
||||
by array indexing.
|
||||
|
||||
Subtraction works similarly, and in fact AG only implements
|
||||
Subtraction works similarly, and in fact `AG` only implements
|
||||
subtraction directly, handling addition by means of the identity
|
||||
`a+b = a-(0-b)`.
|
||||
|
||||
In addition to this `32*4`-bit representation, AG also forms a so-called
|
||||
In addition to this `32*4`-bit representation, `AG` also forms a so-called
|
||||
"signature" that is the bitwise OR of the four `long`s, which is
|
||||
equivalent to saying that the signature of a word contains a logical 1
|
||||
in the bit positions corresponding to letters occurring at least once
|
||||
in that word.
|
||||
|
||||
The first thing AG does is to construct a lookup table of 256
|
||||
The first thing `AG` does is to construct a lookup table of 256
|
||||
`long`s, one for each 8-bit character value. The entry for a
|
||||
character will be zero if that character doesn't appear in the
|
||||
sentence given on the command line, or it will have a single bit
|
||||
set if the character does appear in the sentence. By adding
|
||||
together the bit masks for all the letters in the input sentence
|
||||
using the transpose addition method described above, AG forms the
|
||||
using the transpose addition method described above, `AG` forms the
|
||||
`32*4` bit array representation of the input sentence.
|
||||
|
||||
The next action performed is reading the dictionary. Those words that
|
||||
@@ -243,12 +240,12 @@ maximum number of words in the anagram, as specified by the user.
|
||||
|
||||
When the deepest recursion level has been reached, an optimization can
|
||||
be applied: because no further recursion will be done, there is no
|
||||
need to look for partial anagrams, and therefore AG only needs to
|
||||
need to look for partial anagrams, and therefore `AG` only needs to
|
||||
check for words that contain exactly the same letters as the current
|
||||
sentence. Those words can be found simply by indexing the hash table
|
||||
with the signature of the current sentence.
|
||||
|
||||
Even when not on the deepest recursion level, AG generally avoids
|
||||
Even when not on the deepest recursion level, `AG` generally avoids
|
||||
examining all the entries of the hash table. The idea is that we are
|
||||
not interested in hash buckets whose words contain any letters not
|
||||
in the current sentence; these buckets are exactly those whose index
|
||||
@@ -270,7 +267,7 @@ even bit positions:
|
||||
main(){int i=0,s=0xAAAA;do{printf("%04x\t",i);}while(i=((i|~s)+1)&s);}
|
||||
```
|
||||
|
||||
AG uses a similar method but works in the opposite direction, finding
|
||||
`AG` uses a similar method but works in the opposite direction, finding
|
||||
the next lower value with zeroes in given bit positions by propagating
|
||||
borrows across those bits. Some additional adjustments are made
|
||||
to the hash table index when initiating a recursive search, using
|
||||
|
||||
+3
-7
@@ -1,16 +1,12 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <limits.h>
|
||||
#ifndef ARG_MAX
|
||||
#define ARG_MAX _POSIX_ARG_MAX
|
||||
#endif
|
||||
|
||||
long a
|
||||
[4],b[
|
||||
4],c[4]
|
||||
,d[0400],e=1;
|
||||
typedef struct f{long g
|
||||
,h,i[4] ,j;struct f*k;}f;f g,*
|
||||
l[4096 ]; char h[ARG_MAX+1],*m,k=3;
|
||||
l[4096 ]; char h[256],*m,k=3;
|
||||
long n (o, p,q)long*o,*p,*q;{
|
||||
long r =4,s,i=0;for(;r--;s=i^
|
||||
*o^*p, i=i&*p|(i|*p)&~*o++,*q
|
||||
@@ -37,7 +33,7 @@ s,i=o->h;q.k=o;r>i?j=l[r=i]:r<i&&
|
||||
j;char *z,*p;
|
||||
for(;m ? j.j=
|
||||
ftell( stdin)
|
||||
,7,(m= gets(m ))||w(
|
||||
,7,(m= gets(m ))||w(
|
||||
&g,315 *13,l[ 4095]
|
||||
,k,64* 64)&0: 0;n(g
|
||||
.i,j.i, b)||(u (&j),j.
|
||||
|
||||
+47
-42
@@ -407,31 +407,36 @@ Location: <a href="../../location.html#FI">FI</a> - <em>Republic of Finland </em
|
||||
some invocations to crash in some systems.</p>
|
||||
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
|
||||
<p>The current status of this entry is:</p>
|
||||
<pre><code> STATUS: uses gets() - change to fgets() if possible</code></pre>
|
||||
<pre><code> STATUS: uses gets() - change to fgets() if possible
|
||||
STATUS: INABIAF - please DO NOT fix</code></pre>
|
||||
<p>For more detailed information see <a href="../../bugs.html#1992_gson">1992/gson in bugs.html</a>.</p>
|
||||
<h2 id="to-use">To use:</h2>
|
||||
<pre><code> ./ag word word2 word3 < /path/to/dictionary</code></pre>
|
||||
<pre><code> ./ag word word2 word3 < dictionary</code></pre>
|
||||
<h2 id="try">Try:</h2>
|
||||
<pre><code> ./try.sh</code></pre>
|
||||
<p>This script will determine (or try and determine) where your system dictionary
|
||||
is located and assuming that it can find one it’ll use that. It checks the
|
||||
following locations though the last one is more ironic:</p>
|
||||
<pre><code> /usr/share/dict/words
|
||||
/usr/share/lib/spell/words
|
||||
/usr/ucblib/dict/words
|
||||
/dev/null # <-- for machines with nothing to say</code></pre>
|
||||
<p>Then using the proper dictionary file it does:</p>
|
||||
<pre><code> ./ag free software foundation < /usr/share/dict/words
|
||||
./ag obfuscated c contest < /usr/share/dict/words
|
||||
./ag unix international < /usr/share/dict/words
|
||||
./ag george bush < /usr/share/dict/words
|
||||
./ag bill clinton < /usr/share/dict/words
|
||||
./ag ross perot < /usr/share/dict/words
|
||||
./ag paul e tsongas < /usr/share/dict/words</code></pre>
|
||||
<p>where <code>/usr/share/dict/words</code> is the dictionary file.</p>
|
||||
<ul>
|
||||
<li><code>/usr/share/dict/words</code></li>
|
||||
<li><code>/usr/share/lib/spell/words</code></li>
|
||||
<li><code>/usr/ucblib/dict/words</code></li>
|
||||
<li><code>/dev/null</code> # <– for machines with nothing to say</li>
|
||||
</ul>
|
||||
<p>Then it runs the program with the following strings, using the proper dictionary
|
||||
file:</p>
|
||||
<ul>
|
||||
<li><code>free software foundation</code></li>
|
||||
<li><code>obfuscated c contest</code></li>
|
||||
<li><code>unix international</code></li>
|
||||
<li><code>george bush</code></li>
|
||||
<li><code>bill clinton</code></li>
|
||||
<li><code>ross perot</code></li>
|
||||
<li><code>paul e tsongas</code></li>
|
||||
</ul>
|
||||
<p>Then it uses the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/mkdict.sh">mkdict.sh</a> script to create a dictionary file out
|
||||
of the files <a href="index.html">index.html</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/try.sh">try.sh</a> (itself) and
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/Makefile">Makefile</a> and it repeats the same commands as above. In the case no
|
||||
of the files <a href="README.md">README.md</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/try.sh">try.sh</a> (itself) and
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/Makefile">Makefile</a> and it repeats the same process as above. In the case no
|
||||
dictionary file can be found in the first step it only runs the commands once
|
||||
with the created dictionary file.</p>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
@@ -444,23 +449,23 @@ dictionaries which has been put in as <a href="https://github.com/ioccc-src/temp
|
||||
<p>Then try using the program as shown above with the file <code>words</code>.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p>The name of the game:</p>
|
||||
<p>AG is short for either Anagram Generator or simply AnaGram. It might also be
|
||||
construed to mean Alphabet Game, and by pure coincidence it happens to be the
|
||||
<p><code>AG</code> is short for either <code>Anagram Generator</code> or simply <code>AnaGram</code>. It might also be
|
||||
construed to mean <code>Alphabet Game</code>, and by pure coincidence it happens to be the
|
||||
author’s initials.</p>
|
||||
<h3 id="what-it-does">What it does</h3>
|
||||
<p>AG takes one or more words as arguments, and tries to find anagrams of those
|
||||
<p><code>AG</code> takes one or more words as arguments, and tries to find anagrams of those
|
||||
words, i.e. words or sentences containing exactly the same letters.</p>
|
||||
<h3 id="how-to-use-it">How to use it</h3>
|
||||
<p>To run AG, you need a dictionary file consisting of distinct words in the
|
||||
<p>To run <code>AG</code>, you need a dictionary file consisting of distinct words in the
|
||||
natural language of your choice, one word on each line. If your machine doesn’t
|
||||
have one already, you can make your own dictionary by concatenating a few
|
||||
hundred of your favourite Usenet articles and piping them through the following
|
||||
obfuscated shell script:</p>
|
||||
<pre><code> #!/bin/sh
|
||||
z=a-z];tr [A-Z\] \[$z|sed s/[\^$z[\^$z*/_/g|tr _ \\012|grep ..|sort -u</code></pre>
|
||||
<p>Using articles from alt.folklore.computers is likely to make
|
||||
a more professional-looking dictionary than rec.arts.erotica.</p>
|
||||
<p>AG must be run with the dictionary file as standard input.</p>
|
||||
<p>Using articles from <code>alt.folklore.computers</code> is likely to make
|
||||
a more professional-looking dictionary than <code>rec.arts.erotica</code>.</p>
|
||||
<p><code>AG</code> must be run with the dictionary file as standard input.</p>
|
||||
<p>Because anagrams consisting of just a few words are generally more
|
||||
meaningful than those consisting of dozens of very short words, the
|
||||
number of words in the anagrams is limited to 3 by default. This
|
||||
@@ -469,35 +474,35 @@ limit can be changed using a numeric command line option, as in
|
||||
<h3 id="bugs-and-limitations">Bugs and limitations</h3>
|
||||
<ul>
|
||||
<li>There is no error checking.</li>
|
||||
<li>Standard input must be seekable, so you can’t pipe the dictionary into AG.</li>
|
||||
<li>Standard input must be seekable, so you can’t pipe the dictionary into <code>AG</code>.</li>
|
||||
<li>The input sentence and each line in the dictionary may contain at most 32
|
||||
distinct letters, and each letter may occur at most 15 times.</li>
|
||||
<li>Words in the dictionary may be at most 255 bytes long.</li>
|
||||
<li>AG cannot handle characters that sign-extend to negative values.</li>
|
||||
<li>Although AG works on both 16-bit and 32-bit machines, the size of the problems
|
||||
<li><code>AG</code> cannot handle characters that sign-extend to negative values.</li>
|
||||
<li>Although <code>AG</code> works on both 16-bit and 32-bit machines, the size of the problems
|
||||
it can solve is severely limited on machines that limit the stack size to 64k or
|
||||
less.</li>
|
||||
</ul>
|
||||
<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="obfuscatory-notes">Obfuscatory notes</h3>
|
||||
<p>As you can see, AG takes advantage of the new ‘92 whitespace rules’ to
|
||||
<p>As you can see, <code>AG</code> takes advantage of the new ‘92 whitespace rules’ to
|
||||
achieve a clear, readable, self-documenting layout. The identifiers
|
||||
have been chosen in a way appropriate for an alphabet game, and common
|
||||
sources of bugs such as goto statements and malloc/free have been
|
||||
eliminated. As AG also refrains from abusing the preprocessor, it
|
||||
eliminated. As <code>AG</code> also refrains from abusing the preprocessor, it
|
||||
doesn’t really have much to offer in terms of “surface obfuscation”.
|
||||
Instead, it tries to achieve both its speed and its obscurity through a
|
||||
careful choice of algorithms. Some of the finer points of those
|
||||
algorithms are outlined the section below.</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="how-this-entry-works">How this entry works:</h3>
|
||||
<p>Here follows a description of some of the data structures and
|
||||
algorithms used by AG. It is by no means complete, but it may help
|
||||
algorithms used by <code>AG</code>. It is by no means complete, but it may help
|
||||
you get an idea about the general principles.</p>
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
<p>Internally, AG represents words and sentences as arrays of 32
|
||||
<p>Internally, <code>AG</code> represents words and sentences as arrays of 32
|
||||
4-bit integer elements. Each element represents the number of
|
||||
times a letter occurs in the word/sentence. There are 32 elements
|
||||
because 32 is a convenient power of two larger than the number of
|
||||
@@ -519,21 +524,21 @@ Thus, 32 independent 4-bit additions can be performed by just four
|
||||
iterations of a loop containing some 32-bit bitwise logical
|
||||
operations, but no arithmetic operations other than those implied
|
||||
by array indexing.</p>
|
||||
<p>Subtraction works similarly, and in fact AG only implements
|
||||
<p>Subtraction works similarly, and in fact <code>AG</code> only implements
|
||||
subtraction directly, handling addition by means of the identity
|
||||
<code>a+b = a-(0-b)</code>.</p>
|
||||
<p>In addition to this <code>32*4</code>-bit representation, AG also forms a so-called
|
||||
<p>In addition to this <code>32*4</code>-bit representation, <code>AG</code> also forms a so-called
|
||||
“signature” that is the bitwise OR of the four <code>long</code>s, which is
|
||||
equivalent to saying that the signature of a word contains a logical 1
|
||||
in the bit positions corresponding to letters occurring at least once
|
||||
in that word.</p>
|
||||
<p>The first thing AG does is to construct a lookup table of 256
|
||||
<p>The first thing <code>AG</code> does is to construct a lookup table of 256
|
||||
<code>long</code>s, one for each 8-bit character value. The entry for a
|
||||
character will be zero if that character doesn’t appear in the
|
||||
sentence given on the command line, or it will have a single bit
|
||||
set if the character does appear in the sentence. By adding
|
||||
together the bit masks for all the letters in the input sentence
|
||||
using the transpose addition method described above, AG forms the
|
||||
using the transpose addition method described above, <code>AG</code> forms the
|
||||
<code>32*4</code> bit array representation of the input sentence.</p>
|
||||
<p>The next action performed is reading the dictionary. Those words that
|
||||
contain letters not in the input sentence are immediately discarded.
|
||||
@@ -568,11 +573,11 @@ remaining letters. The depth of the recursion is limited to the
|
||||
maximum number of words in the anagram, as specified by the user.</p>
|
||||
<p>When the deepest recursion level has been reached, an optimization can
|
||||
be applied: because no further recursion will be done, there is no
|
||||
need to look for partial anagrams, and therefore AG only needs to
|
||||
need to look for partial anagrams, and therefore <code>AG</code> only needs to
|
||||
check for words that contain exactly the same letters as the current
|
||||
sentence. Those words can be found simply by indexing the hash table
|
||||
with the signature of the current sentence.</p>
|
||||
<p>Even when not on the deepest recursion level, AG generally avoids
|
||||
<p>Even when not on the deepest recursion level, <code>AG</code> generally avoids
|
||||
examining all the entries of the hash table. The idea is that we are
|
||||
not interested in hash buckets whose words contain any letters not
|
||||
in the current sentence; these buckets are exactly those whose index
|
||||
@@ -589,7 +594,7 @@ those bits that should remain zero. For example, the following
|
||||
program prints all those 16-bit integers that contain zeroes in all
|
||||
even bit positions:</p>
|
||||
<pre><code> main(){int i=0,s=0xAAAA;do{printf("%04x\t",i);}while(i=((i|~s)+1)&s);}</code></pre>
|
||||
<p>AG uses a similar method but works in the opposite direction, finding
|
||||
<p><code>AG</code> uses a similar method but works in the opposite direction, finding
|
||||
the next lower value with zeroes in given bit positions by propagating
|
||||
borrows across those bits. Some additional adjustments are made
|
||||
to the hash table index when initiating a recursive search, using
|
||||
|
||||
@@ -1128,18 +1128,29 @@ entry itself. Can you fix the actual entry? You are welcome to try and do so.</p
|
||||
<h3 id="source-code-1992gsongson.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/gson/gson.c">1992/gson/gson.c</a></h3>
|
||||
<h3 id="information-1992gsonindex.html">Information: <a href="1992/gson/index.html">1992/gson/index.html</a></h3>
|
||||
<p>Cody changed it so that the buffer size is <code>ARG_MAX+1</code> to try and get past the
|
||||
problem of <code>gets()</code> being used in a more complex way.</p>
|
||||
<p>It would be ideal if it were to use <code>fgets()</code> though. A tip on how
|
||||
<code>gets()</code> is being used from Cody:</p>
|
||||
<p>Previously it had a buffer size of 256 which could easily overflow. In this
|
||||
problem of <code>gets()</code> being used in a more complex way. It is most unlikely that
|
||||
the dictionary file will ever have a line longer than 256 but even so it would
|
||||
be ideal if the code used <code>fgets(3)</code> instead. A tip on how <code>gets(3)</code> is being
|
||||
used:</p>
|
||||
<p>Previously it had a buffer size of 256 for reading in the dictionary lines. In this
|
||||
entry <code>gets(3)</code> is used in a more complicated way: first <code>m</code> is set to <code>*++p</code> in
|
||||
a for loop where <code>p</code> is argv. Later <code>m</code> is set to point to <code>h</code> which was of size
|
||||
256. <code>gets(3)</code> is called as <code>m = gets(m)</code>) but trying to change it to use
|
||||
<code>fgets(3)</code> proved more a problem. Since the input must come from the command
|
||||
line Cody changed the buffer size to <code>ARG_MAX+1</code> which should be enough (again
|
||||
theoretically) especially since the command expects redirecting a dictionary
|
||||
file as part of the command line. This also makes it possible for longer strings
|
||||
to be read (in case the <code>gets(3)</code> was not used in a loop).</p>
|
||||
256. <code>gets(3)</code> is called as <code>m = gets(m)</code>) but trying to change it to use</p>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-15">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<p>On the other hand, the author noted the following bugs and limitations:</p>
|
||||
<ul>
|
||||
<li>There is no error checking.</li>
|
||||
<li>Standard input must be seekable, so you can’t pipe the dictionary into <code>AG</code>.</li>
|
||||
<li>The input sentence and each line in the dictionary may contain at most 32
|
||||
distinct letters, and each letter may occur at most 15 times.</li>
|
||||
<li>Words in the dictionary may be at most 255 bytes long.</li>
|
||||
<li><code>AG</code> cannot handle characters that sign-extend to negative values.</li>
|
||||
<li>Although <code>AG</code> works on both 16-bit and 32-bit machines, the size of the problems
|
||||
it can solve is severely limited on machines that limit the stack size to 64k or
|
||||
less.</li>
|
||||
</ul>
|
||||
<p>… so whether or not the <code>gets(3)</code> should be changed to <code>fgets(3)</code> is up to
|
||||
debate.</p>
|
||||
<div id="1992_kivinen">
|
||||
<h2 id="kivinen">1992/kivinen</h2>
|
||||
</div>
|
||||
@@ -1218,7 +1229,7 @@ than that. For instance this is what it looks like with clang:</p>
|
||||
<div id="1992_vern">
|
||||
<h2 id="vern">1992/vern</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-15">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-16">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1992vernvern.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/vern/vern.c">1992/vern/vern.c</a></h3>
|
||||
<h3 id="information-1992vernindex.html">Information: <a href="1992/vern/index.html">1992/vern/index.html</a></h3>
|
||||
<p>When your own checkmate is imminent it prints <code>"Har har"</code> but does not exit so
|
||||
@@ -1227,7 +1238,7 @@ it yourself through ctrl-c or killing it in some other fashion.</p>
|
||||
<div id="1992_westley">
|
||||
<h2 id="westley-3">1992/westley</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-16">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-17">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1992westleywestley.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/westley/westley.c">1992/westley/westley.c</a></h3>
|
||||
<h3 id="information-1992westleyindex.html">Information: <a href="1992/westley/index.html">1992/westley/index.html</a></h3>
|
||||
<p>Cody improved the usability of this program by making it so that as long as the
|
||||
@@ -1256,7 +1267,7 @@ it’s not a misunderstanding).</p>
|
||||
<div id="1993_ant">
|
||||
<h2 id="ant">1993/ant</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-17">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-18">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1993antant.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/ant/ant.c">1993/ant/ant.c</a></h3>
|
||||
<h3 id="information-1993antindex.html">Information: <a href="1993/ant/index.html">1993/ant/index.html</a></h3>
|
||||
<p>The author stated that:</p>
|
||||
@@ -1282,7 +1293,7 @@ system), this entry just shows a blank screen.</p>
|
||||
<div id="1993_lmfjyh">
|
||||
<h2 id="lmfjyh">1993/lmfjyh</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-18">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-19">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1993lmfjyhlmfjyh.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/lmfjyh/lmfjyh.c">1993/lmfjyh/lmfjyh.c</a></h3>
|
||||
<h3 id="information-1993lmfjyhindex.html">Information: <a href="1993/lmfjyh/index.html">1993/lmfjyh/index.html</a></h3>
|
||||
<p>This entry relied on a bug in gcc that was fixed with gcc version 2.3.3. This
|
||||
@@ -1292,7 +1303,7 @@ the index.html file for details.</p>
|
||||
<div id="1993_rince">
|
||||
<h2 id="rince">1993/rince</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-19">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-20">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1993rincerince.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/rince/rince.c">1993/rince/rince.c</a></h3>
|
||||
<h3 id="information-1993rinceindex.html">Information: <a href="1993/rince/index.html">1993/rince/index.html</a></h3>
|
||||
<p>Although the code checks if the file can be opened or not, badly formatted files
|
||||
@@ -1302,7 +1313,7 @@ through ctrl-c or such.</p>
|
||||
<div id="1993_schnitzi">
|
||||
<h2 id="schnitzi">1993/schnitzi</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-20">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-21">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1993schnitzischnitzi.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/schnitzi/schnitzi.c">1993/schnitzi/schnitzi.c</a></h3>
|
||||
<h3 id="information-1993schnitziindex.html">Information: <a href="1993/schnitzi/index.html">1993/schnitzi/index.html</a></h3>
|
||||
<p>If the file cannot be opened it will very likely segfault. This should not be
|
||||
@@ -1331,7 +1342,7 @@ question you might cause an error. For instance don’t do this:</p>
|
||||
<div id="1993_vanb">
|
||||
<h2 id="vanb">1993/vanb</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-21">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-22">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1993vanbvanb.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/vanb/vanb.c">1993/vanb/vanb.c</a></h3>
|
||||
<h3 id="information-1993vanbindex.html">Information: <a href="1993/vanb/index.html">1993/vanb/index.html</a></h3>
|
||||
<p>No spaces are allowed in the expression.</p>
|
||||
@@ -1347,7 +1358,7 @@ not <code>d-46</code>.</p>
|
||||
<div id="1994_dodsond2">
|
||||
<h2 id="dodsond2">1994/dodsond2</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-22">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-23">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1994dodsond2dodsond2.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/dodsond2/dodsond2.c">1994/dodsond2/dodsond2.c</a></h3>
|
||||
<h3 id="information-1994dodsond2index.html">Information: <a href="1994/dodsond2/index.html">1994/dodsond2/index.html</a></h3>
|
||||
<p>When you initiate shooting via the <code>s</code> command you immediately lose an arrow
|
||||
@@ -1358,7 +1369,7 @@ there.</p>
|
||||
<div id="1994_ldb">
|
||||
<h2 id="ldb">1994/ldb</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-23">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-24">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1994ldbldb.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/ldb/ldb.c">1994/ldb/ldb.c</a></h3>
|
||||
<h3 id="information-1994ldbindex.html">Information: <a href="1994/ldb/index.html">1994/ldb/index.html</a></h3>
|
||||
<p><a href="authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> fixed this to compile
|
||||
@@ -1461,7 +1472,7 @@ compiled!</p>
|
||||
<div id="1994_shapiro">
|
||||
<h2 id="shapiro">1994/shapiro</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-24">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-25">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1994shapiroshapiro.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro.c">1994/shapiro/shapiro.c</a></h3>
|
||||
<h3 id="information-1994shapiroindex.html">Information: <a href="1994/shapiro/index.html">1994/shapiro/index.html</a></h3>
|
||||
<p>This program will likely crash if the source code file (by the name of the file
|
||||
@@ -1510,7 +1521,7 @@ doesn’t break something else.</p>
|
||||
<div id="1995_cdua">
|
||||
<h2 id="cdua">1995/cdua</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-25">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-26">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1995cduacdua.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/cdua/cdua.c">1995/cdua/cdua.c</a></h3>
|
||||
<h3 id="information-1995cduaindex.html">Information: <a href="1995/cdua/index.html">1995/cdua/index.html</a></h3>
|
||||
<p>This did not originally compile under macOS and after it did compile under
|
||||
@@ -1542,7 +1553,7 @@ it would be good if it was fixed.</p>
|
||||
<div id="1995_savastio">
|
||||
<h2 id="savastio">1995/savastio</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-26">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-27">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1995savastiosavastio.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1995/savastio/savastio.c">1995/savastio/savastio.c</a></h3>
|
||||
<h3 id="information-1995savastioindex.html">Information: <a href="1995/savastio/index.html">1995/savastio/index.html</a></h3>
|
||||
<p>This program expects a POSITIVE number. If you specify a negative number it will
|
||||
@@ -1607,7 +1618,7 @@ almost be done except that some of the output of the
|
||||
<div id="1996_jonth">
|
||||
<h2 id="jonth">1996/jonth</h2>
|
||||
</div>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-27">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-28">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="source-code-1996jonthjonth.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/jonth/jonth.c">1996/jonth/jonth.c</a></h3>
|
||||
<h3 id="information-1996jonthindex.html">Information: <a href="1996/jonth/index.html">1996/jonth/index.html</a></h3>
|
||||
<p>If X is not running this program will very likely crash or do something funny.
|
||||
@@ -1650,7 +1661,7 @@ to the page as well! You’ll have 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-28">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-29">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
|
||||
@@ -1807,7 +1818,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-29">STATUS: INABIAF - please <strong>DO NOT</strong> fix</h3>
|
||||
<h3 id="status-inabiaf---please-do-not-fix-30">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
|
||||
@@ -1849,7 +1860,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-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-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>
|
||||
@@ -1867,7 +1878,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-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>
|
||||
<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
|
||||
@@ -1881,7 +1892,7 @@ fire</a>! :-) ).</p>
|
||||
<div id="2001_anonymous">
|
||||
<h2 id="anonymous">2001/anonymous</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-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
|
||||
@@ -1900,7 +1911,7 @@ elves of Imladris :-(</p>
|
||||
<div id="2001_bellard">
|
||||
<h2 id="bellard">2001/bellard</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="status-doesnt-work-with-some-platforms---please-help-us-fix">STATUS: doesn’t work with some platforms - please help us fix</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>
|
||||
@@ -1949,14 +1960,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-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-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-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="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>
|
||||
@@ -1977,7 +1988,7 @@ appreciate your help!</p>
|
||||
<div id="2001_kev">
|
||||
<h2 id="kev">2001/kev</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-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
|
||||
@@ -1995,7 +2006,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-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-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
|
||||
@@ -2011,7 +2022,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-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-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
|
||||
@@ -2179,13 +2190,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-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>
|
||||
<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-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-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>
|
||||
@@ -2210,7 +2221,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-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>
|
||||
<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
|
||||
@@ -2223,7 +2234,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-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-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.
|
||||
@@ -2237,7 +2248,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-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-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
|
||||
@@ -2246,7 +2257,7 @@ does not exist.</p>
|
||||
<div id="2005_mikeash">
|
||||
<h2 id="mikeash">2005/mikeash</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-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>
|
||||
@@ -2280,7 +2291,7 @@ for running itself.</p>
|
||||
<div id="2005_mynx">
|
||||
<h2 id="mynx">2005/mynx</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-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
|
||||
@@ -2294,7 +2305,7 @@ website</a> itself.</p>
|
||||
<div id="2005_sykes">
|
||||
<h2 id="sykes">2005/sykes</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-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>
|
||||
@@ -2335,7 +2346,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-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-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
|
||||
@@ -2344,7 +2355,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-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-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>
|
||||
@@ -2363,12 +2374,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-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>
|
||||
<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-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-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
|
||||
@@ -2376,7 +2387,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-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>
|
||||
<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>
|
||||
@@ -2393,7 +2404,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-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-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
|
||||
@@ -2440,7 +2451,7 @@ case-sensitive.</p>
|
||||
<div id="2011_borsanyi">
|
||||
<h2 id="borsanyi-1">2011/borsanyi</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-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
|
||||
@@ -2463,7 +2474,7 @@ bins at the edges.</p>
|
||||
instead being something else entirely. The Internet Wayback Machine, although it
|
||||
archived it, did not load scripts. Do you know if the domain was moved? Do you
|
||||
have an archive or mirror? Please provide us it! Thank you.</p>
|
||||
<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>
|
||||
<p>The author states the following:</p>
|
||||
<ul>
|
||||
<li><p>Bad input (e.g. nonexistent files, non-numeric number of iterations, etc.)
|
||||
@@ -2476,7 +2487,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-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-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
|
||||
@@ -2486,7 +2497,7 @@ remarks</a> instead.</p>
|
||||
<div id="2011_konno">
|
||||
<h2 id="konno">2011/konno</h2>
|
||||
</div>
|
||||
<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>
|
||||
<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>
|
||||
@@ -2655,7 +2666,7 @@ defined.</p>
|
||||
<div id="2011_vik">
|
||||
<h2 id="vik">2011/vik</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-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
|
||||
@@ -2669,7 +2680,7 @@ fire</a> :-)</p>
|
||||
<div id="2012_blakely">
|
||||
<h2 id="blakely">2012/blakely</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-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>
|
||||
@@ -2678,7 +2689,7 @@ fire</a> :-)</p>
|
||||
<div id="2012_deckmyn">
|
||||
<h2 id="deckmyn">2012/deckmyn</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-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>
|
||||
@@ -2711,7 +2722,7 @@ fire</a> :-)</p>
|
||||
<div id="2012_dlowe">
|
||||
<h2 id="dlowe-3">2012/dlowe</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-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>
|
||||
@@ -2725,7 +2736,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-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-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>
|
||||
@@ -2746,7 +2757,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-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-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
|
||||
@@ -2762,7 +2773,7 @@ fire</a> :-)</p>
|
||||
<div id="2013_cable2">
|
||||
<h2 id="cable2">2013/cable2</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-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>
|
||||
@@ -2782,7 +2793,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-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-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
|
||||
@@ -2801,7 +2812,7 @@ used.</li>
|
||||
<div id="2013_endoh1">
|
||||
<h2 id="endoh1">2013/endoh1</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-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>
|
||||
@@ -2817,7 +2828,7 @@ used.</li>
|
||||
<div id="2013_endoh3">
|
||||
<h2 id="endoh3">2013/endoh3</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-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>
|
||||
@@ -2830,14 +2841,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-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-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-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-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
|
||||
@@ -2845,7 +2856,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-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-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
|
||||
@@ -2862,7 +2873,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-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-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.
|
||||
@@ -2886,7 +2897,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-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-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>
|
||||
@@ -2927,7 +2938,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-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-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>
|
||||
@@ -2971,7 +2982,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-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-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
|
||||
@@ -2980,7 +2991,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-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-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
|
||||
@@ -3013,7 +3024,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-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-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>
|
||||
@@ -3032,7 +3043,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-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-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>
|
||||
@@ -3057,7 +3068,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-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>
|
||||
<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>
|
||||
@@ -3072,7 +3083,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-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-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>
|
||||
@@ -3122,7 +3133,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-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>
|
||||
<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
|
||||
@@ -3130,7 +3141,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-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-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
|
||||
@@ -3138,7 +3149,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-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-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
|
||||
@@ -3170,7 +3181,7 @@ ideal if this was not the case.</p>
|
||||
<div id="2019_duble">
|
||||
<h2 id="duble">2019/duble</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-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>
|
||||
@@ -3199,7 +3210,7 @@ in the directory:</p>
|
||||
<div id="2019_endoh">
|
||||
<h2 id="endoh">2019/endoh</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-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
|
||||
@@ -3207,7 +3218,7 @@ touched either.</p>
|
||||
<div id="2019_karns">
|
||||
<h2 id="karns">2019/karns</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-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>
|
||||
@@ -3237,7 +3248,7 @@ touched either.</p>
|
||||
<div id="2019_lynn">
|
||||
<h2 id="lynn">2019/lynn</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-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
|
||||
@@ -3247,7 +3258,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-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-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
|
||||
@@ -3267,7 +3278,7 @@ a crash.</p>
|
||||
<div id="2019_poikola">
|
||||
<h2 id="poikola">2019/poikola</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-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
|
||||
@@ -3276,7 +3287,7 @@ erroneously.</p>
|
||||
<div id="2019_yang">
|
||||
<h2 id="yang">2019/yang</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-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>
|
||||
@@ -3291,7 +3302,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-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-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
|
||||
@@ -3302,7 +3313,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-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-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
|
||||
@@ -3316,7 +3327,7 @@ move.</p>
|
||||
<div id="2020_ferguson1">
|
||||
<h2 id="ferguson1">2020/ferguson1</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-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
|
||||
@@ -3326,7 +3337,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-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-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
|
||||
@@ -3335,7 +3346,7 @@ audio channels.</p>
|
||||
<div id="2020_otterness">
|
||||
<h2 id="otterness">2020/otterness</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-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>
|
||||
|
||||
@@ -1071,22 +1071,34 @@ entry itself. Can you fix the actual entry? You are welcome to try and do so.
|
||||
### Information: [1992/gson/index.html](1992/gson/index.html)
|
||||
|
||||
Cody changed it so that the buffer size is `ARG_MAX+1` to try and get past the
|
||||
problem of `gets()` being used in a more complex way.
|
||||
problem of `gets()` being used in a more complex way. It is most unlikely that
|
||||
the dictionary file will ever have a line longer than 256 but even so it would
|
||||
be ideal if the code used `fgets(3)` instead. A tip on how `gets(3)` is being
|
||||
used:
|
||||
|
||||
It would be ideal if it were to use `fgets()` though. A tip on how
|
||||
`gets()` is being used from Cody:
|
||||
|
||||
Previously it had a buffer size of 256 which could easily overflow. In this
|
||||
Previously it had a buffer size of 256 for reading in the dictionary lines. In this
|
||||
entry `gets(3)` is used in a more complicated way: first `m` is set to `*++p` in
|
||||
a for loop where `p` is argv. Later `m` is set to point to `h` which was of size
|
||||
256\. `gets(3)` is called as `m = gets(m)`) but trying to change it to use
|
||||
`fgets(3)` proved more a problem. Since the input must come from the command
|
||||
line Cody changed the buffer size to `ARG_MAX+1` which should be enough (again
|
||||
theoretically) especially since the command expects redirecting a dictionary
|
||||
file as part of the command line. This also makes it possible for longer strings
|
||||
to be read (in case the `gets(3)` was not used in a loop).
|
||||
|
||||
|
||||
### STATUS: INABIAF - please **DO NOT** fix
|
||||
|
||||
On the other hand, the author noted the following bugs and limitations:
|
||||
|
||||
- There is no error checking.
|
||||
- Standard input must be seekable, so you can't pipe the dictionary into `AG`.
|
||||
- The input sentence and each line in the dictionary may contain at most 32
|
||||
distinct letters, and each letter may occur at most 15 times.
|
||||
- Words in the dictionary may be at most 255 bytes long.
|
||||
- `AG` cannot handle characters that sign-extend to negative values.
|
||||
- Although `AG` works on both 16-bit and 32-bit machines, the size of the problems
|
||||
it can solve is severely limited on machines that limit the stack size to 64k or
|
||||
less.
|
||||
|
||||
... so whether or not the `gets(3)` should be changed to `fgets(3)` is up to
|
||||
debate.
|
||||
|
||||
|
||||
<div id="1992_kivinen">
|
||||
## 1992/kivinen
|
||||
|
||||
@@ -1735,11 +1735,6 @@ included in their remarks. See the index.html for its purpose. It was NOT fixed
|
||||
for <a href="https://www.shellcheck.net">ShellCheck</a>
|
||||
because the author deliberately obfuscated it so <strong>PLEASE <em>DO NOT</em> FIX THIS OR
|
||||
MODERNISE IT</strong>.</p>
|
||||
<p>Cody also changed the buffer size in such a way that <code>gets(3)</code> should be safe
|
||||
(well, theoretically) as it comes from the command line (though it can also read input
|
||||
from <code>stdin</code> after starting the program). Ideally <code>fgets(3)</code> would be used but this
|
||||
is a more problematic. See <a href="bugs.html#1992_gson">1992/gson in bugs.html</a> for more
|
||||
details if you’re interested in trying to understand it (or fix?).</p>
|
||||
<div id="1992_imc">
|
||||
<h2 id="winning-entry-1992imc">Winning entry: <a href="1992/imc/index.html">1992/imc</a></h2>
|
||||
<h3 id="winning-entry-source-code-imc.c">Winning entry source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1992/imc/imc.c">imc.c</a></h3>
|
||||
|
||||
@@ -1932,12 +1932,6 @@ for [ShellCheck](https://www.shellcheck.net)
|
||||
because the author deliberately obfuscated it so **PLEASE *DO NOT* FIX THIS OR
|
||||
MODERNISE IT**.
|
||||
|
||||
Cody also changed the buffer size in such a way that `gets(3)` should be safe
|
||||
(well, theoretically) as it comes from the command line (though it can also read input
|
||||
from `stdin` after starting the program). Ideally `fgets(3)` would be used but this
|
||||
is a more problematic. See [1992/gson in bugs.html](bugs.html#1992_gson) for more
|
||||
details if you're interested in trying to understand it (or fix?).
|
||||
|
||||
|
||||
<div id="1992_imc">
|
||||
## Winning entry: [1992/imc](1992/imc/index.html)
|
||||
|
||||
Reference in new issue
Block a user