diff --git a/bugs.md b/bugs.md index 27ccf5816..e7af6ea82 100644 --- a/bugs.md +++ b/bugs.md @@ -1,5 +1,6 @@ # BUGS and (mis)FEATURES + There are a number of known problems with IOCCC winners: many of which have to do with differences between today's compiler environments and those of today. In some cases the original code has a bug, some @@ -18,12 +19,13 @@ 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 that are OK to fix +## Known bugs to fix ### [1995/cdua](1995/cdua/cdua.c) ([README.md](1995/cdua/README.md)) -This did not compile under macOS and after it did it crashed. + +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 observed that sometimes the program asks the user to hit return a second time to resume solving the maze. It does not always happen. It doesn't seem to be @@ -34,6 +36,7 @@ type). ### [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 @@ -44,8 +47,10 @@ 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 @@ -71,6 +76,7 @@ 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 @@ -88,24 +94,24 @@ 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. -### [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. - ### [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, appear to not work with macOS, giving: @@ -144,9 +150,9 @@ Should the entry use `perror()`? Perhaps not but we're not sure of its purpose so it can stay for now with this note. - ### [1996/westley](1996/westley/westley.c) ([README.md](1996/westley/README.md)) + This entry will possibly segfault even when showing the proper output in the `clock1`, `clock2` and `clock3` scripts. Though this doesn't need to be fixed as long as it works right it wouldn't hurt to fix it either. @@ -154,25 +160,32 @@ long as it works right it wouldn't hurt to fix it either. ### [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. -### ... more to be added later ... +.. 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 @@ -188,8 +201,10 @@ alternatives and it did not work. Thus if you see something like: 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). @@ -199,17 +214,25 @@ actually gcc if it looks like it's gcc (two different binaries). - [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)) -.. more to be added as they are discovered .. +XXX - .. more entries to be added later .. -## Entries that can no longer compile - -.. 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. + +Perhaps what is needed is for someone to supply a Vax-11 or pdp-11 emulator for this entry. + + ### [2004/gavin](2004/gavin/gavin.c) ([README.md](2004/gavin//README.md)) + Segmentation fault occurs when running `gavin` to produce the kernel: ```sh @@ -226,8 +249,10 @@ Undefined symbols for architecture arm64: ld: symbol(s) not found for architecture arm64 ``` + #### Recent for 2004/gavin mods: + In case recent modification are part of the problem, here is a full disclosure of what was changed: