diff --git a/2001/anonymous/README.md b/2001/anonymous/README.md
index 800329350..0c2ffce1b 100644
--- a/2001/anonymous/README.md
+++ b/2001/anonymous/README.md
@@ -6,7 +6,7 @@
The programs that this program is supposed to act on,
[anonymous.ten.c](%%REPO_URL%%/2001/anonymous/anonymous.ten.c) and [anonymous.bed.c](%%REPO_URL%%/2001/anonymous/anonymous.bed.c),
-compiled with `make`, MUST be compiled as 32-bit ELF binaries. In the case that
+compiled with `make`, **MUST** be compiled as **32-bit ELF binaries**. In the case that
this fails these programs will be compiled as 64-bit binaries as alternate code,
`anonymous.ten.alt` and `anonymous.bed.alt`, ELF or otherwise. However trying to
use the entry on these files will fail. See [Alternate code](#alternate-code)
@@ -38,7 +38,7 @@ For more detailed information see [2001/anonymous in bugs.html](../../bugs.html#
./anonymous anonymous.bed # if able to compile as a 32-bit (-m32) ELF binary
```
-NOTE: if the 32-bit version cannot be compiled the script will at least compile
+**NOTE**: if the 32-bit version cannot be compiled the script will at least compile
[anonymous.ten](%%REPO_URL%%/2001/anonymous/anonymous.ten.c) as a 64-bit program (or whatever your system is
set to) and run it directly.
@@ -196,7 +196,7 @@ global state, and the other doesn't.
There is also quite a nice trick where I wave a magic wand, and a chunk of code
which should only be run when the program is run for the first time (setting the
-[PC / IP](https://en.wikipedia.org/wiki/Program_counter) to point at `main()`
+[PC/IP](https://en.wikipedia.org/wiki/Program_counter) to point at `main()`
etc.) gets turned into a The programs that this program is supposed to act on,
anonymous.ten.c and anonymous.bed.c,
-compiled with NOTE: if the 32-bit version cannot be compiled the script will at least compile
+ NOTE: if the 32-bit version cannot be compiled the script will at least compile
anonymous.ten as a 64-bit program (or whatever your system is
set to) and run it directly. What happens if the x86 program has already been modified by this program? The
@@ -537,7 +537,7 @@ local variables which shadow global variables: so one modifies the
global state, and the other doesn’t. There is also quite a nice trick where I wave a magic wand, and a chunk of code
which should only be run when the program is run for the first time (setting the
-PC / IP to point at frogstring. The C compiler sees a string by
itself in the code, thinks "yup, that's a valid C expression", and quietly moves
on to the next line of code.
@@ -231,7 +231,7 @@ new set of switches, and the call to `execv(3)` asks for the newly compiled
program to be executed. I would point out that almost every other entry to this
competition also require a C compiler (well, the published winning entries at any rate,
and I recognize that a few don't). There is little real difference between this
-program and one like last year's entry [dhyang](%%REPO_URL%%/2000/dhyang/dhyang.c); both are
+program and one like last year's entry [dhyang](../../2000/dhyang/index.html); both are
just C programs that generate C code as their output.
Enjoy and thanks!
diff --git a/2001/anonymous/index.html b/2001/anonymous/index.html
index 7f42874a8..ae897fe14 100644
--- a/2001/anonymous/index.html
+++ b/2001/anonymous/index.html
@@ -411,7 +411,7 @@ Location: GB - United Kingdom of Great
makemake, MUST be compiled as 32-bit ELF binaries. In the case that
+compiled with make, MUST be compiled as 32-bit ELF binaries. In the case that
this fails these programs will be compiled as 64-bit binaries as alternate code,
anonymous.ten.alt and anonymous.bed.alt, ELF or otherwise. However trying to
use the entry on these files will fail. See Alternate code
@@ -429,7 +429,7 @@ whatever your system will compile them as).
- ./try.sh
./anonymous anonymous.bed # if able to compile as a 32-bit (-m32) ELF binarymain()
+PC/IP to point at main()
etc.) gets turned into a frogstring. The C compiler sees a string by
itself in the code, thinks “yup, that’s a valid C expression”, and quietly moves
on to the next line of code.execv(3) asks for the newly co
program to be executed. I would point out that almost every other entry to this
competition also require a C compiler (well, the published winning entries at any rate,
and I recognize that a few don’t). There is little real difference between this
-program and one like last year’s entry dhyang; both are
+program and one like last year’s entry dhyang; both are
just C programs that generate C code as their output.
Enjoy and thanks!
make
-There is an alternate version with vi(m) key movements. See alternate
+ There is an alternate version with vi(m) key movements. See Alternate
code below. There is an alternate version based on the author’s remarks. See alternate
+ There is an alternate version based on the author’s remarks. See Alternate
code below for more details. The current status of this entry is: A: When compiled with suggest parentheses around The To use:
diff --git a/2001/dgbeards/README.md b/2001/dgbeards/README.md
index 0fae3939e..bf64669e3 100644
--- a/2001/dgbeards/README.md
+++ b/2001/dgbeards/README.md
@@ -4,7 +4,7 @@
make
```
-There is an alternate version based on the author's remarks. See [alternate
+There is an alternate version based on the author's remarks. See [Alternate
code](#alternate-code) below for more details.
@@ -221,13 +221,11 @@ this is not so.
A: When compiled with `gcc -Wall`, the compiler generated the following
warnings:
-```
- suggest parentheses around + or - in operand of &
- array subscript has type 'char'
- return type defaults to 'int'
- control reaches end of non-void function
- value computed is not used
-```
+> suggest parentheses around `+` or `-` in operand of `&` ./ctk
+> array subscript has type '`char`'
+> return type defaults to '`int`'
+> control reaches end of non-void function
+> value computed is not used
The `value computed is not used` warning happens because I use the `&&`
operator and take advantage of short circuit evaluation instead of using
@@ -248,7 +246,7 @@ appropriate sportsmanship for a program of this genre and can think of
no worse job than trying to find an elusive bug in an intentionally
obfuscated program.
-[Judge's note: This was followed by a description of the bug, and
+[**Judges' note**: This was followed by a description of the bug, and
the comment:]
Note, if this program wins, the author thinks it would be good to leave
diff --git a/2001/dgbeards/index.html b/2001/dgbeards/index.html
index 1923950b7..67c728c98 100644
--- a/2001/dgbeards/index.html
+++ b/2001/dgbeards/index.html
@@ -409,7 +409,7 @@ Location: US - United States of America
To build:
- makeBugs and (Mis)features:
Q: What about the compiler warnings?
gcc -Wall, the compiler generated the following
warnings:
+ suggest parentheses around + or - in operand of &
- array subscript has type 'char'
- return type defaults to 'int'
- control reaches end of non-void function
- value computed is not used
+
+ or - in operand of &
+array subscript has type ‘char’
+return type defaults to ‘int’
+control reaches end of non-void function
+value computed is not usedvalue computed is not used warning happens because I use the &&
operator and take advantage of short circuit evaluation instead of using
an if() statement.
[Judge’s note: This was followed by a description of the bug, and +
[Judges’ note: This was followed by a description of the bug, and the comment:]
Note, if this program wins, the author thinks it would be good to leave this information out of the remarks and encourage others to try and diff --git a/2001/herrmann1/README.md b/2001/herrmann1/README.md index c282e4a6e..7b68e8683 100644 --- a/2001/herrmann1/README.md +++ b/2001/herrmann1/README.md @@ -164,8 +164,8 @@ expected, and one more I is appended to the row.) Let's call it Some explanations: - The tape alphabet is always O and I. -- The states can be anything starting with "st". "start" and -"stop" are the start and stop states, respectively. +- The states can be anything starting with "`st`". "`start`" and +"`stop`" are the start and stop states, respectively. - To define a state, use two lines: one for each letter on the tape. You may omit one of the lines if the Turing machine will never enter the state reading that letter. (In the example, the @@ -220,13 +220,13 @@ Tape: * ``` -and the return code will be 1. As you can see, the Turing machine +and the return code will be `1`. As you can see, the Turing machine moved over the `O`s, but when it arrived at the `I` (still in state start), the error occurred. Note that other kinds of errors can cause compilation to fail. If this happens, the build script will write the error message of -gcc into a file called `error` and then exit. +`gcc` into a file called `error` and then exit. ### What the build script does @@ -238,7 +238,7 @@ beginning of the program; this is where the animation takes place (except in the first and last few steps). However, there's a technical problem to overcome: Some compilers -(including gcc) insert a lot of white space during the +(including `gcc`) insert a lot of white space during the preprocessing. This is bad for two reasons. First, the animated picture won't look right. And second, after some time, the file will grow too big for your hard disk. (The amount of white space @@ -246,12 +246,12 @@ grows exponentially.) So after each preprocessing, the first thing the build script does is remove all the unnecessary white space using `sed`. -(gcc would even insert `#line` directives if I didn't suppress +(`gcc` would even insert `#line` directives if I didn't suppress them with the `-P` option.) ### Some more details -- The arguments passed to the build script are passed on to gcc +- The arguments passed to the build script are passed on to `gcc` with a `-D` before. I had a slight technical problem doing this (especially with the spaces that can appear within the tape argument). That made the build script a bit longer. @@ -266,8 +266,8 @@ lines of code.) `herrmann1-2.c` are generated. - Also, a file `error` is generated. This file is removed after -the compilation, except if gcc produced an error; then it contains -the error message. (I can't let gcc output all its messages +the compilation, except if `gcc` produced an error; then it contains +the error message. (I can't let `gcc` output all its messages directly, because the warnings would clobber the animation. I could have made the compile script output the error file in case of an error, but I didn't want to make it yet longer.) @@ -318,9 +318,10 @@ to use many variables more than once. - I couldn't refrain from doing a little bit of nasty stuff like - #define a 0&0 - #if !a - +``` + #define a 0&0 + #if !a +``` Of course, it is a bit more subtle, and even useful. - The layout of the source code..., well, let's call it the @@ -330,9 +331,9 @@ indenting and modern art. There are even some comments... ### Compatibility -- It works with many versions of gcc. I tested it with versions +- It works with many versions of `gcc`. I tested it with versions 2.7.2.1, 2.8.1, 2.95.2, and ecgs-2.91.66. However, an old version -of gcc produced "internal compiler errors" (obviously not my +of `gcc` produced "internal compiler errors" (obviously not my fault). - The only warnings I get tell me that I'm undefining `__FILE__` and @@ -356,21 +357,25 @@ script, so that one does not have to choose "preprocess" from the menu over and over again. I leave this as an exercise to the experienced Mac programmer.) -- In the build script, I passed the `-P` option to gcc to suppress +- In the build script, I passed the `-P` option to `gcc` to suppress the insertion of `#line` directives. If your compiler doesn't support this option (and does insert `#line` directives), you should change the call to `sed` to remove them, too: Add - -e "/^#line/ d" +``` + -e "/^#line/ d" +``` - to the sed parameters. Or, if your `#line` directives look like - - # 15 "filename" + to the `sed` parameters. Or, if your `#line` directives look like +``` + # 15 "filename" +``` add - -e "/^# [0-9]/ d" - +``` + -e "/^# [0-9]/ d" +``` instead. - First, I had `-ansi -pedantic` turned on, but on some systems, diff --git a/2001/herrmann1/index.html b/2001/herrmann1/index.html index a31614d35..289ab09c9 100644 --- a/2001/herrmann1/index.html +++ b/2001/herrmann1/index.html @@ -511,8 +511,8 @@ expected, and one more I is appended to the row.) Let’s call it #define st2_O I, left, stop
Some explanations:
- The tape alphabet is always O and I.
-- The states can be anything starting with “st”. “start” and
-“stop” are the start and stop states, respectively.
+- The states can be anything starting with “st”. “start” and
+“stop” are the start and stop states, respectively.
- To define a state, use two lines: one for each letter on the
tape. You may omit one of the lines if the Turing machine will
never enter the state reading that letter. (In the example, the
@@ -541,12 +541,12 @@ line
*
..OOOOOOOOIIIIOO..
*
-and the return code will be 1. As you can see, the Turing machine +
and the return code will be 1. As you can see, the Turing machine
moved over the Os, but when it arrived at the I (still in state
start), the error occurred.
Note that other kinds of errors can cause compilation to fail.
If this happens, the build script will write the error message of
-gcc into a file called error and then exit.
gcc into a file called error and then exit.
In principle, the build script simply runs the preprocessor over and over again, until nothing changes anymore; then, the program @@ -554,18 +554,18 @@ is compiled. After each preprocessing step, the script outputs the beginning of the program; this is where the animation takes place (except in the first and last few steps).
However, there’s a technical problem to overcome: Some compilers
-(including gcc) insert a lot of white space during the
+(including gcc) insert a lot of white space during the
preprocessing. This is bad for two reasons. First, the animated
picture won’t look right. And second, after some time, the file
will grow too big for your hard disk. (The amount of white space
grows exponentially.) So after each preprocessing, the first thing
the build script does is remove all the unnecessary white space
using sed.
(gcc would even insert #line directives if I didn’t suppress
+
(gcc would even insert #line directives if I didn’t suppress
them with the -P option.)
The arguments passed to the build script are passed on to gcc +
The arguments passed to the build script are passed on to gcc
with a -D before. I had a slight technical problem doing this
(especially with the spaces that can appear within the tape
argument). That made the build script a bit longer.
During the preprocessing, intermediate files herrmann1-1.c and
herrmann1-2.c are generated.
Also, a file error is generated. This file is removed after
-the compilation, except if gcc produced an error; then it contains
-the error message. (I can’t let gcc output all its messages
+the compilation, except if gcc produced an error; then it contains
+the error message. (I can’t let gcc output all its messages
directly, because the warnings would clobber the animation. I
could have made the compile script output the error file in case
of an error, but I didn’t want to make it yet longer.)
w j k(P ## x) does.
Due to the fact that our alphabet has only 53 ;-) letters, I had to use many variables more than once.
I couldn’t refrain from doing a little bit of nasty stuff like
- #define a 0&0
- #if !a
-Of course, it is a bit more subtle, and even useful.
The layout of the source code…, well, let’s call it the +
I couldn’t refrain from doing a little bit of nasty stuff like
#define a 0&0
+ #if !a
+Of course, it is a bit more subtle, and even useful.
+It works with many versions of gcc. I tested it with versions +
It works with many versions of gcc. I tested it with versions
2.7.2.1, 2.8.1, 2.95.2, and ecgs-2.91.66. However, an old version
-of gcc produced “internal compiler errors” (obviously not my
+of gcc produced “internal compiler errors” (obviously not my
fault).
The only warnings I get tell me that I’m undefining __FILE__ and
that preprocessing directives are not recognized within macro
@@ -652,16 +654,18 @@ to write a kind of script which does the equivalent to the build
script, so that one does not have to choose “preprocess” from
the menu over and over again. I leave this as an exercise to the
experienced Mac programmer.)
In the build script, I passed the -P option to gcc to suppress
+
In the build script, I passed the -P option to gcc to suppress
the insertion of #line directives. If your compiler doesn’t
support this option (and does insert #line directives), you
-should change the call to sed to remove them, too: Add
-e "/^#line/ d"
-to the sed parameters. Or, if your #line directives look like
# 15 "filename"
+should change the call to sed to remove them, too: Add -e "/^#line/ d"
+to the sed parameters. Or, if your #line directives look like
# 15 "filename"
add
- -e "/^# [0-9]/ d"
-instead.
+ -e "/^# [0-9]/ d"
+instead.
+First, I had -ansi -pedantic turned on, but on some systems,
the stdio.h is not compatible to that, so I turned it back off.
The build script probably needs a bash to run in. So perhaps you diff --git a/2001/jason/README.md b/2001/jason/README.md index 00f0fd0f9..2b77fec22 100644 --- a/2001/jason/README.md +++ b/2001/jason/README.md @@ -117,14 +117,6 @@ the game entertaining, see if you can find in the source code.) -### NOTICE to those who wish for a greater challenge: - -**If you want a greater challenge, don't read any further**: -just try to understand the program via the source. - -If you get stuck, come back and read below for additional hints and information. - - ### GAME STRATEGY The trick, of course, is to drop items in empty rooms to mark them. That way diff --git a/2001/jason/index.html b/2001/jason/index.html index 4f0e1a957..7c51c7249 100644 --- a/2001/jason/index.html +++ b/2001/jason/index.html @@ -487,10 +487,6 @@ the game entertaining, see if you can find
the fish scales Q)++j<
the shooting star -~- ~ -~i +
in the source code.)
-If you want a greater challenge, don’t read any further: -just try to understand the program via the source.
-If you get stuck, come back and read below for additional hints and information.
The trick, of course, is to drop items in empty rooms to mark them. That way
you usually know if you’re in a room you’ve seen before. It greatly aids
diff --git a/2001/kev/README.md b/2001/kev/README.md
index 19e0fcaf6..7878a71ce 100644
--- a/2001/kev/README.md
+++ b/2001/kev/README.md
@@ -5,7 +5,7 @@
```
There is another version which lets you use the arrow keys rather than the more
-awkward `,` and `.` keys. See [alternate code](#alternate-code) below.
+awkward `,` and `.` keys. See [Alternate code](#alternate-code) below.
### Bugs and (Mis)features:
@@ -25,7 +25,7 @@ For more detailed information see [2001/kev in bugs.html](../../bugs.html#2001_k
./kev hostname # in another terminal
```
-NOTE: each player's paddle is at the bottom and the opponent at the top.
+**NOTE**: each player's paddle is at the bottom and the opponent at the top.
## Try:
diff --git a/2001/kev/index.html b/2001/kev/index.html
index 614d5322d..2cbcc76d7 100644
--- a/2001/kev/index.html
+++ b/2001/kev/index.html
@@ -410,7 +410,7 @@ Location: AU - Commonwealth of Australi
There is another version which lets you use the arrow keys rather than the more
-awkward To build:
make, and . keys. See alternate code below., and . keys. See Alternate code below.
The current status of this entry is:
@@ -421,7 +421,7 @@ awkward,and.keys. See al-./kev # in one terminal ./kev hostname # in another terminalNOTE: each player’s paddle is at the bottom and the opponent at the top.
+NOTE: each player’s paddle is at the bottom and the opponent at the top.
Try:
-./kev # in one terminal diff --git a/2001/ollinger/README.md b/2001/ollinger/README.md index 855dcd6cf..584fa7040 100644 --- a/2001/ollinger/README.md +++ b/2001/ollinger/README.md @@ -64,36 +64,34 @@ Q: Are there types of entries that are submitted so frequently that the A: Yes, there are types of entries that show up over and over again. The guidelines say: -``` - We tend to dislike programs that: - are similar to previous winning entries - - We like variety. However too often we see (please look at the winning - examples given to be aware of the level of the competition): - - (snip) - - generating small primes (below is the list of all prime related entries) - - 1985/august - 1988/applin - 1994/weisberg - 1995/makarios - 1996/dalbec - 2000/bellard - - As you can see, just a list of primes (let alone small primes) - does not cut it anymore. - - (snip) - - entries that use some complex state machine/table to print something - - 1988/isaak - 1988/phillipps - - Unbeaten for 12 years and counting... -``` +> We tend to dislike programs that:
+> are similar to previous winning entries
+> +> We like variety. However too often we see (please look at the winning examples +given to be aware of the level of the competition): +> +> (snip)
+> +> generating small primes (below is the list of all prime related entries)
+> +> 1985/august
+> 1988/applin
+> 1994/weisberg
+> 1995/makarios
+> 1996/dalbec
+> 2000/bellard
+> +> As you can see, just a list of primes (let alone small primes) does not cut +it anymore. +> +> (snip)
+> +> entries that use some complex state machine/table to print something +> +> 1988/isaak
+> 1988/phillipps +> +> Unbeaten for 12 years and counting... I think this is enough motivation for trying to submit a program which uses some complex state machine/table to generate small primes and print them. @@ -114,7 +112,9 @@ guarantee a constant time. The main loop simply iterates this transition function on each cell. -"The rest is silence" (Hamlet, V.2) +> "The rest is silence"
+> +> (Hamlet, V.2) Enjoy! diff --git a/2001/ollinger/index.html b/2001/ollinger/index.html index 540989ca4..26dea1731 100644 --- a/2001/ollinger/index.html +++ b/2001/ollinger/index.html @@ -441,34 +441,27 @@ character printed on the screen. judges get tired of them?A: Yes, there are types of entries that show up over and over again. The guidelines say:
-+We tend to dislike programs that: - are similar to previous winning entries - - We like variety. However too often we see (please look at the winning - examples given to be aware of the level of the competition): - - (snip) - - generating small primes (below is the list of all prime related entries) - - 1985/august - 1988/applin - 1994/weisberg - 1995/makarios - 1996/dalbec - 2000/bellard - - As you can see, just a list of primes (let alone small primes) - does not cut it anymore. - - (snip) - - entries that use some complex state machine/table to print something - - 1988/isaak - 1988/phillipps - - Unbeaten for 12 years and counting...+We tend to dislike programs that:
+
+ are similar to previous winning entriesWe like variety. However too often we see (please look at the winning examples +given to be aware of the level of the competition):
+(snip)
+generating small primes (below is the list of all prime related entries)
+1985/august
+
+1988/applin
+1994/weisberg
+1995/makarios
+1996/dalbec
+2000/bellardAs you can see, just a list of primes (let alone small primes) does not cut +it anymore.
+(snip)
+entries that use some complex state machine/table to print something
+1988/isaak
+
+1988/phillippsUnbeaten for 12 years and counting…
+I think this is enough motivation for trying to submit a program which uses some complex state machine/table to generate small primes and print them.
The way it works
@@ -482,7 +475,10 @@ by Fischer in 1965. is obfuscated to reduce its size, restrict it to characters 32 to 127 and guarantee a constant time.The main loop simply iterates this transition function on each cell.
-“The rest is silence” (Hamlet, V.2)
++“The rest is silence”
+(Hamlet, V.2)
+Enjoy!
To build:
-makeNOTE: this entry requires the
X11/Xlib.hheader file and the X11 library to +NOTE: this entry requires the
X11/Xlib.hheader file and the X11 library to compile. For more information see the FAQ on “X11”.Bugs and (Mis)features:
The current status of this entry is:
-STATUS: missing files - please provide them
+STATUS: INABIAF - please DO NOT fix
+STATUS: missing files - please provide themFor more detailed information see 2001/rosten in bugs.html.
To use:
-./rosten [number]WARNING: this will mess with your mouse and can make it hard to quit the +
WARNING: this will mess with your mouse and can make it hard to quit the program. Use at your own risk.
-NOTE: number is floating point.
+NOTE: number is floating point.
Try:
@@ -464,7 +465,9 @@ like this: greasymouse.c:55: So is that ... greasymouse.c:58: This program is rubbish. I'm not going to link it../rosten 1.03 ./rosten 1.00The code is best viewed with tab stops every 8 spaces.
+The code is best viewed with tab stops +every 8 spaces. If you use
vi(m)see the +FAQ on “tab stops”.BUGS
The mouse gets stuck completely if you give it an option of less than 1 and leave it for too long. This is quite annoying if it diff --git a/2001/schweikh/README.md b/2001/schweikh/README.md index b8937fe92..e9e8a5a30 100644 --- a/2001/schweikh/README.md +++ b/2001/schweikh/README.md @@ -28,13 +28,6 @@ comments for details and a workaround. There's also no way to escape meta characters. -This is supposed to happen. As is written in the -[The Jargon File](http://catb.org/jargon/html/F/feature.html): - -``` - That's not a bug, that's a feature. -``` - ## Try: diff --git a/2001/schweikh/index.html b/2001/schweikh/index.html index 4d06e4208..8f7eb7c45 100644 --- a/2001/schweikh/index.html +++ b/2001/schweikh/index.html @@ -422,9 +422,6 @@ two args.
Note also that the glob pattern must match the whole string. See the author’s comments for details and a workaround.
There’s also no way to escape meta characters.
-This is supposed to happen. As is written in the -The Jargon File:
-That's not a bug, that's a feature.Try:
./try.shJudges’ remarks:
diff --git a/2001/westley/README.md b/2001/westley/README.md index 554930386..3f7e5832b 100644 --- a/2001/westley/README.md +++ b/2001/westley/README.md @@ -101,7 +101,7 @@ versions of the program, all valid C! ## Author's remarks: [Punch cards](https://en.wikipedia.org/wiki/Punched_card), or Hollerith cards, -were becoming obsolete just as C was becoming more popular\*; this is rather +were becoming obsolete just as C was becoming more popular[^1]; this is rather unfortunate, because C has an advantage over many other languages when it comes to punch cards - C programs can be written to be "drop proof". @@ -117,7 +117,7 @@ Consider the following C program: This program will compile and run no matter what order the lines are in. If you punch it on cards (one line of code per card, naturally) and drop them, you don't need to put them in -any particular order\*\*; it will always produce `ABC` as output. +any particular order[^2]; it will always produce `ABC` as output. You can also use global variables: @@ -224,11 +224,9 @@ comment), there are technically `28!` different programs, or `304,888,344,611,713,860,501,504,000,000` different versions, all legal C. -``` - * except in Florida voting machines +[^1]: except in Florida voting machines - ** all cards must be face down, nine-edge first, of course. -``` +[^2]: all cards must be face down, nine-edge first, of course. +
++ diff --git a/2001/williams/README.md b/2001/williams/README.md index 58c41aeb4..d58801827 100644 --- a/2001/williams/README.md +++ b/2001/williams/README.md @@ -4,7 +4,7 @@ make ``` -NOTE: this entry requires the `X11/Xlib.h` header file and the X11 library to +**NOTE**: this entry requires the `X11/Xlib.h` header file and the X11 library to compile. For more information see the FAQ on "[X11](../../faq.html#X11)". diff --git a/2001/williams/index.html b/2001/williams/index.html index 1132c6d53..e83dfbb0e 100644 --- a/2001/williams/index.html +++ b/2001/williams/index.html @@ -409,7 +409,7 @@ Location: US - United States of AmericaFootnotes
+ +To build:
-makeNOTE: this entry requires the
X11/Xlib.hheader file and the X11 library to +NOTE: this entry requires the
X11/Xlib.hheader file and the X11 library to compile. For more information see the FAQ on “X11”.Bugs and (Mis)features:
diff --git a/bugs.html b/bugs.html index 1f34403d3..a1269d695 100644 --- a/bugs.html +++ b/bugs.html @@ -1938,22 +1938,14 @@ elves of Imladris :-(2001/bellard
STATUS: INABIAF - please DO NOT fix
-STATUS: doesn’t work with some platforms - please help us fix it
Source code: 2001/bellard/bellard.c
Information: 2001/bellard/index.html
-The two statuses might seem contradictory but that is a complicated question. -The author stated that it only works with i386 linux so on the one hand the fact -it doesn’t work in modern systems is considered a feature and not a bug. But on -the other hand it would be nice if there was an alternate version which worked -for modern systems. This does seem quite unlikely but some fixes, described -next, were made.
+The author stated that it only works with i386 linux so the fact it doesn’t work +in modern systems is considered a feature and not a bug.
Cody Boone Ferguson fixed an initial segfault (trying to open the file) and he also fixed the supplementary program bellard.otccex.c but this still crashes in systems not i386 linux which is what the author stated.
-On the other hand if you do have a fix for 64-bit systems you’re welcome to -provide it as an alternate version. If by chance you have a fix so that it works -for both 32-bit and 64-bit systems that is also okay.
The author said that they compiled it with gcc version 2.95.2. We don’t know if a certain gcc version is necessary but it might be helpful to @@ -1968,12 +1960,9 @@ explicitly stated that it requires i386 linux.
modification by Yusuke noted in the thanks file) but it appears this also requires i386 linux; indeed looking at the code it hard codes paths that are i386 specific to linux. -Another point of interest is that the author provided de-obfuscated versions +
Another point of interest is that the author provided unobfuscated versions which might be of value to look at.
-If you have a fix for 64-bit systems this is welcome as an alternate version, as -stated above. You might like to look at the otccelf version but note that it (at -least in 64-bit linux and macOS) has compilation errors.
-Aside: why were there changes made if INABIAF ?
+Aside: why were there changes made if INABIAF ?
This is a good question. The reason is we believe it better to fix some obvious problems: there were some bugs that would very possibly prevent it from working even if it was in i386 linux though Yusuke seemed to get it to work in an @@ -2040,20 +2029,23 @@ provide enough args.
-2001/rosten
STATUS: missing files - please provide them
+STATUS: INABIAF - please DO NOT fix
Source code: 2001/rosten/rosten.c
Information: 2001/rosten/index.html
+See list of bugs here.
+STATUS: missing files - please provide them
The author stated that there is a cat man page for this program in case one wanted to install it as a tool but this is missing.
-2001/schweikh
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2001/schweikh/schweikh.c
Information: 2001/schweikh/index.html
The glob pattern must match the whole string. See the author’s comments for details and a workaround.
There’s also no way to escape meta characters.
+See also the author’s list of bugs here.
@@ -2134,7 +2126,7 @@ sleeping.2001/westley
2004/gavin
STATUS: compiled executable crashes - please help us fix
-STATUS: doesn’t work with some platforms - please help us fix it
+STATUS: doesn’t work with some platforms - please help us fix it
Source code: 2004/gavin/gavin.c
Information: 2004/gavin//index.html
Segmentation fault will occur in some systems. For instance on macOS with the @@ -2216,13 +2208,13 @@ compile under clang. The following patch was applied:
gavin_files: boot.b lilo.conf prim gavin_install.txtThe current (Makefile was modified to try and fit into the current IOCCC build environment.
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
See known features in the index.html for things that are not bugs but documented (mis)features.
-2004/jdalbec
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2004/jdalbec/jdalbec.c
Information: 2004/jdalbec/index.html
The author stated that:
@@ -2247,7 +2239,7 @@ things that are not bugs but documented (mis)features.-2004/sds
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2004/sds/sds.c
Information: 2004/sds/index.html
The generated code will very likely segfault or do something not intended if not @@ -2260,7 +2252,7 @@ given the right args. See the index.html file for the correct syntax.
-2005/anon
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2005/anon/anon.c
Information: 2005/anon/index.html
This program sometimes will create unsolvable puzzles :-) just to hook you. @@ -2274,7 +2266,7 @@ dimensions. Try
100 100 100for instance and see what happens!-2005/giljade
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2005/giljade/giljade.c
Information: 2005/giljade/index.html
This entry will very likely segfault or do something strange if the source code @@ -2283,7 +2275,7 @@ does not exist.
-2005/mikeash
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2005/mikeash/mikeash.c
Information: 2005/mikeash/index.html
The author states:
@@ -2317,7 +2309,7 @@ for running itself.-2005/mynx
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2005/mynx/mynx.c
Information: 2005/mynx/index.html
Cody Boone Ferguson notes that, though @@ -2331,7 +2323,7 @@ website itself.
-2005/sykes
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2005/sykes/sykes.c
Information: 2005/sykes/index.html
The author stated the below points of interest.
@@ -2372,7 +2364,7 @@ with at leastcomputer.tofuinput file:-2006/borsanyi
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2006/borsanyi/borsanyi.c
Information: 2006/borsanyi/index.html
The string specified must be <= 42 characters and may only consist of the @@ -2381,14 +2373,14 @@ with possibly corrupt GIF files.
-2006/hamre
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2006/hamre/hamre.c
Information: 2006/hamre/index.html
This program will likely crash or do something funny without an arg.
-2006/monge
STATUS: doesn’t work with some platforms - please help us fix it
+STATUS: doesn’t work with some platforms - please help us fix it
Source code: 2006/monge/monge.c
Information: 2006/monge/index.html
This program requires x86 (with an x87 FPU) or x86_64 machine and it requires @@ -2400,12 +2392,12 @@ but you are welcome to try and fix it.
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! -STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Incorrect formulas will ungracefully crash the program.
-2006/stewart
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2006/stewart/stewart.c
Information: 2006/stewart/index.html
This program will likely crash or do something funny if the file cannot be @@ -2413,7 +2405,7 @@ opened. The number of args is however checked.
-2006/sykes1
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2006/sykes1/sykes1.c
Information: 2006/sykes1/index.html
The author stated:
@@ -2430,7 +2422,7 @@ opened. The number of args is however checked.-2006/toledo2
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2006/toledo2/toledo2.c
Information: 2006/toledo2/index.html
Cody Boone Ferguson fixed this program to @@ -2477,7 +2469,7 @@ case-sensitive.
-2011/borsanyi
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2011/borsanyi/borsanyi.c
Information: 2011/borsanyi/index.html
For a great amount of data points the program will crash, depending on your @@ -2502,7 +2494,7 @@ for security in modern days!). Do you have a server with enough bandwid would like to set it up? We’ll gladly thank you in the thanks file file and link to the page as well! You’ll also have IOCCC fame for reviving a pootifier! :-)
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
The author states the following:
Bad input (e.g. nonexistent files, non-numeric number of iterations, etc.) @@ -2514,7 +2506,7 @@ tends to result in empty output.
-2011/fredriksson
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2011/fredriksson/fredriksson.c
Information: 2011/fredriksson/index.html
The author stated that there are a number of features and limitations. As the @@ -2524,14 +2516,14 @@ remarks instead.
-2011/konno
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2011/konno/konno.c
Information: 2011/konno/index.html
This program will very likely crash or do something funny without an arg.
-2011/richards
STATUS: doesn’t work with some platforms - please help us fix it
+STATUS: doesn’t work with some platforms - please help us fix it
Source code: 2011/richards/richards.c
Information: 2011/richards/index.html
This does not appear to work with macOS, resulting in a segfault (and sometimes @@ -2693,7 +2685,7 @@ defined.
-2011/vik
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2011/vik/vik.c
Information: 2011/vik/index.html
The author stated that the program will crash if no argument is passed to the @@ -2707,7 +2699,7 @@ fire :-)
-2012/blakely
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2012/blakely/blakely.c
Information: 2012/blakely/index.html
The author stated:
@@ -2716,7 +2708,7 @@ fire :-)-2012/deckmyn
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2012/deckmyn/deckmyn.c
Information: 2012/deckmyn/index.html
The author stated:
@@ -2749,7 +2741,7 @@ fire :-)-2012/dlowe
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2012/dlowe/dlowe.c
Information: 2012/dlowe/index.html
The author stated:
@@ -2763,7 +2755,7 @@ doesn’t make it possible to lock drawing to the display refresh rate.)
The author stated:
@@ -2784,7 +2776,7 @@ doesn’t make it possible to lock drawing to the display refresh rate.)The author stated that the program will crash if no argument is passed to the @@ -2800,7 +2792,7 @@ fire :-)
The author stated:
@@ -2820,7 +2812,7 @@ and endianness conversion would make the source too large for IOCCC rule 2).This program will possibly crash or draw something strange with 0 args. Then @@ -2839,7 +2831,7 @@ used.
From the author:
@@ -2855,7 +2847,7 @@ used.From the author:
@@ -2868,14 +2860,14 @@ such asC2E2.
Invalid input files will very likely crash the program.
This program will not terminate on its own; you must kill hou (but not Qiming
@@ -2883,7 +2875,7 @@ Hou :-) ) yourself. This should not be fixed.
The author reminds us that if you kill the program you will have to wait a short @@ -2900,7 +2892,7 @@ it out as a known limitation it is not a bug but a feature.
The author noted that in macOS the colours might be wrong. They gave a solution. @@ -2924,7 +2916,7 @@ player become bigger, stay away from blocks!
This program will very likely crash if no arg is given.
@@ -2965,7 +2957,7 @@ rely on the entry as the below shows. One should be able to do:The author stated:
@@ -3009,7 +3001,7 @@ because it is the same thing as the other, just updated to useprog.alt
2015/mills2
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2015/mills2/prog.c
Information: 2015/mills2/index.html
The program doesn’t look at the header of files so if it’s passed something hat
@@ -3018,7 +3010,7 @@ is not compressed data it’s likely to crash.
2015/schweikhardt
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2015/schweikhardt/prog.c
Information: 2015/schweikhardt/index.html
The program assumes that EOF is -1. This can be fixed but at this time it is
@@ -3051,7 +3043,7 @@ use 8 * sizeof(typ) bits per place. It does not work when CHA
2018/algmyr
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2018/algmyr/prog.c
Information: 2018/algmyr/index.html
The author wrote:
@@ -3070,7 +3062,7 @@ loop printing whitespace.
2018/hou
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2018/hou/prog.c
Information: 2018/hou/index.html
When you run it on a JSON file you will see something like:
@@ -3095,7 +3087,7 @@ likely see:
where [] 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 prog again
it’ll be okay.
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
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.
@@ -3110,7 +3102,7 @@ in the case of compiled code it won’t be executable).
2018/vokes
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2018/vokes/prog.c
Information: 2018/vokes/index.html
The author wrote the following:
@@ -3160,7 +3152,7 @@ this program has nothing to do with a hand.
2019/adamovsky
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/adamovsky/prog.c
Information: 2019/adamovsky/index.html
Certain input can crash this program. The file
@@ -3168,7 +3160,7 @@ this program has nothing to do with a hand.
2019/burton
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/burton/prog.c
Information: 2019/burton/index.html
The author pointed out that some implementations of wc(1) show different
@@ -3176,7 +3168,7 @@ values but his implementation matches that of macOS and FreeBSD.
2019/ciura
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/ciura/prog.c
Information: 2019/ciura/index.html
Cody Boone Ferguson fixed the scripts so
@@ -3210,7 +3202,7 @@ for more information on the change to fgets(3).
2019/duble
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/duble/prog.c
Information: 2019/duble/index.html
There are two things to be aware of with this entry.
@@ -3239,7 +3231,7 @@ in the directory:
2019/endoh
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/endoh/prog.c
Information: 2019/endoh/index.html
As a backtrace quine this entry is SUPPOSED to segfault so this should not be
@@ -3247,7 +3239,7 @@ touched either.
2019/karns
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/karns/prog.c
Information: 2019/karns/index.html
The author stated the following:
@@ -3277,7 +3269,7 @@ touched either.
2019/lynn
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/lynn/prog.c
Information: 2019/lynn/index.html
The author wrote that there are a number of differences from what one might
@@ -3287,7 +3279,7 @@ remarks in the sections Syntax and
2019/mills
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/mills/prog.c
Information: 2019/mills/index.html
The author wrote that if you decide to change networks or use a different input
@@ -3307,7 +3299,7 @@ a crash.
2019/poikola
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/poikola/prog.c
Information: 2019/poikola/index.html
This program will not validate input so it might fail or get stuck if invoked
@@ -3316,7 +3308,7 @@ erroneously.
2019/yang
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2019/yang/prog.c
Information: 2019/yang/index.html
The author noted that if the program runs out of memory it is likely to crash.
@@ -3331,7 +3323,7 @@ ignored except line feeds (preserved) and tabs (expanded to 8 spaces).’
2020/burton
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2020/burton/prog.c
Information: 2020/burton/index.html
This entry is known to crash if no arg is specified. Although easy to fix it is
@@ -3342,7 +3334,7 @@ either. But can you figure out why this happens?
2020/carlini
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2020/carlini/prog.c
Information: 2020/carlini/index.html
The author stated that bad things happen if the entered move is outside of the
@@ -3356,7 +3348,7 @@ move.
2020/ferguson1
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2020/ferguson1/prog.c
Information: 2020/ferguson1/index.html
There are some things that might appear to be bugs but are actually features or
@@ -3366,7 +3358,7 @@ things that are misinterpreted as bugs. See the
2020/giles
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2020/giles/prog.c
Information: 2020/giles/index.html
The author noted that the program only supports WAV files that have
@@ -3375,7 +3367,7 @@ audio channels.
2020/otterness
-STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2020/otterness/prog.c
Information: 2020/otterness/index.html
The author listed the following limitations:
diff --git a/bugs.md b/bugs.md
index e5e3a3b50..f3764395e 100644
--- a/bugs.md
+++ b/bugs.md
@@ -2248,26 +2248,17 @@ elves of Imladris :-(
### STATUS: INABIAF - please **DO NOT** fix
-### STATUS: doesn't work with some platforms - please help us fix it
### Source code: [2001/bellard/bellard.c](%%REPO_URL%%/2001/bellard/bellard.c)
### Information: [2001/bellard/index.html](2001/bellard/index.html)
-The two statuses might seem contradictory but that is a complicated question.
-The author stated that it only works with i386 linux so on the one hand the fact
-it doesn't work in modern systems is considered a feature and not a bug. But on
-the other hand it would be nice if there was an alternate version which worked
-for modern systems. This does seem quite unlikely but some fixes, described
-next, were made.
+The author stated that it only works with i386 linux so the fact it doesn't work
+in modern systems is considered a feature and not a bug.
[Cody Boone Ferguson](authors.html#Cody_Boone_Ferguson) fixed an initial
segfault (trying to open the file) and he also fixed the [supplementary program
bellard.otccex.c](%%REPO_URL%%/2001/bellard/bellard.otccex.c) but this still crashes in
systems not i386 linux which is what the author stated.
-On the other hand if you do have a fix for 64-bit systems you're welcome to
-provide it as an alternate version. If by chance you have a fix so that it works
-for both 32-bit and 64-bit systems that is also okay.
-
The author said that they compiled it with [gcc version
2.95.2](https://ftp.gnu.org/gnu/gcc/gcc-2.95.2/gcc-everything-2.95.2.tar.gz). We
don't know if a certain gcc version is necessary but it might be helpful to
@@ -2286,15 +2277,11 @@ modification by Yusuke noted in the [thanks](thanks-for-help.html)
file) but it appears this *also* requires i386 linux; indeed looking at the code
it hard codes paths that are i386 specific to linux.
-Another point of interest is that the author provided de-obfuscated versions
+Another point of interest is that the author provided unobfuscated versions
which might be of value to look at.
-If you have a fix for 64-bit systems this is welcome as an alternate version, as
-stated above. You might like to look at the otccelf version but note that it (at
-least in 64-bit linux and macOS) has compilation errors.
-
-### Aside: why were there changes made if INABIAF ?
+#### Aside: why were there changes made if INABIAF ?
This is a good question. The reason is we believe it better to fix some obvious
problems: there were some bugs that would very possibly prevent it from working
@@ -2307,6 +2294,7 @@ Also the supplementary program, which did not work at all, was fixed (by Cody)
and it can be run by itself for fun in modern systems, which was not possible
before the fixes there.
+
## 2001/cheong
@@ -2395,10 +2383,15 @@ provide enough args.
-### STATUS: missing files - please provide them
+### STATUS: INABIAF - please **DO NOT** fix
### Source code: [2001/rosten/rosten.c](%%REPO_URL%%/2001/rosten/rosten.c)
### Information: [2001/rosten/index.html](2001/rosten/index.html)
+See list of bugs [here](2001/rosten/index.html#bugs).
+
+
+### STATUS: missing files - please provide them
+
The author stated that there is a cat man page for this program in case one
wanted to install it as a tool but this is missing.
@@ -2417,6 +2410,8 @@ details and a workaround.
There's also no way to escape meta characters.
+See also the author's list of bugs [here](2001/schweikh/index.html#bugs).
+
## 2001/westley