diff --git a/bugs.md b/bugs.md index c3da92b3c..4875c54e9 100644 --- a/bugs.md +++ b/bugs.md @@ -19,11 +19,201 @@ entries in the file (if you're not we can add a link to your personal website if you have one if you like). -## Known bugs to fix + +# 1984 -### [1995/cdua](1995/cdua/cdua.c) ([README.md](1995/cdua/README.md)) +## [1984/decot](1984/decot/decot.c) ([README.md](1984/decot/README.md)) +### Status: Requires a compiler supporting -traditional-cpp - alternate code requested + +This entry needs a compiler that support `-traditional-cpp`. `gcc` +supports this but `clang` does not. Please be advised that `gcc` under macOS is +actually gcc if it looks like it's gcc (two different binaries). + +If you do wish to provide an alternate version of the program that does not need compiler supporting -traditional-cpp +you are summit such code via a [GitHub pull request](https://github.com/ioccc-src/temp-test-ioccc/pulls) +and we will be happy to credit you in the entry's _README.md_ file. + + +## [1984/mullender](1984/mullender/mullender.c) ([README.md](1984/mullender/README.md)) + +### Status: Compiled executable crashes - please help us fix + + +This entry is likely to fail and/or dump core on any computer other than a +Vax-11 or pdp-11. In 1984 machine dependent code was allowed. + +To see this entry in action check out [Yusuke +Endoh](/winners.html#Yusuke_Endoh)'s [2015/endoh3](2015/endoh3) entry. Otherwise +a Vax-11 or pdp-11 emulator would be necessary. + + +# 1985 + + +## [1985/sicherman](1985/sicherman/sicherman.c) ([README.md](1985/sicherman/README.md)) + +### Status: Requires a compiler supporting -traditional-cpp - alternate code requested + +This entry needs a compiler that support `-traditional-cpp`. `gcc` +supports this but `clang` does not. Please be advised that `gcc` under macOS is +actually gcc if it looks like it's gcc (two different binaries). + +If you do wish to provide an alternate version of the program that does not need compiler supporting -traditional-cpp +you are summit such code via a [GitHub pull request](https://github.com/ioccc-src/temp-test-ioccc/pulls) +and we will be happy to credit you in the entry's _README.md_ file. + + +# 1986 + + +## [1986/august](1986/august/august.c) ([README.md](1986/august/README.md)) + +### Status: INABIAF - please do not fix + +This entry is known to segfault after printing its output. It was documented by +the judges and needn't be fixed. + + +## [1986/holloway](1986/holloway/holloway.c) ([README.md](1986/holloway/README.md)) + +### Status: INABIAF - please do not fix + +When compiling this entry you might get an incompatible pointer type warning but +this should be ignored. When [Cody Boone +Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this he experimented with the +alternatives and it did not work. Thus if you see something like: + +```c +[holloway.c:15:11: warning: incompatible pointer types initializing 'char *' with an expression of type 'char **'; dereference with * [-Wincompatible-pointer-types] + char *t = s; + ^ ~ + * +``` + + +## [1986/wall/wall.c](1986/wall/wall.c) ([README.md](1986/wall/README.md)) + +### Status: Requires a compiler supporting -traditional-cpp - alternate code requested + +This entry needs a compiler that support `-traditional-cpp`. `gcc` +supports this but `clang` does not. Please be advised that `gcc` under macOS is +actually gcc if it looks like it's gcc (two different binaries). + +If you do wish to provide an alternate version of the program that does not need compiler supporting -traditional-cpp +you are summit such code via a [GitHub pull request](https://github.com/ioccc-src/temp-test-ioccc/pulls) +and we will be happy to credit you in the entry's _README.md_ file. + +it is NOT a problem and should not be changed. + + +# 1987 + + +# 1988 + + +## [1988/dale](1988/dale/dale.c) ([README.md](1988/dale/README.md)) + +### Status: Requires a compiler supporting -traditional-cpp - alternate code requested + +This entry needs a compiler that support `-traditional-cpp`. `gcc` +supports this but `clang` does not. Please be advised that `gcc` under macOS is +actually gcc if it looks like it's gcc (two different binaries). + +If you do wish to provide an alternate version of the program that does not need compiler supporting -traditional-cpp +you are summit such code via a [GitHub pull request](https://github.com/ioccc-src/temp-test-ioccc/pulls) +and we will be happy to credit you in the entry's _README.md_ file. + + +# 1989 + + +## [1989/westley](1989/westley/westley.c) ([README.md](1989/westley/README.md)) + +### Status: main() function args not allowed - please help us fix + +Although [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this for +some of the versions that are generated (see below tip) it will not work for +all. He noted that trying to fix it in some cases causes a segfault and in other +cases it fails to generate some of the files (others are okay) at all (empty +files). + +He gives a tip on the problem: main() requires the second, third and fourth arg +to be a `char **`. This didn't use to be the case and some compilers like gcc +don't complain. He was able to get `main()` to be correct BUT a feature is that +it uses ROT13 to decrypt the function `znva` to be main in generated files. +Since that function does not have the correct types when converted to main() it +fails to compile. But as he said changing the type causes either a segfault or +files not generated at all. `ver1`, `ver2` and `ver3` are the problematic ones. +The segfault happens when running the main program. + + +# 1990 + + +## [1990/jaw](1990/jaw/jaw.c) ([README.md](1990/jaw/README.md)) + +### Status: INABIAF - please do not fix + +[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed the scripts to +work in modern systems. He notes however that the command in the try section, +the one to test the official C entry, appears to not work with macOS, giving: + + +```sh +$ echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw +oops: Undefined error: 0 +oops: Undefined error: 0 +``` + +However this is because the entry uses `perror()` and it just so happens that +the default `errno` gives that result. For instance if you run the following C +program under macOS you will get undefined error but if you do it under linux +you'll likely get success. + + +```c +#include +#include +#include +int main() +{ + errno = 0; + printf("%d, %s\n", errno, strerror(errno)); +} +``` + +In fact the condition which is in the `a()` function on line 18 of the entry +namely: + + I k>16) + +is true on both linux and macOS, with `k` being equal to 22. + +Should the entry use `perror()`? Perhaps not but we're not sure of its purpose +so it can stay for now with this note. + + +# 1991 + + +# 1992 + + +# 1993 + + +# 1994 + + +# 1995 + + +## [1995/cdua](1995/cdua/cdua.c) ([README.md](1995/cdua/README.md)) + +### Status: known bug - please help us fix This did not originally compile under macOS and after it did compile under macOS, it crashed. [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this but he @@ -33,7 +223,22 @@ related to making it work under macOS as all that did was removing some invalid prototypes and use `printf()` instead of the invalid pointer to it (incompatible type). -### [2001/anonymous](2001/anonymous/anonymous.c) ([README.md](2001/anonymous/README.md)) + +# 1996 + + +# 1998 + + +# 2000 + + +# 2001 + + +## [2001/anonymous](2001/anonymous/anonymous.c) ([README.md](2001/anonymous/README.md)) + +### Status: known bug - please help us fix This entry seems to no longer work and we would appreciate any help from anyone who can fix this. [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) has @@ -73,7 +278,12 @@ on. Note that it needs to be compiled as a x86 program. warning in their comments on that. -### [2004/burley](2004/burley/burley.c) ([README.md](2004/burley/README.md)) +# 2004 + + +## [2004/burley](2004/burley/burley.c) ([README.md](2004/burley/README.md)) + +### Status: known bug - please help us fix This entry did not compile with clang but [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this problem. He notes however that @@ -102,216 +312,9 @@ needless cast to `char *` from gets(). This cast remains in the code however. however. -### [2005/giljade](2005/giljade/giljade.c) ([README.md](2005/giljade/README.md)) +## [2004/gavin](2004/gavin/gavin.c) ([README.md](2004/gavin//README.md)) -[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) noted that this -requires both 32-bit CPUs (data size?) and also cannot have optimiser enabled. -It might be that it can be fixed, perhaps by changing the int sizes and bitwise -operations, but if not this will not work with some systems like modern Macs as -Apple has made it hard to compile 32-bit applications. - - -### [2014/vik](2014/vik/prog.c) ([README.md](2014/vik/README.md)) - - -[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) discovered a bug that -shows itself in some cases (it works in others) when working on his [2020 Enigma -machine](2020/ferguson2/prog.c) entry. See his -[README.md](2020/ferguson2/README.md) for details (search for `vik` in the -file). - -He provides a tip in testing the problem: it might help to use the Enigma -machine to find problems as it will allow you to verify what is correct and what -is not. Again see his README.md for details. - - -## Compiler specific requirements on type of args to main - - -The following entries have a problem in that the args to main() are not of a -specific type due this being allowed in earlier C. This shows itself in some -compilers like clang. Looking at the source code of `clang` there is no way to -override this requirement so these entries will fail to compile with clang. - -Please be aware that gcc under macOS is clang despite the fact it might appear -to be gcc: no symlink and both gcc and clang exist. - -[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) has fixed several but -there are some he has not yet fixed and we welcome your help! - -A tip: in the older days args to main() not given a type were used as ints but -when they're required to be `char **` this can cause a problem. In some cases -Cody was able to use a `char *` inside main() (see -[1989/tromp/tromp.c](1989/tromp/tromp.c) for an example). In other cases he was -able to dereference the pointers to be used like an int. Some might require -additional functions are added. - -For one-liners please keep the file one line! - -You may provide an alt version for the fix as well. - - -### [1989/westley](1989/westley/westley.c) ([README.md](1989/westley/README.md)) - - -Although [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this for -some of the versions that are generated (see below tip) it will not work for -all. He noted that trying to fix it in some cases causes a segfault and in other -cases it fails to generate some of the files (others are okay) at all (empty -files). - -He gives a tip on the problem: main() requires the second, third and fourth arg -to be a `char **`. This didn't use to be the case and some compilers like gcc -don't complain. He was able to get `main()` to be correct BUT a feature is that -it uses ROT13 to decrypt the function `znva` to be main in generated files. -Since that function does not have the correct types when converted to main() it -fails to compile. But as he said changing the type causes either a segfault or -files not generated at all. `ver1`, `ver2` and `ver3` are the problematic ones. -The segfault happens when running the main program. - -This will not be a problem with gcc. - - -## INABIAF (it's not a bug it's a feature) - - -The following entries should NOT be touched: they are system specific by design -but are noteworthy nonetheless. - - -### [1986/august](1986/august/august.c) ([README.md](1986/august/README.md)) - - -This entry is known to segfault after printing its output. It was documented by -the judges and needn't be fixed. - - -### [1990/jaw](1990/jaw/jaw.c) ([README.md](1990/jaw/README.md)) - - -[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed the scripts to -work in modern systems. He notes however that the command in the try section, -the one to test the official C entry, appears to not work with macOS, giving: - - - $ echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw - oops: Undefined error: 0 - oops: Undefined error: 0 - - -However this is because the entry uses `perror()` and it just so happens that -the default `errno` gives that result. For instance if you run the following C -program under macOS you will get undefined error but if you do it under linux -you'll likely get success. - - -```c -#include -#include -#include -int main() -{ - errno = 0; - printf("%d, %s\n", errno, strerror(errno)); -} -``` - -In fact the condition which is in the `a()` function on line 18 of the entry -namely: - - I k>16) - -is true on both linux and macOS, with `k` being equal to 22. - -Should the entry use `perror()`? Perhaps not but we're not sure of its purpose -so it can stay for now with this note. - -### [2005/mynx](2005/mynx/mynx.c) ([README.md](2005/mynx/README.md)) - -[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) notes that, though -probably obvious, this entry will not work with https. He changed the code to -scan for https too (it exited before) in case someone comes up with a clever -command line to make it work but the problem is a secure connection has to first -be set up in order to give http commands. This is not a bug but it's worth -pointing out as it won't work on as many websites as it used to including the -[IOCCC website](https://www.ioccc.org) itself. - - -### [2019/endoh](2019/endoh/prog.c) ([README.md](2019/endoh/README.md)) - - -As a backtrace quine this entry is SUPPOSED to segfault so this should not be -touched either. - - -### [2020/ferguson1](2020/ferguson1/prog.c) ([README.md](2020/ferguson1/README.md)) - - -There are some things that might appear to be bugs but are actually features or -things that are misinterpreted as bugs. See his -[bugs.md](2020/ferguson1/bugs.md) and -[troubleshooting.md](2020/ferguson1/troubleshooting.md) files for details. - -.. entries to be added later .. - - -## Mis-features that should not be fixed - - -The following entries should not be touched either as although it might seem -wrong they are not. - - -### [1986/holloway](1986/holloway/holloway.c) ([README.md](1986/holloway/README.md)) - - -When compiling this entry you might get an incompatible pointer type warning but -this should be ignored. When [Cody Boone -Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this he experimented with the -alternatives and it did not work. Thus if you see something like: - -```c -[holloway.c:15:11: warning: incompatible pointer types initializing 'char *' with an expression of type 'char **'; dereference with * [-Wincompatible-pointer-types] - char *t = s; - ^ ~ - * - -``` - -it is NOT a problem and should not be changed. - - -## Entries that require a compiler that support `-traditional-cpp` - - -The following entries need a compiler that support `-traditional-cpp`. `gcc` -supports this but `clang` does not. Please be advised that `gcc` under macOS is -actually gcc if it looks like it's gcc (two different binaries). - -- [1984/decot](1984/decot/decot.c) ([README.md](1984/decot/README.md)) -- [1985/sicherman](1985/sicherman/sicherman.c) ([README.md](1985/sicherman/README.md)) -- [1986/wall/wall.c](1986/wall/wall.c) ([README.md](1986/wall/README.md)) -- [1988/dale](1988/dale/dale.c) ([README.md](1988/dale/README.md)) - - -XXX - .. more entries to be added later .. - - -## Entries that can compile but crash (sometimes or always) - - -### [1984/mullender](1984/mullender/mullender.c) ([README.md](1984/mullender/README.md)) - - -This entry is likely to fail and/or dump core on any computer other than a -Vax-11 or pdp-11. In 1984 machine dependent code was allowed. - -To see this entry in action check out [Yusuke -Endoh](/winners.html#Yusuke_Endoh)'s [2015/endoh3](2015/endoh3) entry. Otherwise -a Vax-11 or pdp-11 emulator would be necessary. - - -### [2004/gavin](2004/gavin/gavin.c) ([README.md](2004/gavin//README.md)) +### Status: Compiled executable crashes - please help us fix Segmentation fault will occur in some systems. For instance on macOS with the @@ -409,3 +412,150 @@ gavin_files: boot.b lilo.conf prim gavin_install.txt The current ([Makefile](2004/gavin/Makefile) was modified to try and fit into the current IOCCC build environment. + + +# 2005 + + +## [2005/giljade](2005/giljade/giljade.c) ([README.md](2005/giljade/README.md)) + +### Status: known bug - please help us fix + +[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) noted that this +requires both 32-bit CPUs (data size?) and also cannot have optimiser enabled. +It might be that it can be fixed, perhaps by changing the int sizes and bitwise +operations, but if not this will not work with some systems like modern Macs as +Apple has made it hard to compile 32-bit applications. + + +## [2005/mynx](2005/mynx/mynx.c) ([README.md](2005/mynx/README.md)) + +### Status: INABIAF - please do not fix + +[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) notes that, though +probably obvious, this entry will not work with https. He changed the code to +scan for https too (it exited before) in case someone comes up with a clever +command line to make it work but the problem is a secure connection has to first +be set up in order to give http commands. This is not a bug but it's worth +pointing out as it won't work on as many websites as it used to including the +[IOCCC website](https://www.ioccc.org) itself. + + +# 2006 + + +# 2011 + + +# 2012 + + +# 2013 + + +# 2014 + + +## [2014/vik](2014/vik/prog.c) ([README.md](2014/vik/README.md)) + +### Status: known bug - please help us fix + +[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) discovered a bug that +shows itself in some cases (it works in others) when working on his [2020 Enigma +machine](2020/ferguson2/prog.c) entry. See his +[README.md](2020/ferguson2/README.md) for details (search for `vik` in the +file). + +He provides a tip in testing the problem: it might help to use the Enigma +machine to find problems as it will allow you to verify what is correct and what +is not. Again see his README.md for details. + + +# 2015 + + +# 2018 + + +# 2019 + + +## [2019/endoh](2019/endoh/prog.c) ([README.md](2019/endoh/README.md)) + +### Status: INABIAF - please do not fix + +As a backtrace quine this entry is SUPPOSED to segfault so this should not be +touched either. + + +# 2020 + + +## [2020/ferguson1](2020/ferguson1/prog.c) ([README.md](2020/ferguson1/README.md)) + +### Status: INABIAF - please do not fix + +There are some things that might appear to be bugs but are actually features or +things that are misinterpreted as bugs. See his +[bugs.md](2020/ferguson1/bugs.md) and +[troubleshooting.md](2020/ferguson1/troubleshooting.md) files for details. + + +# List of Status - Please read + +Entries below have one of the following _Status_ values. + +Please see the text below for more information. + +### Status: known bug - please help us fix + +This entry has a bug that needs fixing. Are you able to fix it? + +We welcome your help! Please submit a [GitHub pull request](https://github.com/ioccc-src/temp-test-ioccc/pulls) +and we will be happy to credit you in the entry's _README.md_ file. + +### Status: main() function args not allowed - please help us fix + +The following entries have a problem in that the args to main() are +not of a specific type due this being allowed in earlier C. This +shows itself in some compilers like clang. Looking at the source +code of clang there is no way to override this requirement so these +entries will fail to compile with clang. + +Please be aware that gcc under macOS is clang despite the fact it +might appear to be gcc: no symlink and both gcc and clang exist. + +A tip: in the older days args to main() not given a type were used +as ints but when they're required to be char ** this can cause a +problem. In some cases Cody was able to use a char * inside main() +(see 1989/tromp/tromp.c for an example). In other cases he was able +to dereference the pointers to be used like an int. Some might +require additional functions are added. + +Request: For one-liners please keep the file one line! + +We welcome your help! Please submit a [GitHub pull request](https://github.com/ioccc-src/temp-test-ioccc/pulls) +and we will be happy to credit you in the entry's _README.md_ file. + +### Status: Compiled executable crashes - please help us fix + +While the entry can compile, the resulting executable sometimes or always crashes. + +We welcome your help! Please submit a [GitHub pull request](https://github.com/ioccc-src/temp-test-ioccc/pulls) +and we will be happy to credit you in the entry's _README.md_ file. + +### Status: Requires a compiler supporting -traditional-cpp - alternate code requested + +This entry needs a compiler that support -traditional-cpp. gcc supports this but clang does not. + +Please be advised that gcc under macOS is actually gcc if it looks like it's gcc (two different binaries). + +If you do wish to provide an alternate version of the program that does not need compiler supporting -traditional-cpp +you are summit such code via a [GitHub pull request](https://github.com/ioccc-src/temp-test-ioccc/pulls) +and we will be happy to credit you in the entry's _README.md_ file. + +### Status: INABIAF - please do not fix + +INABIAF: It's not a bug it's a feature :-) + +The following entries should NOT be touched: they are system specific by design but are noteworthy nonetheless.