diff --git a/1992/README.md b/1992/README.md index f418053bc..67769d94c 100644 --- a/1992/README.md +++ b/1992/README.md @@ -27,9 +27,9 @@ high quality. FYI: By tradition, we do not record the count of the number entries, nor do we give our our guess as to the number of entries -received. For folks who wonder, we can say that we consumed -about 2000 pages of output (printing between 2 and 4 normal -pages per side) during the judging process this year. +received. For folks who wonder, we can say that **we consumed +about _2000 pages of output_ (printing between 2 and 4 normal +pages per side)** during the judging process this year. The new instructions for submitting entries worked well - we were able to write scripts to unpack them and eliminate duplicates. @@ -49,7 +49,7 @@ a winning entry for the past 6 years! ## A few notes regarding future contests: We did not give awards to some traditional contest categories such as -"Best Layout". We felt that to do so would deny awards to more +"_Best Layout_". We felt that to do so would deny awards to more deserving entries. These categories have not been eliminated. We will likely be awarding them in future years. @@ -59,10 +59,11 @@ judging process a little harder, so we may request that this not be done this in the future. Some thought has been given to a separate obfuscated perl contest. -Watch comp.lang.perl for details! +Watch _comp.lang.perl_ for details! -Be sure to wait until the 1993 rules are posted before submitting entries. -We may fine tune the rules to reflect the some ideas above. +Be sure to wait until the [1993 rules](../1993/rules.txt) are posted before +submitting entries. We may fine tune the rules to reflect some of the ideas +above. Please send us comments and suggestions what we have expressed above. Also include anything else that you would like to see in future contests. diff --git a/1992/adrian/README.md b/1992/adrian/README.md index 3a5596293..13e36bf71 100644 --- a/1992/adrian/README.md +++ b/1992/adrian/README.md @@ -10,7 +10,6 @@ The current status of this entry is: ``` - STATUS: known bug - please help us fix STATUS: INABIAF - please **DO NOT** fix ``` @@ -262,7 +261,7 @@ the program will print the error message: ``` (The exact text of the above error messages varies from machine to -machine.) The four programs which read from stdin require lines +machine.) The four programs which read from `stdin` require lines shorter than 999 characters. The other info files are `adrian.grep.[1-6]` which contain the six diff --git a/1992/adrian/index.html b/1992/adrian/index.html index 89b3a00ea..8130f5db9 100644 --- a/1992/adrian/index.html +++ b/1992/adrian/index.html @@ -405,8 +405,7 @@ Location: US - United States of America
    make all

Bugs and (Mis)features:

The current status of this entry is:

-
    STATUS: known bug - please help us fix
-    STATUS: INABIAF - please **DO NOT** fix
+
    STATUS: INABIAF - please **DO NOT** fix

For more detailed information see 1992/adrian in bugs.html.

Try:

    ./try.sh
@@ -539,7 +538,7 @@ many seconds.

the program will print the error message:

    Segmentation fault (core dumped)

(The exact text of the above error messages varies from machine to -machine.) The four programs which read from stdin require lines +machine.) The four programs which read from stdin require lines shorter than 999 characters.

The other info files are adrian.grep.[1-6] which contain the six examples that appear above, and from, which is used to emulate the diff --git a/1992/albert/README.md b/1992/albert/README.md index 46a367251..f4bd41b68 100644 --- a/1992/albert/README.md +++ b/1992/albert/README.md @@ -39,22 +39,20 @@ An alternate version of this entry, [albert.alt.c](%%REPO_URL%%/1992/albert/albe Leo Broukhis, before he was an IOCCC judge, sent the IOCCC judges this Email message: -``` - From: leo _at_ zycad -dot- com (Leo Broukhis) - Date: Tue, 30 Jan 96 17:37:51 PST - To: judges _at_ toad -dot- com - Subject: IOCCC 1992 - a bug - - Dear Judges, - - albert.c (even in its fixed form) still has a bug. Although I don't - remember the number that exposed the bug (afair, resulting in coredump) - in albert.orig.c that has been fixed in albert.c, - - I've found a number exposing another bug: 10000000001 (that's 9 0's). - Both albert and albert.orig loop without printing anything, although - the first factor is 101 and is usually found in an instant. -``` +> From: leo _at_ zycad -dot- com (Leo Broukhis)
+> Date: Tue, 30 Jan 96 17:37:51 PST
+> To: judges _at_ toad -dot- com
+> Subject: IOCCC 1992 - a bug
+> +> Dear Judges, +> +> `albert.c` (even in its fixed form) still has a bug. Although I don't +> remember the number that exposed the bug (afair, resulting in coredump) +> in `albert.orig.c` that has been fixed in `albert.c`, +> +> I've found a number exposing another bug: 10000000001 (that's 9 0's). +> Both albert and albert.orig loop without printing anything, although +> the first factor is 101 and is usually found in an instant. The [albert.alt.c](%%REPO_URL%%/1992/albert/albert.alt.c) file is the fixed file, whereas the [albert.c](%%REPO_URL%%/1992/albert/albert.c) is the file before applying Leo Broukhis' fix. @@ -155,7 +153,7 @@ for some years. recursion and is quite jumpy. This program shares these disadvantages in a modified form. 4. The Conversion is to be found in Knuth, not so the Observation. The -Observation: "if it ends in a zero, it is divisible by ten". +Observation: "_if it ends in a zero, it is divisible by ten_". make first ``` -Second: +**Second**: ``` # get help: @@ -27,13 +27,13 @@ Second: cat third demo5.th | ./first ``` -Third: +**Third**: ``` cat third help.th - | ./first ``` -NOTE: Wait until 'Ok' is printed and the type: +**NOTE**: Wait until `Ok` is printed and the type: ``` 2 3 + . cr @@ -41,7 +41,7 @@ NOTE: Wait until 'Ok' is printed and the type: Yes you should really type the 2 letters: `cr`. -Fourth: +**Fourth**: ``` Sorry, this is third! diff --git a/1992/buzzard.2/index.html b/1992/buzzard.2/index.html index a86c91b24..7aa9e9979 100644 --- a/1992/buzzard.2/index.html +++ b/1992/buzzard.2/index.html @@ -406,21 +406,21 @@ Location: US - United States of America

There is an alternate version of this program. See Alternate code below for details.

To use:

-

First, you must make sure that first is made first (even though make all -should make first first :-) ):

+

First, you must make sure that first is made first (even though make all +should make first first :-) ):

    make first
-

Second:

+

Second:

    # get help:
     echo help | cat third help.th - | ./first
 
     # try out a demo:
     cat third demo5.th | ./first
-

Third:

+

Third:

    cat third help.th - | ./first
-

NOTE: Wait until ‘Ok’ is printed and the type:

+

NOTE: Wait until Ok is printed and the type:

    2 3 + . cr

Yes you should really type the 2 letters: cr.

-

Fourth:

+

Fourth:

    Sorry, this is third!

Try:

    ./try.sh
diff --git a/1992/gson/README.md b/1992/gson/README.md index 2cad12a1a..0361f0e30 100644 --- a/1992/gson/README.md +++ b/1992/gson/README.md @@ -4,8 +4,8 @@ make all ``` -NOTE: we DISABLE the optimiser because having it enabled causes some invocations -to crash in some systems. +**NOTE**: we **FORCE DISABLE** the optimiser because having it enabled causes +some invocations to crash in some systems. ### Bugs and (Mis)features: diff --git a/1992/gson/index.html b/1992/gson/index.html index 00bd3dc57..16a6e31a9 100644 --- a/1992/gson/index.html +++ b/1992/gson/index.html @@ -403,8 +403,8 @@ Location: FI - Republic of Finland

To build:

    make all
-

NOTE: we DISABLE the optimiser because having it enabled causes some invocations -to crash in some systems.

+

NOTE: we FORCE DISABLE the optimiser because having it enabled causes +some invocations to crash in some systems.

Bugs and (Mis)features:

The current status of this entry is:

    STATUS: uses gets() - change to fgets() if possible
diff --git a/1992/imc/README.md b/1992/imc/README.md index 38b87c9f7..23e766878 100644 --- a/1992/imc/README.md +++ b/1992/imc/README.md @@ -27,7 +27,7 @@ To see a number of options and configurations: ## Judges' remarks: The program is more interesting to run on workstations that can make use of a -Sun raster file. Others can make use of the -text flag for character oriented +Sun raster file. Others can make use of the `-text` flag for character oriented output. Of course, the source (layout) is self-documenting! :-) @@ -97,10 +97,10 @@ may be preceded with a minus sign (or any character in `[!-/]`) and may be followed by other letters, so for example: -- m -- \-m -- mask -- \*mail +- `m` +- `-m` +- `mask` +- `*mail` all mean the same thing. Most options may be followed by one or two @@ -108,10 +108,10 @@ numbers. These numbers may be separated from each other and from the option by a space, or may be joined to each other with a comma, or may be appended to the single-letter option, so -- \-s100,200 -- size 100,200 -- \-size123 100 200 -- s100 200 +- `-s100,200` +- `size 100,200` +- `-size123 100 200` +- `s100 200` all mean the same (note that in `-size123` all characters following the initial `s` are ignored). Numbers need not be specified, as each has a diff --git a/1992/imc/index.html b/1992/imc/index.html index 933996a40..7481b0e7e 100644 --- a/1992/imc/index.html +++ b/1992/imc/index.html @@ -413,7 +413,7 @@ Location: GB - United Kingdom of Great
    ./try.sh

Judges’ remarks:

The program is more interesting to run on workstations that can make use of a -Sun raster file. Others can make use of the -text flag for character oriented +Sun raster file. Others can make use of the -text flag for character oriented output.

Of course, the source (layout) is self-documenting! :-)

NOTE: The original winning source assumed that exit(3) returned a value which @@ -468,20 +468,20 @@ with small characters having a square aspect ratio.

may be preceded with a minus sign (or any character in [!-/]) and may be followed by other letters, so for example:

    -
  • m
  • -
  • -m
  • -
  • mask
  • -
  • *mail
  • +
  • m
  • +
  • -m
  • +
  • mask
  • +
  • *mail

all mean the same thing. Most options may be followed by one or two numbers. These numbers may be separated from each other and from the option by a space, or may be joined to each other with a comma, or may be appended to the single-letter option, so

    -
  • -s100,200
  • -
  • size 100,200
  • -
  • -size123 100 200
  • -
  • s100 200
  • +
  • -s100,200
  • +
  • size 100,200
  • +
  • -size123 100 200
  • +
  • s100 200

all mean the same (note that in -size123 all characters following the initial s are ignored). Numbers need not be specified, as each has a diff --git a/1992/index.html b/1992/index.html index f4f305672..6a705e62b 100644 --- a/1992/index.html +++ b/1992/index.html @@ -410,9 +410,9 @@ years. The new size rules size probably contributed to the overall high quality.

FYI: By tradition, we do not record the count of the number entries, nor do we give our our guess as to the number of entries -received. For folks who wonder, we can say that we consumed -about 2000 pages of output (printing between 2 and 4 normal -pages per side) during the judging process this year.

+received. For folks who wonder, we can say that we consumed +about 2000 pages of output (printing between 2 and 4 normal +pages per side) during the judging process this year.

The new instructions for submitting entries worked well - we were able to write scripts to unpack them and eliminate duplicates.

As promised last year, we accepted programs that made use of the X @@ -426,7 +426,7 @@ as you are to see who has won. Even so, it is worth noting that a winning entry for the past 6 years!

A few notes regarding future contests:

We did not give awards to some traditional contest categories such as -“Best Layout”. We felt that to do so would deny awards to more +“Best Layout”. We felt that to do so would deny awards to more deserving entries. These categories have not been eliminated. We will likely be awarding them in future years.

We received a few entries whose instructions were rot13’d. While @@ -434,9 +434,10 @@ nothing was said about this in the rules, we found that it made the judging process a little harder, so we may request that this not be done this in the future.

Some thought has been given to a separate obfuscated perl contest. -Watch comp.lang.perl for details!

-

Be sure to wait until the 1993 rules are posted before submitting entries. -We may fine tune the rules to reflect the some ideas above.

+Watch comp.lang.perl for details!

+

Be sure to wait until the 1993 rules are posted before +submitting entries. We may fine tune the rules to reflect some of the ideas +above.

Please send us comments and suggestions what we have expressed above. Also include anything else that you would like to see in future contests. Send such email to:

diff --git a/1992/marangon/README.md b/1992/marangon/README.md index af034cf1f..8e7e82e11 100644 --- a/1992/marangon/README.md +++ b/1992/marangon/README.md @@ -22,10 +22,11 @@ NOTE: Some compilers have had trouble optimizing this entry. NOTE: Some systems need to compile with `-ltermcap` as well as `-lcurses`. -NOTE: The original winning source [marangon.orig.c](%%REPO_URL%%/1992/marangon/marangon.orig.c), found in -the archive directory, assumed that `exit(3)` returns a value which cause -problems for some systems where `exit(3)` returns a `void`. The file -[marangon.c](%%REPO_URL%%/1992/marangon/marangon.c) avoids this problem. +NOTE: The original winning source +[marangon.orig.c](%%REPO_URL%%/1992/marangon/marangon.orig.c) assumed that +`exit(3)` returns a value which cause problems for some systems where `exit(3)` +returns a `void`. The file [marangon.c](%%REPO_URL%%/1992/marangon/marangon.c) +avoids this problem. ## Author's remarks: diff --git a/1992/marangon/index.html b/1992/marangon/index.html index c4056c700..48c3f76c2 100644 --- a/1992/marangon/index.html +++ b/1992/marangon/index.html @@ -411,10 +411,11 @@ numbers as needed. It is the side effects that get you into trouble. If you are not careful, you may find things “at 6’s and 7’s”. :-)

NOTE: Some compilers have had trouble optimizing this entry.

NOTE: Some systems need to compile with -ltermcap as well as -lcurses.

-

NOTE: The original winning source marangon.orig.c, found in -the archive directory, assumed that exit(3) returns a value which cause -problems for some systems where exit(3) returns a void. The file -marangon.c avoids this problem.

+

NOTE: The original winning source +marangon.orig.c assumed that +exit(3) returns a value which cause problems for some systems where exit(3) +returns a void. The file marangon.c +avoids this problem.

Author’s remarks:

It starts off by creating a table with number 5 in all places. The CPU melts the numbers and you must return them in original state. When you increase a diff --git a/bugs.html b/bugs.html index 993dce24b..9f8a57222 100644 --- a/bugs.html +++ b/bugs.html @@ -1063,7 +1063,7 @@ changes it to use fprintf() on the file (which, incidentally, is op read only mode which is another reason) with the %s specifier it will make adhead not work: it’ll print nothing at all! So this code should not be changed either even if it appears to be wrong. Notice too a curious thing: if -you did change it to fprintf, even if you have the right number of args, you’d +you did change it to fprintf(), even if you have the right number of args, you’d have to remove the outer () pair.

1992/albert

@@ -1072,20 +1072,19 @@ have to remove the outer () pair.

Source code: 1992/albert/albert.c

Information: 1992/albert/index.html

Leo Broukhis, before he was an IOCCC judge, sent the IOCCC judges an email:

-
    From: leo _at_ zycad -dot- com (Leo Broukhis)
-    Date: Tue, 30 Jan 96 17:37:51 PST
-    To: judges _at_ toad -dot- com
-    Subject: IOCCC 1992 - a bug
-
-    Dear Judges,
-
-    albert.c (even in its fixed form) still has a bug. Although I don't
-    remember the number that exposed the bug (afair, resulting in coredump)
-    in albert.orig.c that has been fixed in albert.c,
-
-     've found a number exposing another bug: 10000000001 (that's 9 0's).
-    Both albert and albert.orig loop without printing anything, although
-    the first factor is 101 and is usually found in an instant.
+
+

From: leo at zycad -dot- com (Leo Broukhis)
+Date: Tue, 30 Jan 96 17:37:51 PST
+To: judges at toad -dot- com
+Subject: IOCCC 1992 - a bug

+

Dear Judges,

+

albert.c (even in its fixed form) still has a bug. Although I don’t +remember the number that exposed the bug (afair, resulting in coredump) +in albert.orig.c that has been fixed in albert.c,

+

I’ve found a number exposing another bug: 10000000001 (that’s 9 0’s). +Both albert and albert.orig loop without printing anything, although +the first factor is 101 and is usually found in an instant.

+

A quick debugging session from Cody suggests that the problem with this value is that:

    if ( ppp->qq!=48 ) return;
@@ -1116,8 +1115,7 @@ entry itself. Can you fix the actual entry? You are welcome to try and do so.

Information: 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.

-

It would be ideal if it were to use fgets() though. This will probably be -looked at later but you’re welcome to try and fix this too! A tip on how +

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 entry gets(3) is used in a more complicated way: first m is set to *++p in @@ -1210,7 +1208,7 @@ than that. For instance this is what it looks like with clang:

Source code: 1992/vern/vern.c

Information: 1992/vern/index.html

When your own checkmate is imminent it prints "Har har" but does not exit so -it can ‘rub your nose in defeat’, as the author puts it. You will have to exit +it can ‘rub your nose in defeat’, as the author puts it. You will have to exit it yourself through ctrl-c or killing it in some other fashion.

1992/westley

diff --git a/bugs.md b/bugs.md index 8296e1b44..16ec011d5 100644 --- a/bugs.md +++ b/bugs.md @@ -975,7 +975,7 @@ changes it to use `fprintf()` on the file (which, incidentally, is opened in read only mode which is another reason) with the `%s` specifier it will make `adhead` not work: it'll print nothing at all! So this code should not be changed either even if it appears to be wrong. Notice too a curious thing: if -you did change it to fprintf, even if you have the right number of args, you'd +you did change it to `fprintf()`, even if you have the right number of args, you'd have to remove the outer `()` pair. @@ -990,22 +990,22 @@ have to remove the outer `()` pair. Leo Broukhis, before he was an IOCCC judge, sent the IOCCC judges an email: -``` - From: leo _at_ zycad -dot- com (Leo Broukhis) - Date: Tue, 30 Jan 96 17:37:51 PST - To: judges _at_ toad -dot- com - Subject: IOCCC 1992 - a bug - Dear Judges, +> From: leo _at_ zycad -dot- com (Leo Broukhis)
+> Date: Tue, 30 Jan 96 17:37:51 PST
+> To: judges _at_ toad -dot- com
+> Subject: IOCCC 1992 - a bug
+> +> Dear Judges, +> +> `albert.c` (even in its fixed form) still has a bug. Although I don't +> remember the number that exposed the bug (afair, resulting in coredump) +> in `albert.orig.c` that has been fixed in `albert.c`, +> +> I've found a number exposing another bug: 10000000001 (that's 9 0's). +> Both albert and albert.orig loop without printing anything, although +> the first factor is 101 and is usually found in an instant. - albert.c (even in its fixed form) still has a bug. Although I don't - remember the number that exposed the bug (afair, resulting in coredump) - in albert.orig.c that has been fixed in albert.c, - - 've found a number exposing another bug: 10000000001 (that's 9 0's). - Both albert and albert.orig loop without printing anything, although - the first factor is 101 and is usually found in an instant. -``` A quick debugging session from Cody suggests that the problem with this value @@ -1057,8 +1057,7 @@ entry itself. Can you fix the actual entry? You are welcome to try and do so. 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. -It would be ideal if it were to use `fgets()` though. This will probably be -looked at later but you're welcome to try and fix this too! A tip on how +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 @@ -1182,7 +1181,7 @@ Can you help us? ### Information: [1992/vern/index.html](1992/vern/index.html) When your own checkmate is imminent it prints `"Har har"` but does not exit so -it can 'rub your nose in defeat', as the author puts it. You will have to exit +it can '_rub your nose in defeat_', as the author puts it. You will have to exit it yourself through ctrl-c or killing it in some other fashion. diff --git a/thanks-for-help.html b/thanks-for-help.html index e96469b23..992dd6960 100644 --- a/thanks-for-help.html +++ b/thanks-for-help.html @@ -1668,6 +1668,7 @@ return void.

Cody also added the try.sh and try.alt.sh scripts that correspond to the entry and the alternate code.

+

Even so, check 1992/albert in bugs.html.

Winning entry: 1992/ant

Winning entry source code: ant.c

@@ -1756,7 +1757,8 @@ changing this. See FAQ 4.6 - Why was arg count and/or type changed in main() in some older entries? for more details.

Yusuke also noted that there is a bug in the program where right after starting -it moves towards the right but if you click the mouse it goes back.

+it moves towards the right but if you click the mouse it goes back. See +1992/kivinen in bugs.html for more details.

Winning entry: 1992/lush

Winning entry source code: lush.c

@@ -1809,8 +1811,7 @@ it used to be.

Winning entry source code: westley.c

Cody fixed this to work for clang by changing the third and fourth arg of -main() to be char ** insidemain();clangrequires args 2 - 4 to bechar -** and some versions do not even allow a fourth arg.

+main() to be char ** inside main(); clang requires args 2 - 4 to be char ** and some versions do not even allow a fourth arg.

He also added the alternate version that the author gave in the remarks that is specifically for the USA rather than the world. This had to be fixed for clang as well to make the args of main() be the correct type and by moving the body diff --git a/thanks-for-help.md b/thanks-for-help.md index b80c3eae9..0b49e1af3 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -1841,6 +1841,8 @@ Cody also added the [try.sh](%%REPO_URL%%/1992/albert/try.sh) and [try.alt.sh](%%REPO_URL%%/1992/albert/try.alt.sh) scripts that correspond to the entry and the alternate code. +Even so, check [1992/albert in bugs.html](bugs.html#1992_albert). +

## Winning entry: [1992/ant](1992/ant/index.html) @@ -1960,7 +1962,8 @@ entries?](faq.html#faq4_6) for more details. Yusuke also noted that there is a bug in the program where right after starting -it moves towards the right but if you click the mouse it goes back. +it moves towards the right but if you click the mouse it goes back. See +[1992/kivinen in bugs.html](bugs.html#1992_kivinen) for more details.
@@ -2035,8 +2038,8 @@ it used to be.
[Cody](#cody) fixed this to work for `clang` by changing the third and fourth arg of -`main()` to be `char ** inside `main()`; `clang` requires args 2 - 4 to be `char -** and some versions do not even allow a fourth arg. +`main()` to be `char **` inside `main()`; `clang` requires args 2 - 4 to be `char +**` and some versions do not even allow a fourth arg. He also added the alternate version that the author gave in the remarks that is specifically for the USA rather than the world. This had to be fixed for `clang`