From 2c8e14adaba68a2733ab59991beb2b319d006f81 Mon Sep 17 00:00:00 2001
From: Landon Curt Noll
Again, THANK YOU!
-BTW: You may skip if you’re only interested in knowing about entries with known issues.
Entries below have one or more of the following STATUS values. Please see the text below for more information. If an entry has more than one status it means that either they all apply or they compliment each other. For instance @@ -246,30 +248,38 @@ break code! Cody Boone Ferguson h experienced this many times with vim so he tends to disable all format options when formatting code. In vim you should be able to do that with:
:set formatoptions=
-Please help us fix!
Entries with this status have one or more bugs that need to be fixed. Are you able to fix it? We welcome your help!
An important point to note is that there is a very fine line when fixing bugs where it might sometimes border on tampering with the program. And after all, these are not meant to be maintainable or even good programming style! Use careful judgement when fixing bugs please!
-Please help test, and if necessary fix this bug!
Entries with this status might or might not have a bug possibly depending on the system. In these entries it’s unknown if there is a bug and sometimes it’s because we do not remember and sometimes we don’t have the appropriate system or environment to test and fix any possible problems.
-Can you confirm there is a bug?
Although these entries appear to work for one or more reasons we’re unsure if they are completely functional. Can you confirm this? Please let us know so we can fix it!
-Please help test and if necessary fix this bug!
Entries with this status almost certainly have a bug or some other problem. The issue or issues might depend on the system much like the above STATUS: possible bug (possibly depending on system).
-Please help us fix this bug!
Entries with this status do not work under some OSes and/or architectures (and/or something else?). Please help us to fix it!
-Please provide alternative code or fix for more compilers!
Some entries do not work with some compilers. A good example is 1992/lush which uses error messages from the compiler to generate its output.
@@ -278,7 +288,8 @@ tampering this is okay though it’s probably not possible with the above mentioned entry; otherwise it would be better to provide alternate code. In some cases it might be better to provide alternate code anyway. Use a judgement call here as best you can manage. -Please help us fix the main() function!
NOTE: it appears that most if not all of these have been fixed except perhaps for 1989/westley but this has probably been fixed as much as possible given the nature of how it generates code: the entry itself @@ -310,7 +321,8 @@ differently). In other cases he was able to dereference the pointers to be used like an int and other times a cast was necessary. He used other various techniques to get them to compile. In some cases this introduced a problem but typically if not always that problem exists with compilers that are less strict.
-Please help modify so that main() as 2 or 3 args!
Because some versions of clang complain about the number of args of main() and
in particular say (when it has four, for instance) that it’s only allowed to
have 0, 2 or 3 args, numerous entries had a second arg added to main() (if
@@ -319,14 +331,16 @@ impossible especially as it already claims having only one arg is not allowed.
At this time (04 Feb 2024) there is one entry known (it is possible that not all
were checked) that has this problem but it’s not as simple as the others to fix
without breaking it.
Please help us fix this bug!
While such entries can compile, the resulting executable sometimes or always crashes.
NOTE: this does NOT apply to entries under the INABIAF status (though they’re not mutually exclusive in some cases).
REMINDER: if you’re debugging a crash it will be very helpful to have -O0 -g
or if you can -ggdb3 when compiling as that will help with debugging symbols.
Please help us change use of gets() to fgets(), if possible.
Entries with this status use gets() which is unsafe because it has no limit on
the length of the string. Cody Boone
Ferguson has fixed several of these and he’s
@@ -364,16 +378,14 @@ during compiling, linking and/or runtime, sometimes causing confusing output (as
noted above).
Sometimes getline(3) will work but note that this function also stores the
newline just like fgets(3).
Please help is by finding missing file(s)!
In these entries one file or multiple files are missing from the repo. In some cases these files can be found on the IOCCC website but in other cases they are entirely absent. In this case you’ll probably have to contact the author (unless you are the author! :-) ).
-In these entries one or more make rules noted by the author and/or judges is/are -missing. You might consider looking at the archive as a good place -to find them.
-Please help is fix missing or dead link(s)!
This is as they sound: a link is either missing or it’s no longer valid. In many cases the Internet Wayback Machine will be very useful but there happens to be numerous links that this is not helpful. In other @@ -489,7 +501,7 @@ and does not crash.
If you use either fubar or ouroboros.c (it’s executable, see index.html for
@@ -510,7 +522,7 @@ operators like /. To see what operators are supported check the sou
With version 2 it sometimes segfaults even with the same input where other times @@ -663,7 +675,7 @@ more time and resources to run as well. For instance:
Cody Boone Ferguson
@@ -766,7 +778,7 @@ have to remove the outer () pair.
Leo Broukhis, before he was an IOCCC judge, sent the IOCCC judges an email:
@@ -809,7 +821,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
@@ -829,7 +841,7 @@ to be read (in case the gets(3) was not used in a loop).
When you start the program everything starts to move over to the right side and @@ -839,7 +851,7 @@ click the mouse it takes it back towards the centre.
We used a patch from Yusuke Endoh to get this to @@ -922,7 +934,7 @@ at 80 columns. However due to the nature of the program if the terminal is < in column width it will not display right. To see the number of columns in your terminal try:
echo $COLUMNS
-The author suggested that the alternate version, which Cody added (but fixed for modern systems), should print
main(l,a,n,d)...
@@ -951,7 +963,7 @@ not a misunderstanding).
The author wrote in the documentation file ant.txt that
there is a version of the code that is not obfuscated. This file, agag.c does
not exist in the archive. Do you have it? Please provide it!
-STATUS: known bug - please help us fix
+STATUS: known bug - please help us fix
Source code: 1993/cmills/cmills.c
Information: 1993/cmills/index.html
In multiple platforms, both macOS and also linux (in particular a RHEL 9.3
@@ -1047,7 +1059,7 @@ one liner it’s already quite long.
1994/schnitzi
-STATUS: uses gets() - change to fgets() if possible
+STATUS: uses gets() - change to fgets() if possible
Source code: 1994/schnitzi/schnitzi.c
Information: 1994/schnitzi/index.html
NOTE: the generated code of all versions, when fed its own source, will differ
@@ -1163,7 +1175,7 @@ if it checked for != EOF.
1994/tvr
-STATUS: known bug - please help us fix
+STATUS: known bug - please help us fix
Source code: 1994/tvr/tvr.c
Information: 1994/tvr/index.html
The judges said the following in their remarks:
@@ -1192,7 +1204,7 @@ it calls getchar() via the pointer m. So this is a fea
1995/leo
-STATUS: known bug - please help us fix
+STATUS: known bug - please help us fix
Source code: 1995/leo/leo.c
Information: 1995/leo/index.html
The judges suggested that the following commands should result in output:
@@ -1230,7 +1242,7 @@ compilers to use the program but this file is missing. Can you provide it?
1996/gandalf
-STATUS: missing or dead link - please provide them
+STATUS: missing or dead link - please provide them
Source code: 1996/gandalf/gandalf.c
Information: 1996/gandalf/index.html
The link was http://www.tc3.co.uk/~gandalf/G.HTML but this no longer exists as
@@ -1239,7 +1251,7 @@ it was instead requiring a login / password.
1996/huffman
-STATUS: uses gets() - change to fgets() if possible
+STATUS: uses gets() - change to fgets() if possible
Source code: 1996/huffman/huffman.c
Information: 1996/huffman/index.html
The changing to using fgets(3) in this entry is a bit more complicated. It can
@@ -1280,7 +1292,7 @@ almost be done except that some of the output of the
This should NOT be fixed.
NOTE: the two boards will be on top of each other so you will have to drag one
off the other so that you can properly play.
-STATUS: missing or dead link - please provide them
+STATUS: missing or dead link - please provide them
As well: the link which was http://www.uio.no/~jonth is no longer valid and
there’s no archive on the Internet Wayback Machine. Do you know of a proper URL?
We greatly appreciate your help here!
@@ -1294,7 +1306,7 @@ We greatly appreciate your help here!
1998/dlowe
-STATUS: missing or dead link - please provide them
+STATUS: missing or dead link - please provide them
Source code: 1998/dlowe/dlowe.c
Information: 1998/dlowe/index.html
The domain http://pootpoot.com no longer exists as it once did. The judges have
@@ -1305,7 +1317,7 @@ to the page as well! You’ll have IOCCC fame for reviving a pootifier! :-)
1998/dloweneil
-STATUS: missing or dead link - please provide them
+STATUS: missing or dead link - please provide them
Source code: 1998/dloweneil/dloweneil.c
Information: 1998/dloweneil/index.html
See above entry 1998/dlowe.
@@ -1335,7 +1347,7 @@ is in the index.html file as something to try and ponder.
2000/dlowe
-STATUS: known bug - please help us fix
+STATUS: known bug - please help us fix
Source code: 2000/dlowe/dlowe.c
Information: 2000/dlowe/index.html
The author gives an example command:
@@ -1561,7 +1573,7 @@ elves of Imladris :-(
2001/bellard
STATUS: INABIAF - please DO NOT fix
-STATUS: doesn’t work with some platforms - please help us fix
+STATUS: doesn’t work with some platforms - please help us fix
Source code: 2001/bellard/bellard.c
Information: 2001/bellard/index.html
The two statuses might seem contradictory but that is a complicated question.
@@ -1618,12 +1630,12 @@ before the fixes there.
2001/herrmann1
-STATUS: missing files - please provide them
+STATUS: missing files - please provide them
Source code: 2001/herrmann1/herrmann1.c
Information: 2001/herrmann1/index.html
The author referred to the file herrmann1.turing but it does not exist not even
in the archive. Do you have a copy? Please provide it!
-STATUS: known bug - please help us fix
+STATUS: known bug - please help us fix
There is also a bug in part. During compilation you’re supposed to see some
animation but this does not seem to work with modern gcc versions. It appears
that version 2.95 works but maybe others do as well. Do you have a fix? We would
@@ -1650,7 +1662,7 @@ set. In other words both have to be ASCII or EBCDIC - not one of each.
2001/rosten
-STATUS: missing files - please provide them
+STATUS: missing files - please provide them
Source code: 2001/rosten/rosten.c
Information: 2001/rosten/index.html
The author stated that there is a cat man page for this program in case one
@@ -1667,14 +1679,14 @@ details and a workaround.
2001/westley
-STATUS: uses gets() - change to fgets() if possible
+STATUS: uses gets() - change to fgets() if possible
Source code: 2001/westley/westley.c
Information: 2001/westley/index.html
This function uses gets(3) but it would be ideal if it used fgets(3). This
one is rather complicated and will be looked at later (some progress was made by
Cody but it is less important than other work) but you are welcome to try
and fix this if you wish.
-STATUS: main() has only one arg - try and make it have 2 or 3
+STATUS: main() has only one arg - try and make it have 2 or 3
This program only has one arg to main(). However changing it to have 2 is not
as simple as it might seem. Doing this breaks things. If memory serves changing
it to two will, for instance, break the punch card code output. It might be that
@@ -1685,13 +1697,13 @@ does too. You might try running the try.sh script and redirect it t
first so that you can compare the output. Make sure to recreate the extra files
as described by the author if you do fix this. This might be looked at later if
nobody else takes up the challenge.
-STATUS: missing files - please provide them
+STATUS: missing files - please provide them
The author referred to a file card.gif but this file is missing. Do you have
it? Please provide it!
2001/williams
-STATUS: known bug - please help us fix
+STATUS: known bug - please help us fix
Source code: 2001/williams/williams.c
Information: 2001/williams/index.html
There seem to be a couple bugs at least in this entry. The first one is that
@@ -1737,8 +1749,8 @@ sleeping.
2004/gavin
-STATUS: compiled executable crashes - please help us fix
-STATUS: doesn’t work with some platforms - please help us fix
+STATUS: compiled executable crashes - please help us fix
+STATUS: doesn’t work with some platforms - please help us fix
Source code: 2004/gavin/gavin.c
Information: 2004/gavin//index.html
Segmentation fault will occur in some systems. For instance on macOS with the
@@ -1960,7 +1972,7 @@ used decimal mode, or any of the “undocumented” instructions.
2006/birken
-STATUS: uses gets() - change to fgets() if possible
+STATUS: uses gets() - change to fgets() if possible
Source code: 2006/birken/birken.c
Information: 2006/birken/index.html
This entry uses gets(3) which is unsafe and provides annoying warnings, most
@@ -1981,7 +1993,7 @@ with possibly corrupt GIF files.
2006/monge
-STATUS: doesn’t work with some platforms - please help us fix
+STATUS: doesn’t work with some platforms - please help us fix
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
@@ -2068,7 +2080,7 @@ bins at the edges.
2011/dlowe
-STATUS: missing or dead link - please provide them
+STATUS: missing or dead link - please provide them
Source code: 2011/dlowe/dlowe.c
Information: 2011/dlowe/index.html
The author’s website, http://www.pootpoot.net, no longer exists as it once did,
@@ -2098,7 +2110,7 @@ remarks instead.
2011/richards
-STATUS: doesn’t work with some platforms - please help us fix
+STATUS: doesn’t work with some platforms - please help us fix
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
@@ -2492,7 +2504,7 @@ player become bigger, stay away from blocks!
2014/vik
-STATUS: known bug - please help us fix
+STATUS: known bug - please help us fix
Source code: 2014/vik/prog.c
Information: 2014/vik/index.html
Cody Boone Ferguson discovered a bug to do
@@ -2619,7 +2631,7 @@ fixing the syntax error in the generated ioccc.json file.
2018/mills
-STATUS: known bug - please help us fix
+STATUS: known bug - please help us fix
Source code: 2018/mills/prog.c
Information: 2018/mills/index.html
After exiting the program (with ctrl-e) if you try running it again you will
@@ -2732,7 +2744,7 @@ in the de.sh/de.alt.sh scripts:
2019/dogon
-STATUS: uses gets() - change to fgets() if possible
+STATUS: uses gets() - change to fgets() if possible
Source code: 2019/dogon/prog.c
Information: 2019/dogon/index.html
The author does not it uses gets() and one will get warnings but it would be
@@ -2947,6 +2959,8 @@ fixes] via a GitHub
request or otherwise, we
thank you as well for the help! We will happily add you to the
thanks file as well.
+
+Jump to: top