sort bugs.md by year

Improved bugs.md by sorting entries by contest year
and using a one-line status string.

This will make it much easier for someone to find
and entry in the list.

A summary of statuses is found at the end of the file.
This commit is contained in:
Landon Curt Noll committed 2023-03-23 18:07:25 -07:00
1 parent 9a388bcf6f
commit 2ec47fc343
1 file changed
+363 -213
+363 -213
View File
@@ -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). 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 <stdio.h>
#include <errno.h>
#include <string.h>
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. 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
@@ -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 prototypes and use `printf()` instead of the invalid pointer to it (incompatible
type). 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 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 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. 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 This entry did not compile with clang but [Cody Boone
Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this problem. He notes however that 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. 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 ### Status: Compiled executable crashes - please help us fix
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 <stdio.h>
#include <errno.h>
#include <string.h>
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))
Segmentation fault will occur in some systems. For instance on macOS with the 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 The current ([Makefile](2004/gavin/Makefile) was modified to try and
fit into the current IOCCC build environment. 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.