Although my change of not requiring -traditional-cpp worked in macOS it
turns out one change had to be made for clang in linux which has now
been done.
Used the following script to check for warnings
not silenced via ${CSILENCE}:
```sh
find ???? -mindepth 1 -maxdepth 1 -type d | while read dir; do
(cd "$dir"; echo =-=-= "$dir" =-=-= ; csilence -v 1 clobber all ; echo ; csilence -v 1 clobber alt)
done 2>&1 | less
```
NOTE: this is just one way to fix the problem described below but it can
be modified - perhaps greatly changed - or rejected and done
differently. That being said it does isolate the entries that can be
modified except for the one by Simon Cooper as I had intended to do all
entries before a commit but I am too tired to continue and there are
more important things to be done for the IOCCC (hopefully later today).
I don't mind but I wanted to save Landon some of the work as I started
the problem even though all with good intention after Landon noted he
wanted to thank those in the README.md files.
First I would like to also apologise to any previous winners if there
was upset or concern; this was all done with the best intentions and I
know that it was a fine line but the judges' goal is to make it so
previous entries do work in modern systems so that everyone can enjoy
them. Still I am sorry if I caused any offence or anything else! I
actually agree with the situation and I had been wondering about how to
go about it too. Now for the rationale behind this update.
A couple previous winners have voiced concern about the way the thank
you notes are displayed in the README.md files I have started the work
to save Landon some of the trouble as although it was with good
intentions (and based on the note that Landon wanted to thank those who
fixed an entry) I started the problem so it seems only right that I help
rectify it. I also agree with the problem and had thought of it before,
even thinking that in some entries it needs not have any reference to
anyone but the winner! This commit has removed the thank you notes from
several entries and added a THANKS.md file.
The THANKS.md file has the rest of the entries that were fixed as well
which should if nothing else help isolate the entries that need to be
modified. Some entries actually referred to me but were not a thank you
note due to a fix; some were from winners themselves for instance.
Note that I did not update the bugs.md file or any other file that might
refer to these things in the README.md files. The bugs.md for instance
refers to adding credits to those who fix problems or provide missing
links or files to the respective README.md files and this will have to
change once the way this is done is finalised. But hopefully this is a
help to Landon so that he may also focus on the important jprint tool in
the mkiocccentry repo.
Updated fixes in README in a better order (not chronological but in a
way that shows how it shows that I fixed it to not require
-traditional-cpp and also fixed the type of args in main() that clang
enforces). The fix by Yusuke Endoh which only let it compile with gcc
(with -traditional-cpp) is below that. To the cynics: this is not
because I want my fix at the top but rather that my fixes make it more
portable which makes it easier to use. With my fix the other one is not
technically even needed but I want to give thanks anyway as he
contributed to it (albeit without knowing about it yet).
Fixed make alt rule so that it uses -traditional-cpp as it needs it.
This code will not work with clang because it doesn't support that
option and it has the type of main() args issue. That means it won't
work with macOS default compiler even gcc.
This was fun to fix. What prompted me to do so is that I noticed that
the patch from Yusuke Endoh actually doesn't work in fedora linux. It never
worked with clang as it required -traditional-cpp and also had
non-standard second and third args type to main (not a char ** but
implicit int). No more. This entry now works with both linux and macOS!
I was able to remove all the macros as they were problematic and not
needed. The code that used them was updated to be what was necessary.
Add to Makefile inclusion of stdio.h and math.h (printf, floor).
Some systems require -lm so that was also added to the Makefile.
Very little else was required to make it work.
The decot.alt.c is the version patched by Yusuke but fixed by me to
compile with fedora's gcc.
Removed this entry from bugs.md.
Changed the position of the everything Makefile rule
in select Makefiles to be consistent with other makefiles.
Fixed Makefile for 1986/stein where everything was not
everything (did not depend on alt).
Simply the Makefile header.
Refer to the //www.ioccc.org/bugs.md URL (that will eventually exist).
Now using CC BY-SA 4.0 License to how you may share and adapt the
Makefile.
In some files changed the formatting was fixed to be a proper markdown
file.
There were some typos including that some README.md files that linked to
/winners.html#Cody_Boone_Ferguson actually linked to the non-existent
file /years which obviously would not work.
I also added links to the rest of the places I have fixed entries (but
see below) and I did the same for Yusuke Endoh's fixes.
As well apparently one entry I thought he fixed to compile under modern
systems does not seem to so that entry will have to be revisited another
time. That entry was 1993/jonth.
Those are the main changes here if not all of them.
The years 1984, 1985 and 1986 have had all winning entry README.md files
updated. This includes formatting, adding author's comments (which in
these years means nothing but still have the section there to indicate
that there were no comments) and possibly other things.
I have updated some - not all - of the 1987 winning entry README.md
files. I have to do other things now but I want these committed. I will
work on the other README.md files another time.
Updated 1984/README.md with link to rules.txt.
Updated 1984/decot/README.md removing the note
NOTE: This entry might not compile when using modern compilers.
as this was redundant (I already added more information in an earlier
commit). As well I moved the header Judges' comments below that note so
that the note about compiling is under the build section of the
README.md.
This will not compile with clang which is actually what gcc is under
macOS. Unfortunately clang does not support -traditional-cpp which this
entry requires for modern systems.
We would like to thank Yusuke Endoh for the patch to get this to compile
with gcc. Thank you very much Yusuke!
In particular the following fixes were made:
-MKFIFo= mkfifo
+MKFIFO= mkfifo
-ZIPGREp= zipgrep
-ZIPINFo= zipinfo
+ZIPGREP= zipgrep
+ZIPINFO= zipinfo
If it's not immediately clear what the problem is the last letter of the
variable names were in lower case.