minor improvements to bugs.md

Added double whitespace around level 1, 2 and 3 markdown headers
to make it easier to see different sections and entries.

Made a few minor edits.
This commit is contained in:
Landon Curt Noll committed 2023-03-22 02:14:48 -07:00
1 parent 7e6e156ddc
commit fe6d6abb02
1 file changed
+38 -13
+38 -13
View File
@@ -1,5 +1,6 @@
# BUGS and (mis)FEATURES # BUGS and (mis)FEATURES
There are a number of known problems with IOCCC winners: many of There are a number of known problems with IOCCC winners: many of
which have to do with differences between today's compiler environments 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 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). 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)) ### [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 [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 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 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)) ### [2014/vik](2014/vik/prog.c) ([README.md](2014/vik/README.md))
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) discovered a bug that [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 shows itself in some cases (it works in others) when working on his [2020 Enigma
machine](2020/ferguson2/prog.c) entry. See his 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 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. is not. Again see his README.md for details.
## Compiler specific requirements on type of args to main ## 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 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 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 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)) ### [1989/westley](1989/westley/westley.c) ([README.md](1989/westley/README.md))
Although [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this for 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 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 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. This will not be a problem with gcc.
## INABIAF (it's not a bug it's a feature) ## INABIAF (it's not a bug it's a feature)
The following entries should NOT be touched: they are system specific by design The following entries should NOT be touched: they are system specific by design
but are noteworthy nonetheless. 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)) ### [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 This entry is known to segfault after printing its output. It was documented by
the judges and needn't be fixed. the judges and needn't be fixed.
### [1990/jaw](1990/jaw/jaw.c) ([README.md](1990/jaw/README.md)) ### [1990/jaw](1990/jaw/jaw.c) ([README.md](1990/jaw/README.md))
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed the scripts to [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, 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: 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. so it can stay for now with this note.
### [1996/westley](1996/westley/westley.c) ([README.md](1996/westley/README.md)) ### [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 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 `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. 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)) ### [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 As a backtrace quine this entry is SUPPOSED to segfault so this should not be
touched either. touched either.
### [2020/ferguson1](2020/ferguson1/prog.c) ([README.md](2020/ferguson1/README.md)) ### [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 There are some things that might appear to be bugs but are actually features or
things that are misinterpreted as bugs. See his things that are misinterpreted as bugs. See his
[bugs.md](2020/ferguson1/bugs.md) and [bugs.md](2020/ferguson1/bugs.md) and
[troubleshooting.md](2020/ferguson1/troubleshooting.md) files for details. [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 ## Mis-features that should not be fixed
The following entries should not be touched either as although it might seem The following entries should not be touched either as although it might seem
wrong they are not. wrong they are not.
### [1986/holloway](1986/holloway/holloway.c) ([README.md](1986/holloway/README.md)) ### [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 When compiling this entry you might get an incompatible pointer type warning but
this should be ignored. When [Cody Boone this should be ignored. When [Cody Boone
Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this he experimented with the 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. it is NOT a problem and should not be changed.
## Entries that require a compiler that support `-traditional-cpp` ## Entries that require a compiler that support `-traditional-cpp`
The following entries need a compiler that support `-traditional-cpp`. `gcc` 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 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). 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)) - [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)) - [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) ## 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)) ### [2004/gavin](2004/gavin/gavin.c) ([README.md](2004/gavin//README.md))
Segmentation fault occurs when running `gavin` to produce the kernel: Segmentation fault occurs when running `gavin` to produce the kernel:
```sh ```sh
@@ -226,8 +249,10 @@ Undefined symbols for architecture arm64:
ld: symbol(s) not found for architecture arm64 ld: symbol(s) not found for architecture arm64
``` ```
#### Recent for 2004/gavin mods: #### Recent for 2004/gavin mods:
In case recent modification are part of the problem, here is a full disclosure In case recent modification are part of the problem, here is a full disclosure
of what was changed: of what was changed: