diff --git a/2001/cheong/README.md b/2001/cheong/README.md
index 5990bdcea..2d140402a 100644
--- a/2001/cheong/README.md
+++ b/2001/cheong/README.md
@@ -5,6 +5,19 @@
```
+### Bugs and (Mis)features:
+
+The current status of this entry is:
+
+```
+ STATUS: INABIAF - please **DO NOT** fix
+```
+
+For more detailed information see [2001/cheong in bugs.html](../../bugs.html#2001_cheong).
+
+
+
+
## To use:
```
diff --git a/2001/cheong/cheong.c b/2001/cheong/cheong.c
index e229488ba..e0690dcb9 100644
--- a/2001/cheong/cheong.c
+++ b/2001/cheong/cheong.c
@@ -11,4 +11,4 @@ c=o+ (D[I]+82)%10-(I>l/2)*
:!(o=pain(c/10,O,I-1))*((c+999
)%10-(D[I]+92)%10);}return o;}
int main(int o,char **O) {
-return o>1?pain(o, O, l):1; }
+return pain(o, O, l); }
diff --git a/2001/cheong/index.html b/2001/cheong/index.html
index 9629f1da9..5370dc1e7 100644
--- a/2001/cheong/index.html
+++ b/2001/cheong/index.html
@@ -397,6 +397,10 @@ Location: US - United States of America
The current status of this entry is: For more detailed information see 2001/cheong in bugs.html.To build:
+ makeBugs and (Mis)features:
+
+ STATUS: INABIAF - please **DO NOT** fixTo use:
./cheong digitsTry:
diff --git a/bugs.html b/bugs.html
index b6f597369..6969aeff7 100644
--- a/bugs.html
+++ b/bugs.html
@@ -1884,9 +1884,7 @@ modification by Yusuke noted in the thanks
file) but it appears this also requires i386 linux; indeed looking at the code
it hard codes paths that are i386 specific to linux.
Another point of interest is that the author provided de-obfuscated versions -which might be of value to look at. I might do that as well but this entry is -very likely never going to work for 64-bit linux so that’s not that likely since -there are other things that are more important.
+which might be of value to look at.If you have a fix for 64-bit systems this is welcome as an alternate version, as stated above. You might like to look at the otccelf version but note that it (at least in 64-bit linux and macOS) has compilation errors.
@@ -1900,10 +1898,17 @@ the compiler won’t work there.Also the supplementary program, which did not work at all, was fixed (by Cody) and it can be run by itself for fun in modern systems, which was not possible before the fixes there.
+This program will crash without an arg.
This program deliberately crashes if it loses (which is what it aims to do).
@@ -1924,7 +1929,7 @@ appreciate your help!Sometimes when one player presses q it will result in broken pipe on the other
@@ -1950,7 +1955,7 @@ wanted to install it as a tool but this is missing.
The glob pattern must match the whole string. See the author’s comments for @@ -2118,13 +2123,13 @@ compile under clang. The following patch was applied:
gavin_files: boot.b lilo.conf prim gavin_install.txtThe current (Makefile was modified to try and fit into the current IOCCC build environment.
-See known features in the index.html for things that are not bugs but documented (mis)features.
The author stated that:
@@ -2149,7 +2154,7 @@ things that are not bugs but documented (mis)features.The generated code will very likely segfault or do something not intended if not @@ -2162,7 +2167,7 @@ given the right args. See the index.html file for the correct syntax.
This program sometimes will create unsolvable puzzles :-) just to hook you.
@@ -2176,7 +2181,7 @@ dimensions. Try 100 100 100 for instance and see what happens!
This entry will very likely segfault or do something strange if the source code @@ -2185,7 +2190,7 @@ does not exist.
The author states:
@@ -2219,7 +2224,7 @@ for running itself.Cody Boone Ferguson notes that, though @@ -2233,7 +2238,7 @@ website itself.
The author stated the below points of interest.
@@ -2274,7 +2279,7 @@ with at leastcomputer.tofu input file:
The string specified must be <= 42 characters and may only consist of the @@ -2295,12 +2300,12 @@ but you are welcome to try and fix it.
provide it as an additional alt version. Fixing this is very likely to be very challenging and in some systems it will not be possible to fix but you are welcome to try and fix it if you wish to! -Incorrect formulas will ungracefully crash the program.
The author stated:
@@ -2317,7 +2322,7 @@ welcome to try and fix it if you wish to!Cody Boone Ferguson fixed this program to @@ -2364,7 +2369,7 @@ case-sensitive.
For a great amount of data points the program will crash, depending on your @@ -2387,7 +2392,7 @@ bins at the edges.
instead being something else entirely. The Internet Wayback Machine, although it archived it, did not load scripts. Do you know if the domain was moved? Do you have an archive or mirror? Please provide us it! Thank you. -The author states the following:
Bad input (e.g. nonexistent files, non-numeric number of iterations, etc.) @@ -2400,7 +2405,7 @@ tends to result in empty output.
The author stated that there are a number of features and limitations. As the @@ -2572,7 +2577,7 @@ defined.
The author stated that the program will crash if no argument is passed to the @@ -2586,7 +2591,7 @@ fire :-)
The author stated:
@@ -2595,7 +2600,7 @@ fire :-)The author stated:
@@ -2628,7 +2633,7 @@ fire :-)The author stated:
@@ -2642,7 +2647,7 @@ doesn’t make it possible to lock drawing to the display refresh rate.)The author stated:
@@ -2663,7 +2668,7 @@ doesn’t make it possible to lock drawing to the display refresh rate.)The author stated that the program will crash if no argument is passed to the @@ -2679,7 +2684,7 @@ fire :-)
The author stated:
@@ -2699,7 +2704,7 @@ and endianness conversion would make the source too large for IOCCC rule 2).This program will possibly crash or draw something strange with 0 args. Then @@ -2718,7 +2723,7 @@ used.
From the author:
@@ -2734,7 +2739,7 @@ section.From the author:
@@ -2747,14 +2752,14 @@ such asC2E2.
Invalid input files will very likely crash the program.
This program will not terminate on its own; you must kill hou (but not Qiming
@@ -2762,7 +2767,7 @@ Hou :-) ) yourself. This should not be fixed.
The author reminds us that if you kill the program you will have to wait a short @@ -2779,7 +2784,7 @@ it out as a known limitation it is not a bug but a feature.
The author noted that in macOS the colours might be wrong. They gave a solution. @@ -2803,7 +2808,7 @@ player become bigger, stay away from blocks!
This program will very likely crash if no arg is given.
@@ -2844,7 +2849,7 @@ rely on the entry as the below shows. One should be able to do:The author stated:
@@ -2869,7 +2874,7 @@ result. Error messages become garbled, though.The program doesn’t look at the header of files so if it’s passed something hat @@ -2878,7 +2883,7 @@ is not compressed data it’s likely to crash.
The program assumes that The author wrote: When you run it on a JSON file you will see something like:EOF is -1. This can be fixed but at this time it is
@@ -2911,7 +2916,7 @@ use 8 * sizeof(typ) bits per place. It does not work when CHA
2018/algmyr
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2018/algmyr/prog.c
Information: 2018/algmyr/index.html
2018/hou
STATUS: INABIAF - please DO NOT fix
+STATUS: INABIAF - please DO NOT fix
Source code: 2018/hou/prog.c
Information: 2018/hou/index.html
where [] is the cursor. When this happens if you hit enter (this is necessary
or else it’ll happen again) and then exit again (ctrl-e) and run prog again
it’ll be okay.
The author stated that if you make a typo it can happen that the boot loader can crash and halt. If this is the case type ctrl-e to quit the emulator and try again.
@@ -2970,7 +2975,7 @@ in the case of compiled code it won’t be executable).The author wrote the following:
@@ -3020,7 +3025,7 @@ this program has nothing to do with a hand.Certain input can crash this program. The file @@ -3028,7 +3033,7 @@ this program has nothing to do with a hand.
The author pointed out that some implementations of wc(1) show different
@@ -3036,7 +3041,7 @@ values but his implementation matches that of macOS and FreeBSD.
Cody Boone Ferguson fixed the scripts so @@ -3068,7 +3073,7 @@ ideal if this was not the case.
There are two things to be aware of with this entry.
@@ -3097,7 +3102,7 @@ in the directory:As a backtrace quine this entry is SUPPOSED to segfault so this should not be @@ -3105,7 +3110,7 @@ touched either.
The author stated the following:
@@ -3135,7 +3140,7 @@ touched either.The author wrote that there are a number of differences from what one might @@ -3145,7 +3150,7 @@ remarks in the sections Syntax and
The author wrote that if you decide to change networks or use a different input @@ -3165,7 +3170,7 @@ a crash.
This program will not validate input so it might fail or get stuck if invoked @@ -3174,7 +3179,7 @@ erroneously.
The author noted that if the program runs out of memory it is likely to crash.
@@ -3189,7 +3194,7 @@ ignored except line feeds (preserved) and tabs (expanded to 8 spaces).’This entry is known to crash if no arg is specified. Although easy to fix it is @@ -3200,7 +3205,7 @@ either. But can you figure out why this happens?
The author stated that bad things happen if the entered move is outside of the @@ -3214,7 +3219,7 @@ move.
There are some things that might appear to be bugs but are actually features or @@ -3224,7 +3229,7 @@ things that are misinterpreted as bugs. See the
The author noted that the program only supports WAV files that have @@ -3233,7 +3238,7 @@ audio channels.
The author listed the following limitations:
diff --git a/bugs.md b/bugs.md index 174497c28..737e77fd4 100644 --- a/bugs.md +++ b/bugs.md @@ -2205,14 +2205,13 @@ file) but it appears this *also* requires i386 linux; indeed looking at the code it hard codes paths that are i386 specific to linux. Another point of interest is that the author provided de-obfuscated versions -which might be of value to look at. I might do that as well but this entry is -very likely never going to work for 64-bit linux so that's not that likely since -there are other things that are more important. +which might be of value to look at. If you have a fix for 64-bit systems this is welcome as an alternate version, as stated above. You might like to look at the otccelf version but note that it (at least in 64-bit linux and macOS) has compilation errors. + ### Aside: why were there changes made if INABIAF ? This is a good question. The reason is we believe it better to fix some obvious @@ -2226,6 +2225,16 @@ Also the supplementary program, which did not work at all, was fixed (by Cody) and it can be run by itself for fun in modern systems, which was not possible before the fixes there. +2001/anonymous dir
git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..4bc03de321612869aebf855850c6500df95cb6ef anonymous.c
or to not use git:
make diff_orig_prog
-Cody also added a program like -anonymous.ten.c which ‘sings’ the -lyrics to Ten Green Bottles +
Cody also added a supplementary program like +anonymous.ten.c (which ‘sings’ the +lyrics to Ten Green Bottles) but which sings Ten in the Bed -instead.
+instead (the way it’s implemented is different and this allows showing more of +what the entry supports).As well he added the try.sh script so that one can attempt to use the program as it was designed but if compiling as 32-bit fails it will at least run the supplementary program as a 64-bit program directly.
@@ -2750,7 +2751,8 @@ it will at least run the supplementary program as a 64-bit program directly.Cody fixed this to compile with clang but according to the author this will not
work without i386 Linux. It generates i386 32-bit code (not bytecode) but
-unfortunately it will not work without i386 Linux. See bugs.html.
Cody fixed an earlier segfault so that it can at least now open the file should
you have an i386 Linux machine (it can open it in other platforms too, of
course, but it won’t work). This involved pointer updates and also changing an
@@ -2760,10 +2762,11 @@ case of main() this was not possible.
Cody entirely fixed the supplementary
bellard.otccex.c so it does not segfault and
-works as well (it did not work at all). The main problem was that some ints were
-being used as pointers. This includes, for example, an int used as a char *,
-an int used as a function pointer and an int to access argv as well as there
-being invalid access to argv. He updated the Makefile so that this program
+works as well (it did not work at all though it is possible it would work in
+older systems). The main problem was that some ints were
+being used as pointers. This includes, for example, an int used as a char *,
+an int used as a function pointer and an int to access argv as well as there
+being invalid access to argv. He updated the Makefile so that this program
will compile by default.
Also the Fibonacci sequence (fib()) will overflow at n > 48 so this is
checked prior to running the function just like the author did for the factorial
@@ -2774,9 +2777,7 @@ this entry by Yusuke.
With a tip from Yusuke we rediscovered the author’s web page for this
program where it is stated that this will only work
in i386 Linux. The author also stated in the remarks in this document that they
-used gcc
-2.95.2 but
-we don’t know if that’s relevant or not.
gcc 2.95.2 but we do not know if that’s relevant or not.
Yusuke offered a modification which is not needed with gcc but with some
versions of clang it is. With gcc we can get away with -rdynamic -fno-pie -Wl,-z,execstack which solves the problem of execution in memory but any
compiler that does not support this would not work. Thus we use the modification
@@ -2785,12 +2786,12 @@ by Yusuke.
Cody fixed this to work with clang by adding another function that is allowed to
-have a third arg as an int, not a char **. He chosepain()because it's a four letter word that would match the format and because it's pain thatclang` forces
+
Cody fixed this to compile with clang by adding another function that is allowed to
+have a third arg as an int, not a char **. He chose pain() because it’s a four
+letter word that would match the format and because it’s pain that clang forces
this. :-) This fix makes a point of the author’s notes on portability no longer
valid, BTW.
Cody also added the try.sh script.
-He also fixed it to check the number of args.