The fix thank you's have been moved from `README.md` to
`thanks-for-fixes.md`.
**WARNING**: Some mistakes may have been made in doing this.
We presume later changes by others will correct any issues.
The `CONTRIBUTING.md` was renamed `how-to-enter.md`.
A 3rd line of links was added to top level html such as
`contact.html`, `index.html`, `judges.html`, `winners.html`,
and `years.html`.
Improved blank line use in a number (but not all) `README.md` files.
In years < 2001 (with the exception of ferguson2/) that still have
reference to *.hint files they have been changed to README.md with the
following exception: in 1998/dorssel there was a dorssel.hint2. This was
changed to dorssel.hint since the dorssel.hint was changed to README.md
a while back. The references to dorssel.hint2 were changed to without
the 2.
There was an out of date reference in faq.html file to a .hint file as
well that was updated to README.md; the dorssel2.hint in years.html was
changed to the new name.
With that the only files that have to be updated are those that are >=
2001. I still have to check for hint.* however.
As was discussed with Landon this was a mistake even if it helped with
consistency. There was even a brilliant pun that was destroyed with that
commit which I think is worth pointing out:
cp README.md hill
./ant hill
in 1991/ant ... even if it's technically 'anthill'.
I hope that I got all links fixed in years.html and winners.html. As
well I tried to make sure I got all handles fixed in all/summary.txt.
Nevertheless these should be checked. For some handles they were never
updated (at least in the html files - though maybe summary.txt too, not
sure) in the first place so there was nothing to do.
Typo fixes like references to *.hint when it should be README.md. There
probably are others that need to be fixed but haven't been located yet.
There were many files renamed in this commit and I hope I got all the
references to the old names changed to the new names. To explain this
commit there were some older entries that had the wrong directory name:
not the surname but something else.
Very possibly there are other directories that need to be renamed and I
am actually aware of one right now but since it's in 2005 (which is
close to being worked on) I am not changing that now but just noting it:
2005/anon should be changed to 2005/anonymous (unless there's a very
good reason I am unaware of). But like I said since 2005 will be worked
on soon I have not touched it.
The Makefiles, .gitignore, the all/summary.txt, years.html and
winners.html files as well as the directories and the files under the
renamed directories have all been updated.
This is a rather big update and it might be that there are conflicts. If
so I will fix them. I will have to update 2005/anon later on to try and
prevent this from happening but very possibly there will be conflicts
here. It's also possible I missed some changes in years.html and/or
winners.html and/or summary/all.txt but I think I got them all. These
should be verified later on.
As the years.html file will be generated with a tool (yet to be written)
having the bug notice will (greatly)? complicate the generation. Thus
the bug notice (which I discovered when working on 2020/ferguson2) was
moved to 2014/vik/README.md.
But why? Because it is a good idea, I think, to note that although
mostly correct, there is a minor problem with it. I don't have a fix for
it but whether I ever look at that I do not know.
I also made a minor change in 2020/ferguson2/README.md: changed a full
stop to an exclamation mark as it seemed better.
File types that are NOT displayable, such as zip and gzip files
are still downloaded.
File that that are displayable, such as html and png, are
directly imaged in the browser.
Although I previously got them to all compile they did not all work. Now
they do except that jaw does not work properly in macOS (I have noticed
something odd in linux too but it appears to work mostly if not
entirely).
Yusuke Endoh pointed out for 1990/theorem that atof() nowadays needs
include stdlib.h so this was added to the file. As well I added the
inclusion of string.h for strcmp(). I also fixed some segfaults in this
entry (even though the judges pointed out that for NULL pointer one
needs the four '0 0 0 0' it still segfaulted under those conditions) so
that everything should work now under both linux and macOS. There were
iirc two parts to this: one the NULL pointer is no longer dereferenced
but also the type being passed to strcmp() was a int * and not a char *.
This prevented 1990/theorem/sorter from working at all (segfault) and as
I recall it there was another segfault I encountered as well.
For 1990/jaw Yusuke Endoh provided a ruby implementation of btoa as it's
not always available in modern systems. Thank you Yusuke!
In 1990/jaw shark.sh had to be modified as well. This had to do with '.'
not being in the default PATH.
As well I had previously made a mistake about btoa versus atob as both
were referenced in 1990/jaw/README.md. I believe I have this correct
now.
Many if not all the README files were modified with various changes
including formatting (like turning them into markdown) and section
titles amongst other things.
I seem to recall I'm missing something here but I can't recall what I
recall :-) so this will have to suffice this time round (maybe it was
the btoa/atob issue that I just remembered and added above but I'm not
sure).
There were some which cannot be compiled under clang. One entry we used
a patch from Yusuke Endoh to get the entry to compile; thank you Yusuke
for your assistance! Another one we used a patch from Yusuke (thank
you!) but I further fixed it so that it would work with clang. It had to
be done: IOCCC Tetris has to work! This was done by changing the
environment arg to main() to be a char * in main() itself rather than a
char **. Using a char ** in main() third arg got it to compile but only
one key worked with clang so I changed it to be not the third argument
but a regular char * in main(). **a (third arg) evaluated correctly but
*a[1] and onward was actually part of the environment. Again IOCCC
Tetris has to work!
I also fixed fubar to work which took a few tweaks.
README.md files were also updated.
This is to let the viewers know that sometimes the program will display
invalid input. The note is modelled after some of the other entries that
have bug reports. Okay it's also some shameless self promotion but never
mind that! :-)
As well a few minor changes in 2014/vik/README.md mostly being removing
double spaces in favour of single spaces (particularly in the general
text). There were some other formatting fixes as well.
In 2020/ferguson2/README.md I made a few adjustments as well (though I'm
aware of a few more changes in 2020/ferguson[12]/README.md I want to
make).
Some of the links had to be manually updated (including by downloading
from the IOCCC website some missing files which I'm not even sure how
they were missing from the repo) and others were fixed via sgit. To
demonstrate its usage the following command removes from years.html the
patterns 'hint.html' and '\.hint' with tracing enabled and verbosity of
level 2. Notice how in this case the patterns are just deleted but one
could substitute it for something else or run other sed commands as
well. There was no need to specify sed options or the -I option (which
means don't use the -i option to sed). If this change needed to be done
in the entire repo 'years.html' could have been instead just '.' (if at
the root directory of the repo). One can specify more than one glob just
as one can specify more than one command (as of the bug fix in commit
05e83b60ff).
$ bin/sgit -x -v 2 -e '/hint.html/d' -e '/\.hint/d' years.html
+ getopts :hVv:xIo:s:e: flag
+ case "$flag" in
+ VERBOSITY=2
+ getopts :hVv:xIo:s:e: flag
+ case "$flag" in
+ SED_COMMANDS+=(-e "$OPTARG")
+ getopts :hVv:xIo:s:e: flag
+ case "$flag" in
+ SED_COMMANDS+=(-e "$OPTARG")
+ getopts :hVv:xIo:s:e: flag
+ shift 7
+ [[ -z -e /hint.html/d -e /\.hint/d ]]
+ [[ -z /opt/local/bin/sed ]]
+ [[ ! -f /opt/local/bin/sed ]]
+ [[ ! -x /opt/local/bin/sed ]]
+ [[ 2 -eq 0 ]]
+ git status
+ status=0
+ [[ 0 -ne 0 ]]
+ [[ 2 -gt 1 ]]
+ echo 'debug[2]: sed commands: -e /hint.html/d -e /\.hint/d'
debug[2]: sed commands: -e /hint.html/d -e /\.hint/d
+ [[ 2 -gt 1 ]]
+ echo 'debug[2]: looping through all globs'
debug[2]: looping through all globs
+ i=0
+ [[ 0 -le 2 ]]
+ [[ 2 -gt 1 ]]
+ echo 'debug[2]: found glob: README.md'
debug[2]: found glob: README.md
+ [[ 2 -ge 1 ]]
+ [[ -z '' ]]
+ [[ -n '' ]]
+ echo 'debug[1]: about to run: git ls-files README.md | xargs /opt/local/bin/sed -i"" -e /hint.html/d -e /\.hint/d'
debug[1]: about to run: git ls-files README.md | xargs /opt/local/bin/sed -i"" -e /hint.html/d -e /\.hint/d
+ [[ -z '' ]]
+ [[ -n '' ]]
+ git ls-files README.md
+ xargs /opt/local/bin/sed -i -e /hint.html/d -e '/\.hint/d'
+ (( i++ ))
+ shift 1
+ [[ 1 -le 1 ]]
+ [[ 2 -gt 1 ]]
+ echo 'debug[2]: found glob: years.html'
debug[2]: found glob: years.html
+ [[ 2 -ge 1 ]]
+ [[ -z '' ]]
+ [[ -n '' ]]
+ echo 'debug[1]: about to run: git ls-files years.html | xargs /opt/local/bin/sed -i"" -e /hint.html/d -e /\.hint/d'
debug[1]: about to run: git ls-files years.html | xargs /opt/local/bin/sed -i"" -e /hint.html/d -e /\.hint/d
+ [[ -z '' ]]
+ [[ -n '' ]]
+ git ls-files years.html
+ xargs /opt/local/bin/sed -i -e /hint.html/d -e '/\.hint/d'
+ (( i++ ))
+ shift 1
+ [[ 2 -le 0 ]]
There are some places where this was not done: in data files that refer
to binaries (examples being 2001/herrmann1/{README.md,herrmann1.c} and
those related to 1990/theorem for Turing and Fibonacci respectively). In
comments in code it was changed to be capitalised though this is
potentially problematic in that maybe it was intentional by the authors.
Probably one of the most requested mods was to merge years-spoiler.html
with years.html as how an entry does what it does, not what it does
at a high level is what is important.
This mod also allows us to maintain only one file for entry info.
I missed a '.text' file (chocolate-cake.text) in 2020/ferguson2 in
years.html.
As an aside on that famous chocolate cake recipe: since I included that
recipe in all my entries of 2020 and since the Enigma had a fun
challenge for that recipe: unless you want to play with the Enigma
machine and in so doing reward yourself with a wonderful double-layered
chocolate fudge cake recipe (the fudge being the icing) which is a
speciality of my mum's it would be better to just check the
ferguson1/chocolate-cake.html version as that's not enciphered. The
html versions are the recommended files to check at least with a
browser.
Due to (at the time of publication of the 2020 winning entries) the
rename of '.markdown' to '.text' and earlier on not being sure of how to
get the correct footer in the files (except manually) some additional
files (.markdown) were added to these two entries. The .md files were
correct in that they have not only the correct footer but they also have
lists fixed (spaces between lines starting with '-').
As well in years.html some files referred to '.text' which no longer
exist either and others referred to '.markdown' files and still others
to '.text' files and those two extensions are wrong.
This commit deletes the following files:
deleted: 2020/ferguson1/bugs.markdown
deleted: 2020/ferguson1/gameplay.markdown
deleted: 2020/ferguson1/spoilers.markdown
deleted: 2020/ferguson1/terminals.markdown
deleted: 2020/ferguson1/troubleshooting.markdown
deleted: 2020/ferguson2/recode.markdown
which as I noted above were incorrect.
This commit is part of fixing years.html wrt missing files but since
they're all related to the same author in the same year (me in 2020) I
felt they belonged in a commit separate from the other fixes which are
more general.
Many more need to be checked. Checking for dead links should not be hard
based on a quick script I wrote but any missing files will have to be
fixed later.
The following files were modified:
modified: 2012/MANIFEST
modified: 2012/hamano/README.md
modified: 2014/MANIFEST
modified: 2015/MANIFEST
modified: 2018/MANIFEST
modified: 2018/anderson/README.md
modified: 2018/ciura/README.md
modified: 2018/ferguson/FILES
modified: 2018/ferguson/weasel.1
modified: 2018/ferguson/weasel.man
modified: 2018/ferguson/weasel.spec
modified: 2019/MANIFEST
modified: 2019/karns/README.md
modified: 2020/MANIFEST
modified: 2020/ferguson2/README.md
modified: 2020/ferguson2/enigma.1
modified: 2020/ferguson2/recode.1
modified: years-spoiler.html
modified: years.html
but I am not clear on some of the changes here. For instance some of the
text changed were html anchors and I'm not sure of the implications of
it other than the fact that changing the filenames (see commits
77fb0f11a2 and
851e191519) would break the links. Whether
more needs to be done or not I do not know.
Updated the contact.html page.
Added "Contacting the IOCCC" to all of the top level IOCCC pages.
Updated IOCCC news to the 2022-12-19 date.
Archived some vert old news.
Updated the IOCCC Email addresses to use the year 2023.
Make changes to links impacted when we move 1988-2004 entries
from all of a year's winning entries in a single directory
to each winner being in their own sub-directory under the
given year directory.