Improve thanks-for-fixes.md order
Moved thanks for individual entries to the top. Added head headers to make it easier to find thanks for a given year. Moved non-entry based thanks to the Miscellaneous section tag the bottom. Removed miscellaneous comments that were redundant with the FAQ.
This commit is contained in:
1 parent
0f43387c81
commit
e62280acd5
1 file changed
+198
-234
+198
-234
@@ -3,240 +3,7 @@
|
|||||||
.. and thanks for all the fish. :-)
|
.. and thanks for all the fish. :-)
|
||||||
|
|
||||||
|
|
||||||
## Thank you honor roll
|
# 1984
|
||||||
|
|
||||||
There are a number of people who have contributed to several thousand changes,
|
|
||||||
fixes and important improvements and one who has literally (or numerically :-) )
|
|
||||||
contributed thousands, that we wish to thank.
|
|
||||||
|
|
||||||
We call out the extensive contributions of [Cody Boone
|
|
||||||
Ferguson](https://www.ioccc.org/winners.html#Cody_Boone_Ferguson) who is
|
|
||||||
responsible for most of the improvements and fixes including many **EXTREMELY
|
|
||||||
HARD bug fixes** like
|
|
||||||
[1988/phillipps](/thanks-for-fixes.md#1988phillipps-readmemd),
|
|
||||||
[1992/vern](/thanks-for-fixes.md#1992vern-readmemd),
|
|
||||||
[2001/anonymous](/thanks-for-fixes.md#2001anonymous-readmemd),
|
|
||||||
[2004/burley](/thanks-for-fixes.md#2004burley-readmemd) and
|
|
||||||
[2005/giljade](/thanks-for-fixes.md#2005giljade-readmemd), making entries like
|
|
||||||
[1985/sicherman](/thanks-for-fixes.md#1985sicherman-readmemd) and
|
|
||||||
[1986/wall](/thanks-for-fixes.md#1986wall-readmemd) not need `-traditional-cpp`
|
|
||||||
(all **EXTREMELY HARD**), fixing entries to work with clang (some being
|
|
||||||
**EXTREMELY HARD** like
|
|
||||||
[1991/dds](/thanks-for-fixes.md#1991dds-readmemd)) or as much as possible (like
|
|
||||||
[1989/westley](/thanks-for-fixes.md#1989westley-readmemd), a true masterpiece
|
|
||||||
that is **INCREDIBLY HARD, _MUCH, MUCH MORE SO_ than any other fix!**), porting
|
|
||||||
entries to macOS (some being **EXTREMELY HARD** like
|
|
||||||
[1998/schweikh1](/thanks-for-fixes.md#1998schweikh1-readmemd)), fixing code like
|
|
||||||
[2001/herrmann2](/thanks-for-fixes.md#2001herrmann2-readmemd) to work in both
|
|
||||||
32-bit/64-bit which *can be* **EXTREMELY HARD**, providing alternate code
|
|
||||||
where useful/necessary, fixing possible/removing dead links,
|
|
||||||
typo/consistency fixes, improving **ALL _Makefiles_** and writing
|
|
||||||
[sgit](https://github.com/xexyl/sgit) that we installed locally to easily run
|
|
||||||
`sed` on files in the repo to help build the website. **THANK YOU VERY MUCH**
|
|
||||||
for your extensive efforts in helping improve the IOCCC presentation of past
|
|
||||||
IOCCC winners and fixing almost all past entries for modern systems!
|
|
||||||
|
|
||||||
[Yusuke Endoh](https://www.ioccc.org/winners.html#Yusuke_Endoh) supplied a
|
|
||||||
number of important bug fixes to a number of past IOCCC winners. Some of those
|
|
||||||
fixes were **EXTREMELY TECHNICALLY CHALLENGING** such as
|
|
||||||
[1989/robison](/thanks-for-fixes.md#1989robison-readmemd),
|
|
||||||
[1990/cmills](https://github.com/ioccc-src/temp-test-ioccc/blob/master/thanks-for-fixes.md#1990cmills-readmemd),
|
|
||||||
[1992/lush](/thanks-for-fixes.md#1992lush-readmemd) and
|
|
||||||
[2001/ctk](/thanks-for-fixes.md#2001ctk-readmemd). **THANK YOU VERY MUCH** for
|
|
||||||
your help!
|
|
||||||
|
|
||||||
A good number of the [past winners of the
|
|
||||||
IOCCC](https://www.ioccc.org/winners.html) tested, identified and helped correct
|
|
||||||
and/or improve the write-ups of fellow IOCCC winners for the year that they won.
|
|
||||||
The list of those past winners is too long to mention: nevertheless the [IOCCC
|
|
||||||
judges](https://www.ioccc.org/judges.html) **VERY MUCH APPRECIATE** those who
|
|
||||||
helped improve the presentation of their fellow IOCCC winners.
|
|
||||||
|
|
||||||
|
|
||||||
## Thank you list since 2021 Jan 01
|
|
||||||
|
|
||||||
To avoid having to change numerous "_README.md_" files to add thank you notes,
|
|
||||||
we centralize them below.
|
|
||||||
|
|
||||||
The [IOCCC judges](https://www.ioccc.org/judges.html) wish to recognize the many
|
|
||||||
important contributions to the IOCCC presentation of past IOCCC winners.
|
|
||||||
We are pleased to note the many contributions, **made since 2021 Jan 01**,
|
|
||||||
on a winner by winner basis.
|
|
||||||
|
|
||||||
|
|
||||||
## Note about fixes and inconsistencies with the original code and remarks
|
|
||||||
|
|
||||||
Invariably when an entry is fixed and it is not made an alt version (sometimes
|
|
||||||
it is worth an alt version and other times not - it all depends on what was
|
|
||||||
done) some inconsistencies will be introduced of the original code, the remarks
|
|
||||||
of the author(s) and the size restrictions of the contest for that year (and in
|
|
||||||
some cases it might end up being against other rules).
|
|
||||||
|
|
||||||
See [FAQ 4.3 - Why do author remarks sometimes not match the source / why are
|
|
||||||
there other inconsistencies with the original entry?](/faq.md#faq4_3) for this
|
|
||||||
specifically and also [FAQ 4.2: What was changed in an IOCCC winner source
|
|
||||||
code?](/faq.mdfaq4_2).
|
|
||||||
|
|
||||||
|
|
||||||
## Notes about changing `gets()` to `fgets()` in some entries:
|
|
||||||
|
|
||||||
Although the 'why' is discussed in the [FAQ 4.1: Why were some calls to the libc
|
|
||||||
function `gets(3)` changed to use `fgets(3)`?](/faq.md#faq4_1) we want to give
|
|
||||||
more details here as it pertains to the fixes and updates made in numerous
|
|
||||||
entries below (note that some of the information in that FAQ entry are below).
|
|
||||||
|
|
||||||
The problem with `gets()` is that in some systems a warning can be interspersed
|
|
||||||
with the output which can be confusing, to say nothing of the annoyance of it
|
|
||||||
(which can be fixed via `2>/dev/null` - and this is done with some entries in
|
|
||||||
the to use/try sections - but which makes it more burdensome to run as there are
|
|
||||||
a lot of entries that use it still).
|
|
||||||
|
|
||||||
A good example was [1990/tbr](/thanks-for-fixes.md#1990tbr-readmemd) where one
|
|
||||||
would see:
|
|
||||||
|
|
||||||
```
|
|
||||||
$ warning: this program uses gets(), which is unsafe.
|
|
||||||
# cursor here, what to do?
|
|
||||||
```
|
|
||||||
|
|
||||||
whereas without the warning it's much easier to see that it's a prompt:
|
|
||||||
|
|
||||||
```
|
|
||||||
$
|
|
||||||
```
|
|
||||||
|
|
||||||
Another great example is:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ cd 1990/cmills
|
|
||||||
$ ./cmills
|
|
||||||
Shuffle...
|
|
||||||
warning: this program uses gets(), which is unsafe.
|
|
||||||
Total $1000. Wager?
|
|
||||||
```
|
|
||||||
|
|
||||||
In some entries this change is not possible, in one-liners it might make them
|
|
||||||
too long (though it's also been possible to do it in some cases) and in some
|
|
||||||
entries it's more complicated than others because of the annoying fact that for
|
|
||||||
'"compatibility" reasons' `fgets()` retains the newline and `gets()` does not.
|
|
||||||
As the v7 man page used to say:
|
|
||||||
|
|
||||||
```
|
|
||||||
BUGS
|
|
||||||
|
|
||||||
The fgets(3) function retains the newline while gets(3) does not, all in the
|
|
||||||
name of backward compatibility.
|
|
||||||
```
|
|
||||||
|
|
||||||
Some entries like [1992/adrian](1992/adrian/README.md) were more complicated in
|
|
||||||
other ways due to the code generating other output and because of how it works
|
|
||||||
it would generate code that could not be compiled, simply because of spaces
|
|
||||||
being added; nevertheless Cody did make this fix along with a number of other
|
|
||||||
fixes in that entry.
|
|
||||||
|
|
||||||
In any case some of the entries have been updated this way for the reasons
|
|
||||||
described above and in the [FAQ](/faq.md).
|
|
||||||
|
|
||||||
Where possible `gets(3)` has been redefined to be `fgets(3)` with the
|
|
||||||
appropriate arg. This is not always possible but if often it is.
|
|
||||||
|
|
||||||
See also [bugs.md](/bugs.md) for a further discussion on the matter.
|
|
||||||
|
|
||||||
|
|
||||||
## A note about bugs versus (mis)features:
|
|
||||||
|
|
||||||
Over time, when working on making fixes for compilers, different platforms
|
|
||||||
and other such things, the definition of a feature versus a bug has changed,
|
|
||||||
sometimes even for just specific entries, and this has happened a number of
|
|
||||||
times as well, back and forth.
|
|
||||||
|
|
||||||
The main definition of a feature that is most common is that if the judges or
|
|
||||||
the author (or authors) note that it crashes without the right number of args,
|
|
||||||
then this is, although technically a bug, considered a feature for the contest.
|
|
||||||
In general if something is documented then it is a feature and not a bug.
|
|
||||||
|
|
||||||
A counterexample is [1990/theorem](#1990theorem-readmemd) which is considered
|
|
||||||
such a beautiful program that along with a change to `fgets(3)` it had arg
|
|
||||||
checks added. There are some other examples for reasons like this, a good one
|
|
||||||
being [1998/schnitzi](#1993schnitzi-readmemd), also because it's such a
|
|
||||||
beautiful program (other fixes were made as well which is shown below also).
|
|
||||||
Both of these entries were fixed by Cody.
|
|
||||||
|
|
||||||
But there are some others that are more questionable and border on tampering
|
|
||||||
with the entry especially as some of them were documented by the author. These
|
|
||||||
happened over time where sometimes we, the judges, changed the status to
|
|
||||||
bug/(mis)-feature and when verifying the consistency, Cody fixed them as they
|
|
||||||
only took a few seconds to fix; others he changed back to feature status and
|
|
||||||
they were not fixed as the problems were documented by the author or us.
|
|
||||||
|
|
||||||
Of course it can be argued that by fixing these things it makes it more user
|
|
||||||
friendly for modern enjoyment but even so it's very often the wrong way to go
|
|
||||||
about it. If the author does not mention it then it can be considered a bug
|
|
||||||
that can be fixed.
|
|
||||||
|
|
||||||
See the [bugs.md](/bugs.md) for more information regarding this situation and
|
|
||||||
for many entries with a variety types of bugs that you can look at fixing too,
|
|
||||||
if you wish to help! You will be thanked in this file should you do so. Fixing
|
|
||||||
does not have to be just code: it can be a Makefile fix or something else
|
|
||||||
entirely, even typos (in data files: usually not good idea in code even in
|
|
||||||
comments though it happened once). An example that has happened several times is
|
|
||||||
that if the optimiser is enabled the program might crash, sometimes in one
|
|
||||||
platform and not others but other times in multiple platforms. This counts as a
|
|
||||||
fix too, which you will see below should you look at the very long list of
|
|
||||||
fixes, including the next section!
|
|
||||||
|
|
||||||
|
|
||||||
## Makefile fixes and improvements
|
|
||||||
|
|
||||||
Cody made a variety of changes in all Makefiles, sometimes to get an entry to
|
|
||||||
work, all noted below, but he also **improved them all** in at least one or two
|
|
||||||
ways.
|
|
||||||
|
|
||||||
For instance he changed the `LIBS` variable to `LDFLAGS` as that is the standard
|
|
||||||
variable. This simplifies compiling without having to modify the Makefile which
|
|
||||||
can be useful if something changes or if someone is trying to fix an entry but
|
|
||||||
forgets to change the Makefile or even if they don't want to make a change due
|
|
||||||
to a temporary test. These would of course depend on the compiler invocation but
|
|
||||||
since `LDFLAGS` is standard it is more likely to be used by default so no need
|
|
||||||
to check the Makefiles.
|
|
||||||
|
|
||||||
Sometimes there were bad characters or rules that caused the entry to fail to
|
|
||||||
compile or not work in some way.
|
|
||||||
|
|
||||||
Where useful he added some notes to the Makefiles during compilation to let one
|
|
||||||
know of certain problems or features that matter.
|
|
||||||
|
|
||||||
There were some other fixes as well including mass typo fixes in the Makefiles
|
|
||||||
(though that usually does not mean it is worth a thank you note it might be
|
|
||||||
worth noting in this case). Other times it was enabling or disabling the
|
|
||||||
optimiser to fix an entry, sometimes causing other problems that also had to be
|
|
||||||
fixed, a good example being [1986/marshall](#1986marshall-readmemd) (see the
|
|
||||||
[compilers.md](1986/marshall/compilers.md) for the amusing details and all that
|
|
||||||
had to be done to fix it).
|
|
||||||
|
|
||||||
There was a 'problem' where `${MAKE}` was `$(MAKE)`: this doesn't break anything
|
|
||||||
but it is inconsistent with the rest of the `${foo}` tools.
|
|
||||||
|
|
||||||
A lot of the fixes with the Makefiles that Cody made were done with his [sgit
|
|
||||||
tool](https://github.com/xexyl/sgit).
|
|
||||||
|
|
||||||
|
|
||||||
## Typo fixes and consistency improvements
|
|
||||||
|
|
||||||
Cody, being the IOCCC's resident corrections officer :-) (and a fine one at
|
|
||||||
that, we think :-) ), made many, many typ0 (... :-) ) fixes throughout the
|
|
||||||
README.md files, scripts, other data files, Makefiles (see above) etc.
|
|
||||||
|
|
||||||
He also updated the formatting of the README.md files (after renaming the old
|
|
||||||
files to README.md) to proper markdown.
|
|
||||||
|
|
||||||
Where possible he made the presentation of the entries much more consistent
|
|
||||||
across the entries of all the years as well as other files. This is not possible
|
|
||||||
for everything (the remarks of authors, for instance, cannot be and should not
|
|
||||||
be made consistent but adding markdown where necessary in the remarks is).
|
|
||||||
|
|
||||||
A lot of these fixes were done with his [sgit
|
|
||||||
tool](https://github.com/xexyl/sgit) as well but many were done manually too.
|
|
||||||
|
|
||||||
|
|
||||||
## [1984/anonymous](1984/anonymous/anonymous.c) ([README.md](1984/anonymous/README.md))
|
## [1984/anonymous](1984/anonymous/anonymous.c) ([README.md](1984/anonymous/README.md))
|
||||||
@@ -341,6 +108,9 @@ History
|
|||||||
Repo](https://github.com/dspinellis/unix-history-repo/tree/Research-Release).
|
Repo](https://github.com/dspinellis/unix-history-repo/tree/Research-Release).
|
||||||
|
|
||||||
|
|
||||||
|
# 1985
|
||||||
|
|
||||||
|
|
||||||
## [1985/applin](1985/applin/applin.c) ([README.md](1985/applin/README.md]))
|
## [1985/applin](1985/applin/applin.c) ([README.md](1985/applin/README.md]))
|
||||||
|
|
||||||
Both Cody and Yusuke fixed this; Yusuke got this to not crash and Cody fixed it
|
Both Cody and Yusuke fixed this; Yusuke got this to not crash and Cody fixed it
|
||||||
@@ -483,6 +253,9 @@ were actually not what they appear: the only arg that existed in `main()` was
|
|||||||
if you remove it from `subr()` or don't even bother calling `subr()`?
|
if you remove it from `subr()` or don't even bother calling `subr()`?
|
||||||
|
|
||||||
|
|
||||||
|
# 1986
|
||||||
|
|
||||||
|
|
||||||
## [1986/hague](1986/hague/hague.c) ([README.md](1986/hague/README.md]))
|
## [1986/hague](1986/hague/hague.c) ([README.md](1986/hague/README.md]))
|
||||||
|
|
||||||
Cody made this use `fgets()`.
|
Cody made this use `fgets()`.
|
||||||
@@ -616,6 +389,9 @@ Some of the changes required:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 1987
|
||||||
|
|
||||||
|
|
||||||
## [1987/heckbert](1987/heckbert/heckbert.c) ([README.md](1987/heckbert/README.md))
|
## [1987/heckbert](1987/heckbert/heckbert.c) ([README.md](1987/heckbert/README.md))
|
||||||
|
|
||||||
Cody made this look more like the original entry by restoring the `#define` of
|
Cody made this look more like the original entry by restoring the `#define` of
|
||||||
@@ -692,6 +468,9 @@ Cody also added to the Makefile `-include stdio.h` in the nowadays very
|
|||||||
unlikely(?) but nevertheless suggested case that `putchar()` is not available.
|
unlikely(?) but nevertheless suggested case that `putchar()` is not available.
|
||||||
|
|
||||||
|
|
||||||
|
# 1988
|
||||||
|
|
||||||
|
|
||||||
## [1988/dale](1988/dale/dale.c) ([README.md](1988/dale/README.md]))
|
## [1988/dale](1988/dale/dale.c) ([README.md](1988/dale/README.md]))
|
||||||
|
|
||||||
Cody fixed this twisted entry (as we called it :-) ) for modern compilers,
|
Cody fixed this twisted entry (as we called it :-) ) for modern compilers,
|
||||||
@@ -838,6 +617,10 @@ Cody added the [try.sh](1988/westley/try.sh) script to show the magic of the
|
|||||||
entry as seeing the code with the result at once is far more beautiful.
|
entry as seeing the code with the result at once is far more beautiful.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 1989
|
||||||
|
|
||||||
|
|
||||||
## [1989/fubar](1989/fubar/fubar.c) ([README.md](1989/fubar/README.md]))
|
## [1989/fubar](1989/fubar/fubar.c) ([README.md](1989/fubar/README.md]))
|
||||||
|
|
||||||
Cody got this to work with modern systems. The main issues were that an
|
Cody got this to work with modern systems. The main issues were that an
|
||||||
@@ -1021,6 +804,9 @@ The `compile.sh` script allows one to specify the compiler with the `CC`
|
|||||||
environmental variable; see the README.md for details.
|
environmental variable; see the README.md for details.
|
||||||
|
|
||||||
|
|
||||||
|
# 1990
|
||||||
|
|
||||||
|
|
||||||
## [1990/baruch](1990/baruch/baruch.c) ([README.md](1990/baruch/README.md]))
|
## [1990/baruch](1990/baruch/baruch.c) ([README.md](1990/baruch/README.md]))
|
||||||
|
|
||||||
Cody added an [alternate version](1990/baruch/baruch.alt.c) which allows Turbo-C
|
Cody added an [alternate version](1990/baruch/baruch.alt.c) which allows Turbo-C
|
||||||
@@ -1194,6 +980,9 @@ The alt code did NOT have arg checks added as it is actually a copy of the
|
|||||||
original code.
|
original code.
|
||||||
|
|
||||||
|
|
||||||
|
# 1991
|
||||||
|
|
||||||
|
|
||||||
## [1991/ant](1991/ant/ant.c) ([README.md](1991/ant/README.md]))
|
## [1991/ant](1991/ant/ant.c) ([README.md](1991/ant/README.md]))
|
||||||
|
|
||||||
Cody added [alt code](1991/ant/ant.alt.c) that will be a bit easier to use for
|
Cody added [alt code](1991/ant/ant.alt.c) that will be a bit easier to use for
|
||||||
@@ -1435,6 +1224,9 @@ Cody also fixed the make clobber rule where a file was left lying about when it
|
|||||||
should have been removed.
|
should have been removed.
|
||||||
|
|
||||||
|
|
||||||
|
# 1992
|
||||||
|
|
||||||
|
|
||||||
## [1992/adrian](1992/adrian/adrian.c) ([README.md](1992/adrian/README.md]))
|
## [1992/adrian](1992/adrian/adrian.c) ([README.md](1992/adrian/README.md]))
|
||||||
|
|
||||||
Cody fixed the code so that it will try opening the file the code was compiled
|
Cody fixed the code so that it will try opening the file the code was compiled
|
||||||
@@ -1684,6 +1476,9 @@ args (2). And not that we need the help or anything for this :-) but we
|
|||||||
encourage you to try the original without two args :-)
|
encourage you to try the original without two args :-)
|
||||||
|
|
||||||
|
|
||||||
|
# 1993
|
||||||
|
|
||||||
|
|
||||||
## [1993/cmills](1993/cmills/cmills.c) ([README.md](1993/cmills/README.md]))
|
## [1993/cmills](1993/cmills/cmills.c) ([README.md](1993/cmills/README.md]))
|
||||||
|
|
||||||
Yusuke suggested that with modern systems this goes too fast so he added a call
|
Yusuke suggested that with modern systems this goes too fast so he added a call
|
||||||
@@ -1784,6 +1579,9 @@ NOTE: the `N1` and `N2` are provided as notes in the README.md file describing
|
|||||||
this code. Other code is also described there.
|
this code. Other code is also described there.
|
||||||
|
|
||||||
|
|
||||||
|
# 1994
|
||||||
|
|
||||||
|
|
||||||
## [1994/dodsond2](1994/dodsond2/dodsond2.c) ([README.md](1994/dodsond2/README.md))
|
## [1994/dodsond2](1994/dodsond2/dodsond2.c) ([README.md](1994/dodsond2/README.md))
|
||||||
|
|
||||||
Cody fixed an infinite loop that could happen when you shoot an arrow and end up
|
Cody fixed an infinite loop that could happen when you shoot an arrow and end up
|
||||||
@@ -1898,6 +1696,9 @@ automate the spoiler commands to make it easier to see the game in action from
|
|||||||
start to finish.
|
start to finish.
|
||||||
|
|
||||||
|
|
||||||
|
# 1995
|
||||||
|
|
||||||
|
|
||||||
## [1995/cdua](1995/cdua/cdua.c) ([README.md](1995/cdua/README.md]))
|
## [1995/cdua](1995/cdua/cdua.c) ([README.md](1995/cdua/README.md]))
|
||||||
|
|
||||||
Cody fixed this so that it would work with macOS. Once it could compile it
|
Cody fixed this so that it would work with macOS. Once it could compile it
|
||||||
@@ -1960,6 +1761,9 @@ wider audience, without having to extract it. The exception is when the files
|
|||||||
are created by the entry or the entry decrypts the text or whatever else.
|
are created by the entry or the entry decrypts the text or whatever else.
|
||||||
|
|
||||||
|
|
||||||
|
# 1996
|
||||||
|
|
||||||
|
|
||||||
## [1996/august](1996/august/august.c) ([README.md](1996/august/README.md]))
|
## [1996/august](1996/august/august.c) ([README.md](1996/august/README.md]))
|
||||||
|
|
||||||
Cody fixed a segfault in this program that prevented it from working right and
|
Cody fixed a segfault in this program that prevented it from working right and
|
||||||
@@ -2070,6 +1874,9 @@ Also, to fix any potential problem with displaying in GitHub the scripts
|
|||||||
provided by the author, Cody added '.sh'.
|
provided by the author, Cody added '.sh'.
|
||||||
|
|
||||||
|
|
||||||
|
# 1998
|
||||||
|
|
||||||
|
|
||||||
## [1998/banks](1998/banks/banks.c) ([README.md](1998/banks/README.md]))
|
## [1998/banks](1998/banks/banks.c) ([README.md](1998/banks/README.md]))
|
||||||
|
|
||||||
Cody set up the Makefile to have an alt build (using the same code) for those
|
Cody set up the Makefile to have an alt build (using the same code) for those
|
||||||
@@ -2285,6 +2092,9 @@ Cody also added the [try.sh](1998/tomtorfs/try.sh) script to try out a few
|
|||||||
commands that we recommended.
|
commands that we recommended.
|
||||||
|
|
||||||
|
|
||||||
|
# 2000
|
||||||
|
|
||||||
|
|
||||||
## [2000/anderson](2000/anderson/anderson.c) ([README.md](2000/anderson/README.md]))
|
## [2000/anderson](2000/anderson/anderson.c) ([README.md](2000/anderson/README.md]))
|
||||||
|
|
||||||
Cody changed this entry to use `fgets(3)` instead of `gets(3)`. This involved
|
Cody changed this entry to use `fgets(3)` instead of `gets(3)`. This involved
|
||||||
@@ -2422,6 +2232,9 @@ And although the scripts do `chmod +x` on the source code (see the README.md for
|
|||||||
details) the source code is now executable by default.
|
details) the source code is now executable by default.
|
||||||
|
|
||||||
|
|
||||||
|
# 2001
|
||||||
|
|
||||||
|
|
||||||
## [2001/anonymous](2001/anonymous/anonymous.c) ([README.md](2001/anonymous/README.md]))
|
## [2001/anonymous](2001/anonymous/anonymous.c) ([README.md](2001/anonymous/README.md]))
|
||||||
|
|
||||||
Cody fixed both the supplementary program and the program itself (both of which
|
Cody fixed both the supplementary program and the program itself (both of which
|
||||||
@@ -2693,6 +2506,9 @@ thought would be fun. He also provided the sort and punch card versions,
|
|||||||
described in the README.md, based on the author's remarks.
|
described in the README.md, based on the author's remarks.
|
||||||
|
|
||||||
|
|
||||||
|
# 2004
|
||||||
|
|
||||||
|
|
||||||
## [2004/arachnid](2004/arachnid/arachnid.c) ([README.md](2004/arachnid/README.md]))
|
## [2004/arachnid](2004/arachnid/arachnid.c) ([README.md](2004/arachnid/README.md]))
|
||||||
|
|
||||||
Cody added an [alternate version](2004/arachnid/README.md#alternate-code) which
|
Cody added an [alternate version](2004/arachnid/README.md#alternate-code) which
|
||||||
@@ -2886,6 +2702,9 @@ Cody also made it so that the `FNAME` is (for the entry file itself and
|
|||||||
just to make it a bit easier to compile.
|
just to make it a bit easier to compile.
|
||||||
|
|
||||||
|
|
||||||
|
# 2005
|
||||||
|
|
||||||
|
|
||||||
## [2005/aidan](2005/aidan/aidan.c) ([README.md](2005/aidan/README.md]))
|
## [2005/aidan](2005/aidan/aidan.c) ([README.md](2005/aidan/README.md]))
|
||||||
|
|
||||||
Cody fixed the test script, described by the author in their remarks, to refer
|
Cody fixed the test script, described by the author in their remarks, to refer
|
||||||
@@ -3125,6 +2944,9 @@ if one runs it from another directory, specifying the directory, it'll not catch
|
|||||||
it.
|
it.
|
||||||
|
|
||||||
|
|
||||||
|
# 2006
|
||||||
|
|
||||||
|
|
||||||
## [2006/birken](2006/birken/birken.c) ([README.md](2006/birken/README.md]))
|
## [2006/birken](2006/birken/birken.c) ([README.md](2006/birken/README.md]))
|
||||||
|
|
||||||
Cody fixed a segfault in macOS with this entry. The problem was a missing `+1`
|
Cody fixed a segfault in macOS with this entry. The problem was a missing `+1`
|
||||||
@@ -3225,6 +3047,9 @@ so some `int`s were changed to `long`s. The display problem might or might not
|
|||||||
have been a problem in linux with the old `int`s but this is no longer known.
|
have been a problem in linux with the old `int`s but this is no longer known.
|
||||||
|
|
||||||
|
|
||||||
|
# 2011
|
||||||
|
|
||||||
|
|
||||||
## [2011/goren](2011/goren/goren.c) ([README.md](2011/goren/README.md]))
|
## [2011/goren](2011/goren/goren.c) ([README.md](2011/goren/README.md]))
|
||||||
|
|
||||||
Cody fixed this for macOS. Before the fix it segfaulted. It worked fine under
|
Cody fixed this for macOS. Before the fix it segfaulted. It worked fine under
|
||||||
@@ -3254,6 +3079,9 @@ the author's comments (along with looking up the function for the right header
|
|||||||
file). To build try the alt rule of the Makefile.
|
file). To build try the alt rule of the Makefile.
|
||||||
|
|
||||||
|
|
||||||
|
# 2012
|
||||||
|
|
||||||
|
|
||||||
## [2012/blakely](2012/blakely/blakely.c) ([README.md](2012/blakely/README.md))
|
## [2012/blakely](2012/blakely/blakely.c) ([README.md](2012/blakely/README.md))
|
||||||
|
|
||||||
Cody added explicit linking of libm (`-lm`) as not all systems do this
|
Cody added explicit linking of libm (`-lm`) as not all systems do this
|
||||||
@@ -3315,6 +3143,9 @@ We're not sure whether we want to thank Cody or not for this :-) and he's not
|
|||||||
sure if he wants to be thanked either :-) but we appreciate it nonetheless.
|
sure if he wants to be thanked either :-) but we appreciate it nonetheless.
|
||||||
|
|
||||||
|
|
||||||
|
# 2013
|
||||||
|
|
||||||
|
|
||||||
## [2013/birken](2013/birken/birken.c) ([README.md](2013/birken/README.md]))
|
## [2013/birken](2013/birken/birken.c) ([README.md](2013/birken/README.md]))
|
||||||
|
|
||||||
Cody changed the `return 0;` at the end of the program to be `return
|
Cody changed the `return 0;` at the end of the program to be `return
|
||||||
@@ -3472,6 +3303,9 @@ Cody added explicit linking of libm (`-lm`) as not all systems do this
|
|||||||
implicitly (linux doesn't seem to but macOS does).
|
implicitly (linux doesn't seem to but macOS does).
|
||||||
|
|
||||||
|
|
||||||
|
# 2014
|
||||||
|
|
||||||
|
|
||||||
## [2014/deak](2014/deak/prog.c) ([README.md](2014/deak/README.md))
|
## [2014/deak](2014/deak/prog.c) ([README.md](2014/deak/README.md))
|
||||||
|
|
||||||
Cody fixed the code that the author provided which would be what the program
|
Cody fixed the code that the author provided which would be what the program
|
||||||
@@ -3535,6 +3369,9 @@ theoretically work for Microsoft Windows compilers (if anything works in Windows
|
|||||||
that would break it we do not know.
|
that would break it we do not know.
|
||||||
|
|
||||||
|
|
||||||
|
# 2015
|
||||||
|
|
||||||
|
|
||||||
## [2015/endoh3](2015/endoh3/prog.c) ([README.md](2015/endoh3/README.md]))
|
## [2015/endoh3](2015/endoh3/prog.c) ([README.md](2015/endoh3/README.md]))
|
||||||
|
|
||||||
Cody fixed this to compile with linux which was having a problem with duplicate
|
Cody fixed this to compile with linux which was having a problem with duplicate
|
||||||
@@ -3561,6 +3398,9 @@ He also added explicit linking of libm (`-lm`) for systems that do not do this
|
|||||||
(linux seems to not but macOS does).
|
(linux seems to not but macOS does).
|
||||||
|
|
||||||
|
|
||||||
|
# 2018
|
||||||
|
|
||||||
|
|
||||||
## [2018/bellard](2018/bellard/prog.c) ([README.md](2018/bellard/README.md))
|
## [2018/bellard](2018/bellard/prog.c) ([README.md](2018/bellard/README.md))
|
||||||
|
|
||||||
Cody added explicit linking of libm (`-lm`) for systems that do not do this
|
Cody added explicit linking of libm (`-lm`) for systems that do not do this
|
||||||
@@ -3585,6 +3425,9 @@ Cody added explicit linking of libm (`-lm`) for systems that do not do this
|
|||||||
(linux doesn't seem to but macOS does).
|
(linux doesn't seem to but macOS does).
|
||||||
|
|
||||||
|
|
||||||
|
# 2019
|
||||||
|
|
||||||
|
|
||||||
## [2019/burton](2019/burton/prog.c) ([README.md](2019/burton/README.md]))
|
## [2019/burton](2019/burton/prog.c) ([README.md](2019/burton/README.md]))
|
||||||
|
|
||||||
Cody fixed the Makefile which had a bad character, a '%' instead of a '$' which
|
Cody fixed the Makefile which had a bad character, a '%' instead of a '$' which
|
||||||
@@ -3648,6 +3491,9 @@ He also added the script [try.sh](2019/karns/try.sh) to showcase the entry a
|
|||||||
bit more easily.
|
bit more easily.
|
||||||
|
|
||||||
|
|
||||||
|
# 2020
|
||||||
|
|
||||||
|
|
||||||
## [2020/endoh2](2020/endoh2/prog.c) ([README.md](2020/endoh2/README.md))
|
## [2020/endoh2](2020/endoh2/prog.c) ([README.md](2020/endoh2/README.md))
|
||||||
|
|
||||||
Cody copied the files from the spoiler.zip file that was password protected with
|
Cody copied the files from the spoiler.zip file that was password protected with
|
||||||
@@ -3732,3 +3578,121 @@ the user has installed the appropriate library with
|
|||||||
Cody added [alternate code](2020/tsoj/README.md#alternate-code) that will feel
|
Cody added [alternate code](2020/tsoj/README.md#alternate-code) that will feel
|
||||||
more at home for vi users. One might still end up cursing (see the README.md
|
more at home for vi users. One might still end up cursing (see the README.md
|
||||||
file) but probably a lot less :-)
|
file) but probably a lot less :-)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Miscellaneous thanks
|
||||||
|
|
||||||
|
|
||||||
|
## Thank you list since 2021 Jan 01
|
||||||
|
|
||||||
|
To avoid having to change numerous "_README.md_" files to add thank you notes,
|
||||||
|
we centralize them below.
|
||||||
|
|
||||||
|
The [IOCCC judges](https://www.ioccc.org/judges.html) wish to recognize the many
|
||||||
|
important contributions to the IOCCC presentation of past IOCCC winners.
|
||||||
|
We are pleased to note the many contributions, **made since 2021 Jan 01**,
|
||||||
|
on a winner by winner basis.
|
||||||
|
|
||||||
|
|
||||||
|
## Makefile fixes and improvements
|
||||||
|
|
||||||
|
Cody made a variety of changes in all Makefiles, sometimes to get an entry to
|
||||||
|
work, all noted below, but he also **improved them all** in at least one or two
|
||||||
|
ways.
|
||||||
|
|
||||||
|
For instance he changed the `LIBS` variable to `LDFLAGS` as that is the standard
|
||||||
|
variable. This simplifies compiling without having to modify the Makefile which
|
||||||
|
can be useful if something changes or if someone is trying to fix an entry but
|
||||||
|
forgets to change the Makefile or even if they don't want to make a change due
|
||||||
|
to a temporary test. These would of course depend on the compiler invocation but
|
||||||
|
since `LDFLAGS` is standard it is more likely to be used by default so no need
|
||||||
|
to check the Makefiles.
|
||||||
|
|
||||||
|
Sometimes there were bad characters or rules that caused the entry to fail to
|
||||||
|
compile or not work in some way.
|
||||||
|
|
||||||
|
Where useful he added some notes to the Makefiles during compilation to let one
|
||||||
|
know of certain problems or features that matter.
|
||||||
|
|
||||||
|
There were some other fixes as well including mass typo fixes in the Makefiles
|
||||||
|
(though that usually does not mean it is worth a thank you note it might be
|
||||||
|
worth noting in this case). Other times it was enabling or disabling the
|
||||||
|
optimiser to fix an entry, sometimes causing other problems that also had to be
|
||||||
|
fixed, a good example being [1986/marshall](#1986marshall-readmemd) (see the
|
||||||
|
[compilers.md](1986/marshall/compilers.md) for the amusing details and all that
|
||||||
|
had to be done to fix it).
|
||||||
|
|
||||||
|
There was a 'problem' where `${MAKE}` was `$(MAKE)`: this doesn't break anything
|
||||||
|
but it is inconsistent with the rest of the `${foo}` tools.
|
||||||
|
|
||||||
|
A lot of the fixes with the Makefiles that Cody made were done with his [sgit
|
||||||
|
tool](https://github.com/xexyl/sgit).
|
||||||
|
|
||||||
|
|
||||||
|
## Typo fixes and consistency improvements
|
||||||
|
|
||||||
|
Cody, being the IOCCC's resident corrections officer :-) (and a fine one at
|
||||||
|
that, we think :-) ), made many, many typ0 (... :-) ) fixes throughout the
|
||||||
|
README.md files, scripts, other data files, Makefiles (see above) etc.
|
||||||
|
|
||||||
|
He also updated the formatting of the README.md files (after renaming the old
|
||||||
|
files to README.md) to proper markdown.
|
||||||
|
|
||||||
|
Where possible he made the presentation of the entries much more consistent
|
||||||
|
across the entries of all the years as well as other files. This is not possible
|
||||||
|
for everything (the remarks of authors, for instance, cannot be and should not
|
||||||
|
be made consistent but adding markdown where necessary in the remarks is).
|
||||||
|
|
||||||
|
A lot of these fixes were done with his [sgit
|
||||||
|
tool](https://github.com/xexyl/sgit) as well but many were done manually too.
|
||||||
|
|
||||||
|
|
||||||
|
## Thank you honor roll
|
||||||
|
|
||||||
|
There are a number of people who have contributed to several thousand changes,
|
||||||
|
fixes and important improvements and one who has literally (or numerically :-) )
|
||||||
|
contributed thousands, that we wish to thank.
|
||||||
|
|
||||||
|
We call out the extensive contributions of [Cody Boone
|
||||||
|
Ferguson](https://www.ioccc.org/winners.html#Cody_Boone_Ferguson) who is
|
||||||
|
responsible for most of the improvements and fixes including many **EXTREMELY
|
||||||
|
HARD bug fixes** like
|
||||||
|
[1988/phillipps](/thanks-for-fixes.md#1988phillipps-readmemd),
|
||||||
|
[1992/vern](/thanks-for-fixes.md#1992vern-readmemd),
|
||||||
|
[2001/anonymous](/thanks-for-fixes.md#2001anonymous-readmemd),
|
||||||
|
[2004/burley](/thanks-for-fixes.md#2004burley-readmemd) and
|
||||||
|
[2005/giljade](/thanks-for-fixes.md#2005giljade-readmemd), making entries like
|
||||||
|
[1985/sicherman](/thanks-for-fixes.md#1985sicherman-readmemd) and
|
||||||
|
[1986/wall](/thanks-for-fixes.md#1986wall-readmemd) not need `-traditional-cpp`
|
||||||
|
(all **EXTREMELY HARD**), fixing entries to work with clang (some being
|
||||||
|
**EXTREMELY HARD** like
|
||||||
|
[1991/dds](/thanks-for-fixes.md#1991dds-readmemd)) or as much as possible (like
|
||||||
|
[1989/westley](/thanks-for-fixes.md#1989westley-readmemd), a true masterpiece
|
||||||
|
that is **INCREDIBLY HARD, _MUCH, MUCH MORE SO_ than any other fix!**), porting
|
||||||
|
entries to macOS (some being **EXTREMELY HARD** like
|
||||||
|
[1998/schweikh1](/thanks-for-fixes.md#1998schweikh1-readmemd)), fixing code like
|
||||||
|
[2001/herrmann2](/thanks-for-fixes.md#2001herrmann2-readmemd) to work in both
|
||||||
|
32-bit/64-bit which *can be* **EXTREMELY HARD**, providing alternate code
|
||||||
|
where useful/necessary, fixing possible/removing dead links,
|
||||||
|
typo/consistency fixes, improving **ALL _Makefiles_** and writing
|
||||||
|
[sgit](https://github.com/xexyl/sgit) that we installed locally to easily run
|
||||||
|
`sed` on files in the repo to help build the website. **THANK YOU VERY MUCH**
|
||||||
|
for your extensive efforts in helping improve the IOCCC presentation of past
|
||||||
|
IOCCC winners and fixing almost all past entries for modern systems!
|
||||||
|
|
||||||
|
[Yusuke Endoh](https://www.ioccc.org/winners.html#Yusuke_Endoh) supplied a
|
||||||
|
number of important bug fixes to a number of past IOCCC winners. Some of those
|
||||||
|
fixes were **EXTREMELY TECHNICALLY CHALLENGING** such as
|
||||||
|
[1989/robison](/thanks-for-fixes.md#1989robison-readmemd),
|
||||||
|
[1990/cmills](https://github.com/ioccc-src/temp-test-ioccc/blob/master/thanks-for-fixes.md#1990cmills-readmemd),
|
||||||
|
[1992/lush](/thanks-for-fixes.md#1992lush-readmemd) and
|
||||||
|
[2001/ctk](/thanks-for-fixes.md#2001ctk-readmemd). **THANK YOU VERY MUCH** for
|
||||||
|
your help!
|
||||||
|
|
||||||
|
A good number of the [past winners of the
|
||||||
|
IOCCC](https://www.ioccc.org/winners.html) tested, identified and helped correct
|
||||||
|
and/or improve the write-ups of fellow IOCCC winners for the year that they won.
|
||||||
|
The list of those past winners is too long to mention: nevertheless the [IOCCC
|
||||||
|
judges](https://www.ioccc.org/judges.html) **VERY MUCH APPRECIATE** those who
|
||||||
|
helped improve the presentation of their fellow IOCCC winners.
|
||||||
Reference in new issue
Block a user