A long while back I improved the Makefiles to allow for compiler
specific flags so that they don't have to be only "clang" or "gcc". This
is because in some systems gcc is actually clang (macOS does this). Also
if someone wants to use a different version or path then they can do so
with the right flags enabled. Before that change it would not work
right.
The comments suggested these flags will only be set when CC is exactly
"clang" or "gcc". This has been corrected.
This commit also removed some of the 'new marks' in the guidelines and
rules (as they're no longer new) and some that were in the FAQ (which
only happened when they were changed over to the FAQ).
Removed problematic FAQs (per discussion). This required renumbering.
Updated references of chkentry to chksubmit (only a few references to
chkentry remain now - advising contestants to not use it but simply
stating it is for the judges and it is what chksubmit uses).
Added note in guidelines about gotos becoming 'old' (as Landon told me
it is something Leo wanted in the next guidelines thanks to me). Just so
Landon does not forget my C sins. :-)
I have regenerated the html files but the guidelines.html and rules.html
files have not been link-checked as these files will be modified by the
judges a fair amount so there is no point yet. I believe I got
references to nuked FAQs out but it's possible some were missed.
The quick-start.md and next/submit.md (and their html files) were
updated as well to refer to chksubmit instead of chkentry.
It is quite possible some things were missed but this should help move
things closer to getting ready for IOCCC29 in December.
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.
With commit fd483c2bed, all
try scripts now use:
```
MAKE=$(command -v gmake)
${MAKE:=make} CC="$CC" all >/dev/null || exit 1
```
to find `gmake(1)` and if not `make(1)` to make.
This commit updates the next and template try scripts accordingly.
Congratulations to:
* 2024/anders - Prize in sound coding - layered music generator
* 2024/burton - Prize in pentagrammatology - wordle hard mode solver
* 2024/cable1 - Prize in bot talk - LLM inference engine
* 2024/cable2 - Prize in murky waters - salmon recipe
* 2024/carlini - Prize in perfect timing - Intel 4004 emulation
* 2024/codemeow - Prize in tray planting - bonsai generator
* 2024/endoh1 - Prize in patient pointillism - slow ray tracer in CPP
* 2024/endoh2 - Prize in solid body physics - rotating rigid body simulation
* 2024/ferguson1 - Prize in diabolical logistics - Oregon trail pact with the devil
* 2024/ferguson2 - Prize in yil-tas - Navajo code talker translator
* 2024/howe - Nice accent eh-ward - mini vi
* 2024/kramer - Prize in linguistic arithmetic - natural language numerical calculator
* 2024/kurdyukov1 - Prize in phased periodicity - phase of the Moon
* 2024/kurdyukov2 - Prize in art restoration - JPEG artifact removal
* 2024/kurdyukov3 - Prize in virtual quietus - gaming VM and doom
* 2024/kurdyukov4 - Prize in embiggening - encode without literals
* 2024/maffiodo - Prize in creative interpretation - Jav\*script interpreter
* 2024/mills - Prize in ℤ₃ - Infocom v3 story interpreter
* 2024/stedolan - Best one liner - icon from MD5
* 2024/straadt - Prize in imitative rebooting - OpenRISC CPU and Linux
* 2024/tmarrec - Prize in cyclonic coding - 3D tornado simulation
* 2024/tompng - Prize in quasi bijection - vortex encryptor decryptor
* 2024/weaver - Sur prize - rickroll
Ran `make update` to perform the above.
new file: 2024/burton/.entry.json
Prepare for the winners of **IOCCC28**.
> However these are not the 2024 droids you are looking for. :-)
The HTML menu (both JavaScript and non-JavaScript) has been updated.
The `Status -> Rules and guidelines' have been replaced with two
separate menus `Status -> IOCCC rules` and `Status -> IOCCC guidelines`.
Added a new top level `social.html` page: built from a new `social.md`.
Sorted rules for building specific web pages in the top level `Makefile`.
Added `make social` to make the `social.html` page from `social.md`.
The `bin/gen-top-html.sh` now is able to process a argument of **social**
to process the new top level `social.html` page.
Changed `bin/gen-top-html.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-07-25".
Below `About -> Home page` a new `About -> IOCCC social media` menu item
as added.
Because the menu change touched every HTML file, we changed the general
copyright date range for HTML files from "1984-2024" to "1984-2025"
due to the extensive changes made for **IOCCC28**.
Those markdown files that were modified in 2025 had their copyright date
range also changed from "1984-2024" to "1984-2025".
Rebuilt tarballs and sitemap due to the extensive HTML rebuilding.
Ran `make update` to perform the above.
Adjusted `bin/md2html.cfg` to allow for the creation of year level
archive of the rules and guidelines that were in effect when the given
year's content opened for submissions.
We improved `bin/gen-year-index.sh` so that if there exists
a `YYYY/rules.md` rules archive, then `YYYY/rules.html`
will be created.
We improved `bin/gen-year-index.sh` so that if there exists
a `YYYY/guidelines.md` rules archive, then `YYYY/guidelines.html`
will be created.
Changed `bin/gen-year-index.sh` VERSION from "2.0.0 2025-03-13"
to "2.1.0 2025-07-05".
Adjusted `next/rules.md` and `next/guidelines.md` so that when they are
copied as archived copies of rules and guidelines under a YYYY directory,
the internal links do not break. There are **NO** changes to the readable
contents of the rules and guidelines, only some changes to a few internal links.
Updated `1992/buzzard.2/index.html, `1993/rince/index.html`, and
`2012/omoikane/index.html that were modified by recent commits.
Rebuild sitemap due to the changes above.
Ran `make www` to test and perform the above.
By mistake in a few previous commits, some useful explanatory
and example comments were removed.
Add comments that will be useful for IOCCC29 and beyond.
Remove `${GINDENT}` and add `${RMDIR}` Makefile variables.
We update `next/Makefile.example` as per needs of IOCCC
final judging rounds.
Improved a few "XXX" comments.
Add `-pedantic` to `${CWARN}` by default with a comment
suggesting that is is OK to remove that compiler flag.
Added processing of "%%REPO_TOP_URL%%" tokens to `bin/subst.default.sh`.
Updated `find-missing-links.sh` to not falsely report missing links
when a "%%REPO_TOP_URL%%" token is used.
Changed `bin/subst.default.sh` VERSION from "1.3.2 2024-08-05"
to "1.4.0 2025-04-16".
Changed `bin/find-missing-links.sh` VERSION from "1.1.1 2024-04-28"
to "1.2.0 2025-04-16".
Due to a `pandoc(1)` bug fix, `2011/fredriksson/index.html` and
`2012/kang/index.html` were modified. The bug fix removed extraneous
whitespace that was previously introduced into HTML under certain
situations. These 2 changes do **NOT** impact the way web browsers
render these pages, however.
Updated sitemap.
Updated tarballs based on entry mods since 2025 March 4
(commit 233e5e90a5 just prior
to the IOCCC28 open).
Tested the above via `make update` on macOS.
Add news of the mkiocccentry toolkit version 2.4.4 2025-03-15.
Note that C is the official locale of the IOCCC in the IOCCC guidelines
version 28.47 2025-03-15.
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.
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).