The index.html file didn't have to be updated as pandoc is smart enough
but the format bothered me ('-' followed by text on a line but it was
not a list).
I did not check typos and I might or might not have gone through the
whole file. The format fixes were mostly if not entirely for code blocks
not having the language in comments (or missing language).
Rebuilt index.html.
Some information is no longer useful - they were put in during the
IOCCC28 to let people know the version changes during the contest which
noted some useful information.
Also added references to chksubmit.
Rebuilt next/guidelines.html with these changes.
A bug in macOS 26 (is anyone surprised any more?) ends up with warning:
clang: warning: overriding deployment version from '16.0' to '26.0' [-Woverriding-deployment-version]
depending on invocation. Particularly with at least some versions of
gcc, even though in this case it was actually gcc and not the system gcc
that is really clang in disguise.
Because of this -Wno-overriding-deployment-version was added to
next/Makefile.example.
One of the warnings disabled (triggered in macOS) that was already added
seemed to be missing.
I also disabled the silly warning triggered by clang with -Weverything (I
think -Weverything) -Wunsafe-buffer-usage as that is against basic C (it
will not even let you iterate through argv without whining about it
being 'unsafe').
The example in the Makefile given is -Wno-int-conversion instead.
When I first wrote the try scripts, and in particular the ovdluhe.alt.c
code to do what the author suggested one try, I just had the option in
try.alt.sh to redefine P once. Now the user can do that but after the
initial loop it loops from 2..10 (the range the author suggested)
running the loop again (on the three files three times) so one can see
what the author means.
The try.sh script has the updated idea by the judges of printing two
lines, not one, after each prompt.
Rebuilt index.html from updated README.md.
Although it's now 21 lines instead of 20 the number of columns is the
same and the shape is restored (or as close as possible with the need of
the extra line).
This was somehow not added during development but was supposed to be. It
is not going in the main code because that would ruin the amount of
gotos (152 for full version, 134 for practical version) and because the
point of the alt code was to have more events anyway.
Tested this new event. Works fine.
At the suggestion of Landon I have added some tips to both icing and the
cake. It might be possible for more to be added later on but hopefully
these are helpful to those who wish to try it. Something I will try
doing is adding sequential pictures of the icing but that involves
remembering it as we can't make it here until the winter (well we can
but it's a lot harder as even the winter can be fairly hot here,
exceeding 35 Celsius).
And to those who (presumably many) do wonder why I submitted this back
then when it has nothing to do with the contest: I really haven't the
foggiest but since this was requested I am doing it.
Landon reported an inconsistency. I discovered a placement issue. I also
added a note. The open issue will take more time to look at and consider
but the inconsistency is at least fixed now.
The truly complete part is a reference to commit
ad622a5354. This also means that prog.c
need never be updated again, which was the entire point of that commit
that fell just short of the mark.
Fixed links in obfuscation.html.
Added litmus test to explain how I actually tested the program with all
the jumps.
Fixed typo in data file that I discovered during the above litmus test.
Fixed other files as well.
The .entry.json had a minor mod too, to better reflect what a file
actually is.
Rebuilt obfuscation.html and index.html.
Added target to Makefile which was also used during testing (this might
be explained in the obfuscation.html).
This is related to the space / word boundary issue (based on how the
language worked) that does not have a good solution. As I think I might
have written in the remarks I tried different ways but each way caused
other problems, problems that would make Navajo -> English not work even
when it should otherwise. Although the index.html already showed some
examples of this it seems good to include some in the bugs.html and add
the INABIAF tag to the index.html.
The alt code was an old version that should not have even been there.
The extra event was something that was meant to be somewhere else (like
it is in the prog.c) and the event (even 23) is something else.
I put in the data files another joke with the intention of using that
for the event until I remembered the event was wrong.
The alt code has an improvement: it now is possible to specify your
hp/stamina and max number of turns.
In prog.c remove an unused variable.
Updated Judges' remarks to better reflect what happens (in particular
improve the commits from yesterday - correcting it but keeping the same
flow of the judges).
Updated deobfuscation.md (rebuilt deobfuscation.html).
Rebuilt index.html.
The file prog.gotos.c has the lines merged so one can use their syntax
highlighter (or grep, see below) to see all the gotos at once (depending
on screen size, perhaps).
For grep try:
grep -E 'goto|hell|heaven|666' prog.gotos.c
if you have colours enabled. The other patterns is because of alignment
that was maintained in the program (one could do this without 'goto' of
course).
A bug was discovered in prog.c (now prog.alt2.c, see below) that has
been fixed. It was not a critical bug but it came about when juggling
things during development, and fixing it means there should now only be
one place where an event might not trigger (or actually it's an event
within an event that does not trigger - polymorphism related).
The prog.c is the goto complete version - what was once prog.goto.max.c
(git status is confused however - it shows that that file is now
prog.alt2.c but actually prog.alt2.c is what prog.c was). For practical
reasons (and to make the judges not weep and curse me quite as much)
this was not the prog.c but since some others have made corrections to
their winning code I have decided to do the same thing here. It was a
hassle to juggle between the different versions and I ran out of the
number of files allowed - that is what I mean by practical reasons.
The prog.c has maintained its thematic 4666 bytes, after some formatting
updates.
Typo fixes were made in some of the supplementary C files.
Makefile updated so that one can compile prog.alt2.c.
.entry.json, index.html and obfuscation.html were all updated.
The judges' remarks were slightly corrected. It is not 134 (now 149)
jumps that occurs but rather gotos. The jumps can be over 1000, in fact
one test run was over 1400, although shorter games can be fewer (though
still a lot).
Other errors in documentation that were artefacts from earlier stages in
development were also corrected, although I'm sure there are more (the
ones that were discovered were ones near to stats that had to be
updated).
The following files (not all of these files were checked yet) were
modified (when mentioning README.md I also rebuilt the index.html file):
2024/burton/README.md
2024/endoh1/README.md
2024/endoh1/try.sh
For practical reasons (and to make the judges weep and curse slightly
less) I only submitted code that only had 134 gotos. I'm a horrible
monster, I know, but I have decided to present this alt version I have
which takes the 134 gotos to 149 and which still fits in rule 2 limits.
If I am going to ruin goto I might as well do it properly, despite
Landon telling me that the 134 might be called near limitless. Now it is
limitless. Some of the very few remaining blocks of code that were where
they belong were moved away from their proper place but other changes
were made too.
Added gotos.c.txt - kind of like the judges' video where it shows all
the gotos only here it is just a text file of only the gotos (after
clang-format like they had). This is of prog.c, not prog.goto.max.c.
Renamed gotos.txt to jumps.txt as it's not just gotos (though most of it
is).
Updated .gitignore and Makefile.
Updated .entry.json and rebuilt index.html as well as obfuscation.html
(obfuscation.md was also updated).
The entry_text for 'ref.mp3' had commas. This is not allowed as the way
the site script (in particular bin/entry2csv.sh) works is it creates a
CSV file which when imported into a spreadsheet application (like
Numbers in macOS) it adds additional columns. Also, because a space is
after the comma, it triggers another error in the bin/csv2entry.sh
script.
What this error meant is that some of the text was not even in the
index.html.
This has all been corrected.
Typos fixed in 2024/index.html.
Show URL added.
This commit also adds the time (how long in the show, not the clock
time) the source code was pushed to the GitHub repo and the total length
of the show.
Due to a manifest mix-up (which had some html files marked as markdown
and as display_via_github as true) the respective entries' index.html
linked to html files on GitHub which do not render right (and is the
wrong place in any case).
This means that the index.html files and the .entry.json files were
updated. This in particular goes for:
2024/burton
2024/ferguson1
2024/howe
Thanks to @SirWumpus for reporting this!
2012/omoikane had some updates but the manifest was not properly updated
(so it would seem - it seems right but I cannot figure out how it was
not as obviously the CSV file was correct).
For some reason 2020/yang/index.html navigation linked to 2024/anders
which of course is a 404 (I seem to recall a mix-up that was fixed but
the html files were not rebuilt).
The 2020/yang/.entry.json file had the wrong manifest version as well.
The gotos.txt file (manifest updated) shows the line changes in a single
run of the program.
Capitalised some text.
Changed width and height attributes in images - they were too hard to
see otherwise (for those of us with poor vision it's still hard on a
mobile device but it was almost impossible to see on the computer for
me - now it scales better, for some definitions of 'better').
Rebuilt html files.
This did involve updates to news.{md,html} and years.html. The prize in
diabolical logistics now reflects the title of the game and the prize in
yil-tas has a capitalisation fix (that was missed yesterday).
Also reworded some of the text of 2024/ferguson1/index.html.
Also rebuilt 2024/guidelines.html, 2024/rules.html (obviously
2024/index.html was also rebuilt).
The other ones were rebuilt because the markdown had 2025 (from 2024)
and it was not rebuilt. I noticed a lot of files have this problem (in
copyright). May I suggest sgit(1) to save you time? :-) (I would do it
but I don't want to cause a problem with any pull requests that might
be opened.
For fun I put in how many line changes there were in an example run
through the entire program from start to finish ('hell'). With 85 lines
(with 14 blank, some functions, #includes, #defines, some lines only
having a brace and possibly other lines like that) there were a total of
985 line changes (an extremely tiny fraction had the same line number
repeated once but that hardly matters).
Fixed typo in Judges' remarks (inspired by Oregon Trail not inspired by
Oregon).
Added note about another version I submitted - helps prevent having to
update the files removing any reference to it.
Updated .gitignore (due to a file one of the scripts generates).
Rebuilt index.html and obfuscation.html.
'an successful' -> 'a successful'.
There is possibly another typo but I have to verify what the judges
meant.
Rebuilt index.html. I hope to make some reductions in text in the coming
days. I also have another fun update planned so people can see just how
wild the gotos are. I hope to do that sometime soon too.
It is not clear, as the FAQ shows for now, whether this works with just
desktop/computers or not - it is only possible to enable it on computers
(or if it's possible in mobile devices I did not see it though I only
checked with an iPhone).
This FAQ should probably be linked to in the guidelines later on as
right now it says that one should reload the feed as you do not get
notifications unless you are mentioned (assuming you have push
notifications enabled). As one of the pending changes post winners being
announced (02 August 2025 at 11 Pacific) is to clean up the guidelines,
rules and maybe the FAQ (that was rushed towards the end so as to not
delay IOCCC28 even longer) I have not done this.
Rebuilt faq.html. New image under png/.
FAQ version: 28.2.21 2025-07-31.
Likely an artefact from before the scripts generated html files for the
website - I had two links, one for markdown, one for html, but now only
html is needed for the links.
The questions:
Can I download my submission tarball from the submit server?
Can I delete a submission from the submit server?
were added per brief discussion in IOCCC28.
This typo ended up with a wrong command (in an echo telling what to do
with modern systems - there was a space between the / and what
translates to mullender.alt).
New FAQ on what the minimum versions are (this should be updated every
contest or updated to refer to the result of the issue I opened at the
other repo - post IOCCC28) for each tool.
Added details about the new (soon to be released) version of the tools
that now search under $PATH.
This commit updated the FAQ, the guidelines and the quick start guide.
As a reminder you do NOT need to use the upcoming release of the tools
and not doing so will not invalidate any of your submissions as it is
based on a minimum version, not an exact version.
The new options to mkiocccentry are -x to delete the submission
directory if if it already exists and the -u uuidfile and -U uuidstr
options.
NOTE: it is NOT required to update the tools for this IOCCC and you do
NOT have to read the updated guidelines to follow the guidelines for
this IOCCC.
The warnings highbit_warning, wordbuf_warning and first_rule_is_all are
no longer used and will be removed for IOCCC29 and beyond. Thus the
tools no longer care about them.
There were other additions to mkiocccentry like the useful -u uuid
option to read in your UUID from a file so you don't have to copy paste
it per submission. Although that would be useful in the guidelines to
do that would require the version update which is problematic in an open
contest. Thus it can be added for IOCCC29 after this one.
IMPORTANT NOTE: you do NOT have to update the tools unless you want to!
The submit server will no longer flag submissions with those booleans
set to true and when the judges run the tools they won't flag them
either. So if you are just fine with what you're doing, and if the
recent fixes do not have an impact on your work you are perfectly fine
using the current versions you have as version requirements are no
longer a single value but a range. Of course you might still wish to
check that you weren't flagged for some other issue but you no longer
have to worry about those three warnings.
After my final commit and merge in mkiocccentry pre-release a pull did
not get the tag. I had to do:
git fetch --all --tags
instead. So to make sure everyone has the correct tag I have added this
to the FAQ (replacing the 'git fetch' by itself).
Regenerated faq.html.
Renamed some FAQs (typos and/or other things).
Fix a number of typos in various files (including markdown format
errors).
Rules and guidelines should be relatively good although as there is a
lot to get through and not much time left maybe I missed something (I
also kind of cheated doing the final checks with the guidelines rather
than going through them all again).
The next/try.sh and next/try.alt.sh scripts have had updates as well and
the next/Makefile.example was modified too.
The index.html page now has an anchor for goals of the contest so that
the goals in the rules could simply link to it in index.html.
Although some text had to be added (and some corrected) a reasonable
amount of text was also removed as it was elsewhere or was extraneous in
some way.
The file next/remarks.example.md has been renamed next/remarks.md.
From this file a new html file, next/remarks.html, is generated. The
first part of the instructions say to download the markdown file and
copy it to your submission's directory.
The rest is mostly the same but this way one can look at the website and
also be aware of the file (and it'll be linked to in the rules and/or
guidelines as well).
This required updating bin/gen-top-html.sh an bin/md2html.cfg and the
Makefile was updated too (with a typo fix also).
Without the @ before the comments (which are informative and to be
removed by contestants) it shows the comments when running 'make'. Even
worse is without doing $${CHMOD} it would not evaluate to anything so it
looked bizarre.
Thus the @ was added to the comments like the rest of the file (comments
in rules).
In the case of html void elements (not having the trailing '/') I have
merged the 'no thank you' and 'instead use'. At the same time I fixed a
typo where one 'no thank you' referred to the wrong 'instead use' (in
particular it was '<hr/>' -> '<br>' rather than '<hr/>' -> '<hr>').
The three important files, next/{register,submit,pw-change}.{md,html}
no longer have images in them (besides the logo at the top of the image
which has nothing to do with registering, submitting or changing
passwords); instead the text in the images are actual text (in some
cases, just the relevant parts and in others all or almost all).
The png/register.* and png/submit.* images were removed.
Some images are no longer used but they still exist here for the time
being. Text is used instead though based on some discussion text might
have to change.
Adjusted alt text of some images a bit.
A more thorough look at the way these updates look must still be done.
The screenshots are more recent (including some new ones).
The welcome email images have not been updated as some things have to be
answered before that can be done.
The current files were renamed to be shorter as well.
A choice was made a while back to use website and not web site so
changed all new references of 'web site' to 'website':
sgit -e 's/web site/website/g' '*.md' '*.html'
As this also occurs in the FAQ and there were some minor mods (just
textual, including some fun, not a new FAQ) these are included too.
This addresses most (if not all) of the recent changes to chkentry(1)
though a more thorough check will be made later after the mkiocccentry
code freeze.
The minimum version for cvt-submission of chkentry is 1.1.5, the most
recent version.
Technically the previous version would work too but 1.1.5 renamed some
variables to make it more consistent with the mkiocccentry terminology
so it's better to have 1.1.5.